diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e2aaf9b4..a19f6da7 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,7 +24,7 @@ jobs: yq: "4.16.2" - name: Docker Build - run: docker build . -t lunabrain + run: docker build . -t justshare # - if: ${{ !(github.event_name == 'push' && github.ref == 'refs/heads/main') }} # run: exit 0 @@ -53,10 +53,10 @@ jobs: # echo SERVER_IMAGE_ID=$SERVER_IMAGE_ID # echo VERSION=$VERSION # -# docker tag lunabrain $SERVER_IMAGE_ID:$VERSION +# docker tag justshare $SERVER_IMAGE_ID:$VERSION # docker push $SERVER_IMAGE_ID:$VERSION # -# yq -i e ".services.lunabrain.image |= \"$(docker inspect --format='{{index .RepoDigests 0}}' $SERVER_IMAGE_ID:$VERSION)\"" docker-compose.prod.yaml +# yq -i e ".services.justshare.image |= \"$(docker inspect --format='{{index .RepoDigests 0}}' $SERVER_IMAGE_ID:$VERSION)\"" docker-compose.prod.yaml # - name: Create commit # id: create-commit # if: github.ref == 'refs/heads/main' diff --git a/.gitignore b/.gitignore index 845bb686..176dbf72 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ tmp/ -.lunabrain.yaml .idea/ data/ node_modules/ @@ -25,6 +24,6 @@ venv3.*/ *.egg *.egg-info/ -.lunabrain.yaml +.justshare.yaml chat.yaml openaif.json \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 6f71529d..913285f9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "third_party/whisper.cpp"] path = third_party/whisper.cpp - url = https://github.com/lunabrain-ai/whisper.cpp.git + url = https://github.com/justshare-io/whisper.cpp.git diff --git a/README.md b/README.md index db54745e..e7637b5c 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,24 @@ -# LunaBrain +# justshare Build shared context with you and your homies. -[![LunaBrain Demo](docs/assets/images/demo.png)](https://www.youtube.com/live/UoRi3Fqh6Jg?si=CQVxzNWAqL6KOMa1&t=268 "LunaBrain Demo") +[![justshare Demo](docs/assets/images/demo.png)](https://www.youtube.com/live/UoRi3Fqh6Jg?si=CQVxzNWAqL6KOMa1&t=268 "justshare Demo") ### Library -- To use LunaBrain as a Go library, refer to the [documentation](https://pkg.go.dev/github.com/lunabrain-ai/lunabrain) (Note: This code is still like pre-alpha, so the API is subject to change) +- To use justshare as a Go library, refer to the [documentation](https://pkg.go.dev/github.com/justshare-io/justshare) (Note: This code is still like pre-alpha, so the API is subject to change) ## License -LunaBrain is licensed under the Apache 2.0 license. See the `LICENSE` file for more details. +justshare is licensed under the Apache 2.0 license. See the `LICENSE` file for more details. ## Getting Started -To get started with LunaBrain, follow these steps: +To get started with justshare, follow these steps: ### Setup Repo ```shell -git clone --recursive https://github.com/lunabrain-ai/lunabrain.git +git clone --recursive https://github.com/justshare-io/justshare.git ``` ### Running @@ -60,7 +60,7 @@ go generate -x ./... ## Contributing -We welcome contributions to LunaBrain! To contribute, please follow these steps: +We welcome contributions to justshare! To contribute, please follow these steps: 1. Fork the repository 2. Create a new branch for your feature diff --git a/buf.gen.yaml b/buf.gen.yaml index 32e88031..a24f5275 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -2,7 +2,7 @@ version: v1 managed: enabled: true go_package_prefix: - default: github.com/lunabrain-ai/lunabrain/pkg/gen + default: github.com/justshare-io/justshare/pkg/gen plugins: - plugin: buf.build/protocolbuffers/go out: ./pkg/gen diff --git a/deploy/docker-compose.yaml b/deploy/docker-compose.yaml index 9f3a80f0..8f9558d7 100644 --- a/deploy/docker-compose.yaml +++ b/deploy/docker-compose.yaml @@ -1,10 +1,10 @@ version: '3.6' services: - lunabrain: -# image: ghcr.io/lunabrain/lunabrain + justshare: +# image: ghcr.io/justshare/justshare build: context: .. - hostname: lunabrain + hostname: justshare ports: - "80:8080" volumes: diff --git a/docs/.editorconfig b/docs/.editorconfig deleted file mode 100644 index dad6b582..00000000 --- a/docs/.editorconfig +++ /dev/null @@ -1,11 +0,0 @@ -# editorconfig.org - -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true \ No newline at end of file diff --git a/docs/.eslintignore b/docs/.eslintignore deleted file mode 100644 index 57d00579..00000000 --- a/docs/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -assets/js/index.js -assets/js/katex.js -assets/js/vendor -node_modules \ No newline at end of file diff --git a/docs/.eslintrc.json b/docs/.eslintrc.json deleted file mode 100644 index c926994d..00000000 --- a/docs/.eslintrc.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "env": { - "browser": true, - "commonjs": true, - "es6": true, - "node": true - }, - "extends": "eslint:recommended", - "globals": { - "Atomics": "readonly", - "SharedArrayBuffer": "readonly" - }, - "parserOptions": { - "ecmaVersion": 2018, - "sourceType": "module" - }, - "rules": { - "no-console": 0, - "quotes": ["error", "single"], - "comma-dangle": [ - "error", - { - "arrays": "always-multiline", - "objects": "always-multiline", - "imports": "always-multiline", - "exports": "always-multiline", - "functions": "ignore" - } - ] - } -} \ No newline at end of file diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index 85ea9156..00000000 --- a/docs/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -node_modules -public -resources -.netlify -.hugo_build.lock \ No newline at end of file diff --git a/docs/.markdownlint-cli2.jsonc b/docs/.markdownlint-cli2.jsonc deleted file mode 100644 index 3c793744..00000000 --- a/docs/.markdownlint-cli2.jsonc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "config": { - "default": true, - "MD013": false, - "MD024": false, - "MD026": false, - "MD033": false, - "MD034": false - }, - "ignores": ["node_modules", "CHANGELOG.md", "README.md"] -} \ No newline at end of file diff --git a/docs/.stylelintignore b/docs/.stylelintignore deleted file mode 100644 index 3972095a..00000000 --- a/docs/.stylelintignore +++ /dev/null @@ -1,3 +0,0 @@ -assets/scss/components/_syntax.scss -assets/scss/vendor -node_modules \ No newline at end of file diff --git a/docs/.stylelintrc.json b/docs/.stylelintrc.json deleted file mode 100644 index 191d0938..00000000 --- a/docs/.stylelintrc.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "extends": "stylelint-config-standard-scss", - "rules": { - "no-empty-source": null, - "string-quotes": "double", - "scss/comment-no-empty": null, - "max-line-length": null, - "scss/at-extend-no-missing-placeholder": null, - "scss/dollar-variable-colon-space-after": null, - "scss/dollar-variable-empty-line-before": null, - "color-function-notation": null, - "alpha-value-notation": null, - "selector-id-pattern": null, - "selector-class-pattern": null, - "scss/no-global-function-names": null, - "number-max-precision": null, - "hue-degree-notation": null, - "value-no-vendor-prefix": null, - "property-no-vendor-prefix": null, - "at-rule-no-unknown": [ - true, - { - "ignoreAtRules": [ - "extend", - "at-root", - "debug", - "warn", - "error", - "if", - "else", - "for", - "each", - "while", - "mixin", - "include", - "content", - "return", - "function", - "tailwind", - "apply", - "responsive", - "variants", - "screen" - ] - } - ] - } -} \ No newline at end of file diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md deleted file mode 100644 index 26975b03..00000000 --- a/docs/CHANGELOG.md +++ /dev/null @@ -1,112 +0,0 @@ -### Changelog - -All notable changes to this project will be documented in this file. Dates are displayed in UTC. - -Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - -#### [v0.5.0](https://github.com/h-enk/doks-child-theme/compare/v0.4.3...v0.5.0) - -- feat: update for Doks v0.5.0 [`0df89d5`](https://github.com/h-enk/doks-child-theme/commit/0df89d51fbf706aea17d68d07bcfaeba422a1b60) -- content: update content for Doks v0.5.0 [`63d4412`](https://github.com/h-enk/doks-child-theme/commit/63d4412ba65217ca21092565bf3e6bcc2706e575) -- meta: update README.md [`5a8fa90`](https://github.com/h-enk/doks-child-theme/commit/5a8fa9081ce203d594c4ad7b5193f87bd51f3d6e) - -#### [v0.4.3](https://github.com/h-enk/doks-child-theme/compare/v0.4.2...v0.4.3) - -> 18 May 2022 - -- deps: bump versions to latest [`8ee2cb6`](https://github.com/h-enk/doks-child-theme/commit/8ee2cb6b8f2a7b38562f266c7db9c028a24c4523) -- meta: update changelog [`48499b6`](https://github.com/h-enk/doks-child-theme/commit/48499b6e66bf9bf5bc3d27597b2840618882b16b) - -#### [v0.4.2](https://github.com/h-enk/doks-child-theme/compare/v0.4.1...v0.4.2) - -> 1 April 2022 - -- deps: bump @hyas/doks from 0.4.1 to 0.4.2 [`eda0e36`](https://github.com/h-enk/doks-child-theme/commit/eda0e360262707c7baa1af2b7d373865d5e534fd) -- meta: update changelog [`4e8f1a8`](https://github.com/h-enk/doks-child-theme/commit/4e8f1a8e51292c4010ee48a1f94b22db441d0998) -- meta: update sponsors + backers sections [`788e1e3`](https://github.com/h-enk/doks-child-theme/commit/788e1e3ab5b5447b4464018a0959e3cd1338a486) - -#### [v0.4.1](https://github.com/h-enk/doks-child-theme/compare/v0.4.0...v0.4.1) - -> 31 March 2022 - -- deps: bump versions to latest [`a85f35d`](https://github.com/h-enk/doks-child-theme/commit/a85f35dc3fe0ca5a3080d4fe7d567f7e8863566e) -- ops: add continuous integration + stale workflows [`8134f51`](https://github.com/h-enk/doks-child-theme/commit/8134f518b7873be39ff2cd6eb3472bf681fa3390) -- feat: add files for custom scss + js [`12bf689`](https://github.com/h-enk/doks-child-theme/commit/12bf689da853e90ed51f25b8103e7beca68c23b0) - -#### [v0.4.0](https://github.com/h-enk/doks-child-theme/compare/v0.3.5...v0.4.0) - -> 4 February 2022 - -- deps: bump versions to latest [`fe5bf72`](https://github.com/h-enk/doks-child-theme/commit/fe5bf729e6e6754f3b6957b5d6c657c84326d070) -- fix: comment out mount content [`477ed68`](https://github.com/h-enk/doks-child-theme/commit/477ed686336826296a8b8e83c90af45b7a904bf4) -- config: update for doks v0.4.0 [`d00d595`](https://github.com/h-enk/doks-child-theme/commit/d00d595bc6add83780cf577d58099bbcecfbbe40) - -#### [v0.3.5](https://github.com/h-enk/doks-child-theme/compare/v0.3.4...v0.3.5) - -> 5 October 2021 - -- chore(deps-dev): bump bootstrap from 5.1.0 to 5.1.1 [`#64`](https://github.com/h-enk/doks-child-theme/pull/64) -- chore(deps-dev): bump @babel/preset-env from 7.15.4 to 7.15.6 [`#65`](https://github.com/h-enk/doks-child-theme/pull/65) -- chore(deps-dev): bump autoprefixer from 10.3.4 to 10.3.7 [`#71`](https://github.com/h-enk/doks-child-theme/pull/71) -- feat: update for doks 0.3.5 [`3782cf5`](https://github.com/h-enk/doks-child-theme/commit/3782cf57ed43acadc426305dc64764048b78138a) -- meta: update changelog [`36436ff`](https://github.com/h-enk/doks-child-theme/commit/36436fff6fd1ba412fdc991f4acca35a2835d09c) -- meta: bump version doks-child-theme to 0.3.5 [`57eae76`](https://github.com/h-enk/doks-child-theme/commit/57eae76694755ab1b06691a3c5427f224b806661) - -#### [v0.3.4](https://github.com/h-enk/doks-child-theme/compare/v0.3.3...v0.3.4) - -> 7 September 2021 - -- feat: update for doks 0.3.4 [`b08cb80`](https://github.com/h-enk/doks-child-theme/commit/b08cb80fadc09f7ad7e7e960d09dc482666fa108) -- deps: bump versions to latest [`a790bbe`](https://github.com/h-enk/doks-child-theme/commit/a790bbe7fa9ac52d15270339bf1ec24be385a2a8) -- Create FUNDING.yml [`8613d4c`](https://github.com/h-enk/doks-child-theme/commit/8613d4caad869c0f1f80b5610f6e49b766935541) - -#### [v0.3.3](https://github.com/h-enk/doks-child-theme/compare/v0.3.0...v0.3.3) - -> 5 July 2021 - -- feat: update for doks v0.3.3 [`f7b5720`](https://github.com/h-enk/doks-child-theme/commit/f7b57204c9de70f14e17337a8baa44815beb2b50) -- content: update readme [`14f1a3f`](https://github.com/h-enk/doks-child-theme/commit/14f1a3fede35e7f4a88d8ea063416958c2900a56) -- Update for doks v0.3.3 [`babdd77`](https://github.com/h-enk/doks-child-theme/commit/babdd7791e6002fd2272b1bc3c95c58654933454) - -#### [v0.3.0](https://github.com/h-enk/doks-child-theme/compare/v0.2.3...v0.3.0) - -> 25 June 2021 - -- feat: update for doks v0.3.0 [`630c2a2`](https://github.com/h-enk/doks-child-theme/commit/630c2a2edd246f3fc26fbb799d2debb77857882c) -- fix: add data directory [`69cdc3c`](https://github.com/h-enk/doks-child-theme/commit/69cdc3cccea6a976552e654a86a85475a19ef448) - -#### [v0.2.3](https://github.com/h-enk/doks-child-theme/compare/v0.2.2...v0.2.3) - -> 2 April 2021 - -- feat: update for doks v0.2.3 [`e517462`](https://github.com/h-enk/doks-child-theme/commit/e517462127252a50d78cf34180ea10f898993585) -- chore(release): 0.2.3 [`1fcbc4e`](https://github.com/h-enk/doks-child-theme/commit/1fcbc4e2cb297f780004582612d904920044b181) - -#### v0.2.2 - -> 26 March 2021 - -- feat: add doks as a node module [`cfed05e`](https://github.com/h-enk/doks-child-theme/commit/cfed05efaf7b4191b2bdca4c91405c6cabc8396c) -- deps: bump versions to latest [`997a7dd`](https://github.com/h-enk/doks-child-theme/commit/997a7dd7250b3dc0fe23c92ebf83ed21c9ba2d6b) -- config: update for doks v0.2.2 [`03f51d5`](https://github.com/h-enk/doks-child-theme/commit/03f51d5fd1f66f7afa0957d92adf779d438a3946) - - - -### [0.2.3](https://github.com/h-enk/doks/compare/v0.2.2...v0.2.3) (2021-04-02) - - -### Features - -* update for doks v0.2.3 ([e517462](https://github.com/h-enk/doks/commit/e517462127252a50d78cf34180ea10f898993585)) - -### 0.2.2 (2021-03-26) - - -### Features - -* add doks as a node module ([cfed05e](https://github.com/h-enk/doks/commit/cfed05efaf7b4191b2bdca4c91405c6cabc8396c)) - - -### Dependencies - -* bump versions to latest ([997a7dd](https://github.com/h-enk/doks/commit/997a7dd7250b3dc0fe23c92ebf83ed21c9ba2d6b)) diff --git a/docs/CODE_OF_CONDUCT.md b/docs/CODE_OF_CONDUCT.md deleted file mode 100644 index 77366b2e..00000000 --- a/docs/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,76 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socio-economic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at hello@getdoks.org. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq diff --git a/docs/LICENSE b/docs/LICENSE deleted file mode 100644 index be44e1fc..00000000 --- a/docs/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2018-present, Gridsome -Copyright (c) 2020-present, Henk Verlinde - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 651bbba1..00000000 --- a/docs/README.md +++ /dev/null @@ -1,156 +0,0 @@ -

- - Doks - -

- -

- Doks -

- -

- Doks Child Theme -

- -

- Doks is a Hugo theme for building secure, fast, and SEO-ready documentation websites, which you can easily update and customize. -

- -

- - GitHub - - - GitHub release (latest SemVer including pre-releases) - - - GitHub Workflow Status (branch) - - - Netlify - -

- -![Doks — Modern Documentation Theme](https://raw.githubusercontent.com/h-enk/doks/master/images/doks.png) - -## Demo - -- [doks-child-theme.netlify.app](https://doks-child-theme.netlify.app/) - -## Why Doks? - -Nine main reasons why you should use Doks: - -1. __Security aware__. Get A+ scores on [Mozilla Observatory](https://observatory.mozilla.org/analyze/doks.netlify.app) out of the box. Easily change the default Security Headers to suit your needs. - -2. __Fast by default__. Get 100 scores on [Google Lighthouse](https://googlechrome.github.io/lighthouse/viewer/?gist=59aafe464a68f8bc30b8e9a636d5b053) by default. Doks removes unused css, prefetches links, and lazy loads images. - -3. __SEO-ready__. Use sensible defaults for structured data, open graph, and Twitter cards. Or easily change the SEO settings to your liking. - -4. __Development tools__. Code with confidence. Check styles, scripts, and markdown for errors and fix automatically or manually. - -5. __Bootstrap framework__. Build robust, flexible, and intuitive websites with Bootstrap 5. Easily customize your Doks site with the source Sass files. - -6. __Netlify-ready__. Deploy to Netlify with sensible defaults. Easily use Netlify Functions, Netlify Redirects, and Netlify Headers. - -7. __Full text search__. Search your Doks site with FlexSearch. Easily customize index settings and search options to your liking. - -8. __Page layouts__. Build pages with a landing page, blog, or documentation layout. Add custom sections and components to suit your needs. - -9. __Dark mode__. Switch to a low-light UI with the click of a button. Change colors with variables to match your branding. - -### Other features - -- __Multilingual and i18n__ support -- __Versioning__ documentation support -- __KaTeX__ math typesetting -- __Mermaid__ diagrams and visualization -- __highlight.js__ syntax highlighting - -## Requirements - -- [Git](https://git-scm.com/) — latest source release -- [Node.js](https://nodejs.org/) — latest LTS version or newer - -
-Why Node.js? - -Doks uses npm (included with Node.js) to centralize dependency management, making it [easy to update](https://getdoks.org/docs/help/how-to-update/) resources, build tooling, plugins, and build scripts. - -
- -## Get started - -Start a new Doks project in three steps: - -### 1. Create a new site - -Doks is available as a child theme and a starter theme. - -#### Child theme - -- Intended for novice to intermediate users -- Intended for minor customizations -- [Easily update npm packages](https://getdoks.org/docs/help/how-to-update/) — __including__ [Doks](https://www.npmjs.com/package/@hyas/doks) - -```bash -git clone https://github.com/h-enk/doks-child-theme.git my-doks-site && cd my-doks-site -``` - -#### Starter theme - -- Intended for intermediate to advanced users -- Intended for major customizations -- [Easily update npm packages](https://getdoks.org/docs/help/how-to-update/) - -```bash -git clone https://github.com/h-enk/doks.git my-doks-site && cd my-doks-site -``` - -
-Help me choose - -Not sure which one is for you? Pick the child theme. - -
- -### 2. Install dependencies - -```bash -npm install -``` - -### 3. Start development server - -```bash -npm run start -``` - -## Other commands - -Doks comes with [commands](https://getdoks.org/docs/prologue/commands/) for common tasks. - -## Documentation - -- [Netlify](https://docs.netlify.com/) -- [Hugo](https://gohugo.io/documentation/) -- [Doks](https://getdoks.org/) - -## Communities - -- [Netlify Community](https://community.netlify.com/) -- [Hugo Forums](https://discourse.gohugo.io/) -- [Doks Discussions](https://github.com/h-enk/doks/discussions) - -## Sponsors - -Support this project by becoming a sponsor. Your logo will show up here with a link to your website. - -[![OC sponsor 0](https://opencollective.com/doks/tiers/sponsor/0/avatar.svg)](https://opencollective.com/doks/tiers/sponsor/0/website) -[![OC sponsor 1](https://opencollective.com/doks/tiers/sponsor/1/avatar.svg)](https://opencollective.com/doks/tiers/sponsor/1/website) - -## Backers - -Support this project by becoming a backer. Your avatar will show up here. - -[![Backers](https://opencollective.com/doks/tiers/backer.svg?49741992)](https://opencollective.com/doks) diff --git a/docs/SECURITY.md b/docs/SECURITY.md deleted file mode 100644 index 4ad3369f..00000000 --- a/docs/SECURITY.md +++ /dev/null @@ -1,7 +0,0 @@ -# Reporting Security Issues - -The Doks team and community take security issues in Doks seriously. We appreciate your efforts to responsibly disclose your findings, and will make every effort to acknowledge your contributions. - -To report a security issue, email [security@getdoks.org](mailto:security@getdoks.org) and include the word "SECURITY" in the subject line. - -We'll endeavor to respond quickly, and will keep you updated throughout the process. diff --git a/docs/assets/images/default-image.png b/docs/assets/images/default-image.png deleted file mode 100644 index a34ff9fc..00000000 Binary files a/docs/assets/images/default-image.png and /dev/null differ diff --git a/docs/assets/images/demo.png b/docs/assets/images/demo.png deleted file mode 100644 index 33ba4ba6..00000000 Binary files a/docs/assets/images/demo.png and /dev/null differ diff --git a/docs/assets/indices/contentIndex.json b/docs/assets/indices/contentIndex.json deleted file mode 100644 index 2634793c..00000000 --- a/docs/assets/indices/contentIndex.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "/": { - "title": "ML Wiki", - "content": "Stay connected to what is happening in the wild west of AI!\n\n- Learn fundamentals\n- Stay in the know about what is going on with [[News Sources]]\n- [[Text Processing]] is important for AI", - "lastmodified": "2023-04-11T12:16:18.114044222-07:00", - "tags": null - }, - "/Applications/Chat-Bots": { - "title": "Chat Bots", - "content": "- [Knowledge Graph-Based Chatbot With GPT-3 and Neo4j](https://medium.com/neo4j/knowledge-graph-based-chatbot-with-gpt-3-and-neo4j-c4ebbd325ed)\n-", - "lastmodified": "2023-04-11T12:16:18.110710908-07:00", - "tags": null - }, - "/FAISS": { - "title": "FAISS", - "content": "Project URL: https://github.com/facebookresearch/faiss\n\n### Pinecone FAISS Book\nhttps://www.pinecone.io/learn/faiss/\n\n#### Notes\n- Using the `IndexFlatL2` index alone is computationally expensive, it doesn’t scale well.\n-", - "lastmodified": "2023-04-11T12:16:18.110710908-07:00", - "tags": null - }, - "/Fundamentals": { - "title": "Fundamentals", - "content": "## Learn\n- [Amazing video series from 3 blue 1 brown](https://www.youtube.com/watch?v=aircAruvnKk\u0026list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi)", - "lastmodified": "2023-04-11T12:16:18.110710908-07:00", - "tags": null - }, - "/Hugging-Face": { - "title": "Hugging Face", - "content": "https://huggingface.co/", - "lastmodified": "2023-04-11T12:16:18.114044222-07:00", - "tags": null - }, - "/Models": { - "title": "Models", - "content": "Machine learning (ML) models are increasingly important in various industries as they enable automated predictions, decision-making, and insights from large and complex datasets. These models are designed to improve with time as they receive more data and learn to identify patterns, allowing businesses to make more accurate predictions and informed decisions. One of the prominent platforms for building and deploying state-of-the-art natural language processing (NLP) models is [[Hugging Face]]. Hugging Face provides easy-to-use libraries and tools for building and fine-tuning NLP models and is widely used by developers, data scientists, and researchers to create and train custom NLP models for various use cases, such as chatbots, sentiment analysis, and language translation.\n\n- 03/29/23 - Lit Review of currently available models https://kipp.ly/blog/transformer-taxonomy/", - "lastmodified": "2023-04-11T12:16:18.114044222-07:00", - "tags": null - }, - "/News-Sources": { - "title": "News Sources", - "content": "Places you can go to stay plugged in about AI advancements!\n\n## Awesome Lists\n- https://github.com/imaurer/awesome-decentralized-llm\n\n## Feeds\n\n- [HackerNews](https://news.ycombinator.com/)\n\n## Discord\n- [LunaBrain](https://discord.gg/4KhauRRA)\n- [LangChain](https://discord.gg/S7qDt6Qh)\n- [LlamaIndex](https://discord.gg/UTvXb2Tp)\n- [Replicate](https://discord.gg/replicate)", - "lastmodified": "2023-04-11T12:16:18.114044222-07:00", - "tags": null - }, - "/Text-Processing": { - "title": "Text Processing", - "content": "Text normalization is a critical step in natural language processing, and machine learning (ML) techniques have proven to be effective in this domain. ML text normalization techniques involve training models on large corpora of text to learn patterns and rules for standardizing text. These models can then be used to automatically correct spelling errors, expand contractions, and transform abbreviations to their full forms. By using ML text normalization techniques, NLP applications can better understand and process text data, leading to more accurate and efficient analysis.\n\n## Text Normalization Techniques for Machine Learning\n\n### Introduction\n- Definition of text normalization\n- Importance of text normalization in NLP\n\n### Rule-Based Text Normalization\n- Overview of rule-based text normalization\n- Techniques for rule-based text normalization (e.g., stemming, lemmatization, stop-word removal)\n- Advantages and disadvantages of rule-based text normalization\n\n### Machine Learning Text Normalization\n- Overview of machine learning text normalization\n- Techniques for machine learning text normalization (e.g., sequence labeling, deep learning, unsupervised learning)\n- Advantages and disadvantages of machine learning text normalization\n\n### Comparison of Rule-Based and Machine Learning Text Normalization\n- Differences between rule-based and machine learning text normalization\n- Use cases for each technique\n- Best practices for selecting the appropriate technique\n\n### Applications of Text Normalization in NLP\n- Overview of NLP applications that require text normalization (e.g., sentiment analysis, named entity recognition, machine translation)\n- Case studies demonstrating the importance of text normalization in NLP applications", - "lastmodified": "2023-04-11T12:16:18.114044222-07:00", - "tags": null - }, - "/Vector-Search": { - "title": "Vector Search", - "content": "[Awesome List](https://github.com/currentslab/awesome-vector-search)\n\n## Tools\n### Open Source\n- [[FAISS]] - Facebook Vector Search\n- https://github.com/nmslib/hnswlib/ \"supposedly lower memory requirements and allows for adding new vectors to an existing index\"\n- \"If you do have a tiny index and want to try Google's version of vector search (as an alternative to Faiss), you can easily run ScaNN locally\" https://github.com/google-research/google-research/tree/master/scann\n\n\n- https://github.com/qdrant/qdrant\n- https://github.com/hora-search/hora\n- [OpenAI Plugin](https://github.com/openai/chatgpt-retrieval-plugin)", - "lastmodified": "2023-04-11T12:16:18.114044222-07:00", - "tags": null - } -} \ No newline at end of file diff --git a/docs/assets/indices/linkIndex.json b/docs/assets/indices/linkIndex.json deleted file mode 100644 index ed062ba8..00000000 --- a/docs/assets/indices/linkIndex.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "index": { - "links": { - "/": [ - { - "source": "/", - "target": "/News-Sources", - "text": "News Sources" - }, - { - "source": "/", - "target": "/Text-Processing", - "text": "Text Processing" - } - ], - "/Models": [ - { - "source": "/Models", - "target": "/Hugging-Face", - "text": "Hugging Face" - } - ], - "/Vector-Search": [ - { - "source": "/Vector-Search", - "target": "/FAISS", - "text": "FAISS" - } - ] - }, - "backlinks": { - "/FAISS": [ - { - "source": "/Vector-Search", - "target": "/FAISS", - "text": "FAISS" - } - ], - "/Hugging-Face": [ - { - "source": "/Models", - "target": "/Hugging-Face", - "text": "Hugging Face" - } - ], - "/News-Sources": [ - { - "source": "/", - "target": "/News-Sources", - "text": "News Sources" - } - ], - "/Text-Processing": [ - { - "source": "/", - "target": "/Text-Processing", - "text": "Text Processing" - } - ] - } - }, - "links": [ - { - "source": "/Models", - "target": "/Hugging-Face", - "text": "Hugging Face" - }, - { - "source": "/Vector-Search", - "target": "/FAISS", - "text": "FAISS" - }, - { - "source": "/", - "target": "/News-Sources", - "text": "News Sources" - }, - { - "source": "/", - "target": "/Text-Processing", - "text": "Text Processing" - } - ] -} \ No newline at end of file diff --git a/docs/assets/js/app.js b/docs/assets/js/app.js deleted file mode 100644 index 9c6c6967..00000000 --- a/docs/assets/js/app.js +++ /dev/null @@ -1 +0,0 @@ -/** Custom scripts */ diff --git a/docs/assets/js/callouts.js b/docs/assets/js/callouts.js deleted file mode 100644 index 080bbb48..00000000 --- a/docs/assets/js/callouts.js +++ /dev/null @@ -1,6 +0,0 @@ -const addCollapsibleCallouts = () => { - const collapsibleCallouts = document.querySelectorAll("blockquote.callout-collapsible"); - collapsibleCallouts.forEach(el => el.addEventListener('click', event => { - event.currentTarget.classList.toggle("callout-collapsed"); - })); -} diff --git a/docs/assets/js/clipboard.js b/docs/assets/js/clipboard.js deleted file mode 100644 index 10e02c68..00000000 --- a/docs/assets/js/clipboard.js +++ /dev/null @@ -1,45 +0,0 @@ -const svgCopy = - ''; -const svgCheck = - ''; - - -const addCopyButtons = () => { - let els = document.getElementsByClassName("highlight"); - // for each highlight - for (let i = 0; i < els.length; i++) { - try { - if (els[i].getElementsByClassName("clipboard-button").length) continue; - - // find pre > code inside els[i] - let codeBlocks = els[i].getElementsByTagName("code"); - - // line numbers are inside first code block - let lastCodeBlock = codeBlocks[codeBlocks.length - 1]; - const button = document.createElement("button"); - button.className = "clipboard-button"; - button.type = "button"; - button.innerHTML = svgCopy; - button.ariaLabel = "opy the shown code"; - // remove every second newline from lastCodeBlock.innerText - button.addEventListener("click", () => { - navigator.clipboard.writeText(lastCodeBlock.innerText.replace(/\n\n/g, "\n")).then( - () => { - button.blur(); - button.innerHTML = svgCheck; - setTimeout(() => { - button.innerHTML = svgCopy - button.style.borderColor = "" - }, 2000); - }, - (error) => (button.innerHTML = "Error") - ); - }); - // find chroma inside els[i] - let chroma = els[i].getElementsByClassName("chroma")[0]; - els[i].insertBefore(button, chroma); - } catch(error) { - console.debug(error); - } - } -} diff --git a/docs/assets/js/code-title.js b/docs/assets/js/code-title.js deleted file mode 100644 index 325e16d5..00000000 --- a/docs/assets/js/code-title.js +++ /dev/null @@ -1,17 +0,0 @@ - -function addTitleToCodeBlocks() { - const els = document.getElementsByClassName("highlight"); - for (let i = 0; i < els.length; i++) { - try { - if (els[i].title.length) { - let div = document.createElement("div"); - if (els[i].getElementsByClassName("code-title").length) continue; - div.textContent = els[i].title; - div.classList.add("code-title") - els[i].insertBefore(div, els[i].firstChild); - } - } catch (error) { - console.debug(error); - } - } -} diff --git a/docs/assets/js/full-text-search.js b/docs/assets/js/full-text-search.js deleted file mode 100644 index 709a3b36..00000000 --- a/docs/assets/js/full-text-search.js +++ /dev/null @@ -1,61 +0,0 @@ -; (async function() { - const encoder = (str) => str.toLowerCase().split(/([^a-z]|[^\x00-\x7F])/) - const contentIndex = new FlexSearch.Document({ - cache: true, - charset: "latin:extra", - optimize: true, - index: [ - { - field: "content", - tokenize: "reverse", - encode: encoder, - }, - { - field: "title", - tokenize: "forward", - encode: encoder, - }, - ], - }) - - const { content } = await fetchData - for (const [key, value] of Object.entries(content)) { - contentIndex.add({ - id: key, - title: value.title, - content: removeMarkdown(value.content), - }) - } - - const formatForDisplay = (id) => ({ - id, - url: id, - title: content[id].title, - content: content[id].content, - }) - - registerHandlers((e) => { - const term = e.target.value - const searchResults = contentIndex.search(term, [ - { - field: "content", - limit: 10, - }, - { - field: "title", - limit: 5, - }, - ]) - const getByField = (field) => { - const results = searchResults.filter((x) => x.field === field) - if (results.length === 0) { - return [] - } else { - return [...results[0].result] - } - } - const allIds = new Set([...getByField("title"), ...getByField("content")]) - const finalResults = [...allIds].map(formatForDisplay) - displayResults(term, finalResults, true) - }) -})() diff --git a/docs/assets/js/graph.js b/docs/assets/js/graph.js deleted file mode 100644 index ce0c73b7..00000000 --- a/docs/assets/js/graph.js +++ /dev/null @@ -1,279 +0,0 @@ -async function drawGraph(baseUrl, isHome, pathColors, graphConfig) { - - let { - depth, - enableDrag, - enableLegend, - enableZoom, - opacityScale, - scale, - repelForce, - fontSize } = graphConfig; - - const container = document.getElementById("graph-container") - const { index, links, content } = await fetchData - - // Use .pathname to remove hashes / searchParams / text fragments - const cleanUrl = window.location.origin + window.location.pathname - - const curPage = cleanUrl.replace(/\/$/g, "").replace(baseUrl, "") - - const parseIdsFromLinks = (links) => [ - ...new Set(links.flatMap((link) => [link.source, link.target])), - ] - - // Links is mutated by d3. We want to use links later on, so we make a copy and pass that one to d3 - // Note: shallow cloning does not work because it copies over references from the original array - const copyLinks = JSON.parse(JSON.stringify(links)) - - const neighbours = new Set() - const wl = [curPage || "/", "__SENTINEL"] - if (depth >= 0) { - while (depth >= 0 && wl.length > 0) { - // compute neighbours - const cur = wl.shift() - if (cur === "__SENTINEL") { - depth-- - wl.push("__SENTINEL") - } else { - neighbours.add(cur) - const outgoing = index.links[cur] || [] - const incoming = index.backlinks[cur] || [] - wl.push(...outgoing.map((l) => l.target), ...incoming.map((l) => l.source)) - } - } - } else { - parseIdsFromLinks(copyLinks).forEach((id) => neighbours.add(id)) - } - - const data = { - nodes: [...neighbours].map((id) => ({ id })), - links: copyLinks.filter((l) => neighbours.has(l.source) && neighbours.has(l.target)), - } - - const color = (d) => { - if (d.id === curPage || (d.id === "/" && curPage === "")) { - return "var(--g-node-active)" - } - - for (const pathColor of pathColors) { - const path = Object.keys(pathColor)[0] - const colour = pathColor[path] - if (d.id.startsWith(path)) { - return colour - } - } - - return "var(--g-node)" - } - - const drag = (simulation) => { - function dragstarted(event, d) { - if (!event.active) simulation.alphaTarget(1).restart() - d.fx = d.x - d.fy = d.y - } - - function dragged(event, d) { - d.fx = event.x - d.fy = event.y - } - - function dragended(event, d) { - if (!event.active) simulation.alphaTarget(0) - d.fx = null - d.fy = null - } - - const noop = () => { } - return d3 - .drag() - .on("start", enableDrag ? dragstarted : noop) - .on("drag", enableDrag ? dragged : noop) - .on("end", enableDrag ? dragended : noop) - } - - const height = Math.max(container.offsetHeight, isHome ? 500 : 250) - const width = container.offsetWidth - - const simulation = d3 - .forceSimulation(data.nodes) - .force("charge", d3.forceManyBody().strength(-100 * repelForce)) - .force( - "link", - d3 - .forceLink(data.links) - .id((d) => d.id) - .distance(40), - ) - .force("center", d3.forceCenter()) - - const svg = d3 - .select("#graph-container") - .append("svg") - .attr("width", width) - .attr("height", height) - .attr('viewBox', [-width / 2 / scale, -height / 2 / scale, width / scale, height / scale]) - - if (enableLegend) { - const legend = [{ Current: "var(--g-node-active)" }, { Note: "var(--g-node)" }, ...pathColors] - legend.forEach((legendEntry, i) => { - const key = Object.keys(legendEntry)[0] - const colour = legendEntry[key] - svg - .append("circle") - .attr("cx", -width / 2 + 20) - .attr("cy", height / 2 - 30 * (i + 1)) - .attr("r", 6) - .style("fill", colour) - svg - .append("text") - .attr("x", -width / 2 + 40) - .attr("y", height / 2 - 30 * (i + 1)) - .text(key) - .style("font-size", "15px") - .attr("alignment-baseline", "middle") - }) - } - - // draw links between nodes - const link = svg - .append("g") - .selectAll("line") - .data(data.links) - .join("line") - .attr("class", "link") - .attr("stroke", "var(--g-link)") - .attr("stroke-width", 2) - .attr("data-source", (d) => d.source.id) - .attr("data-target", (d) => d.target.id) - - // svg groups - const graphNode = svg.append("g").selectAll("g").data(data.nodes).enter().append("g") - - // calculate radius - const nodeRadius = (d) => { - const numOut = index.links[d.id]?.length || 0 - const numIn = index.backlinks[d.id]?.length || 0 - return 2 + Math.sqrt(numOut + numIn) - } - - // draw individual nodes - const node = graphNode - .append("circle") - .attr("class", "node") - .attr("id", (d) => d.id) - .attr("r", nodeRadius) - .attr("fill", color) - .style("cursor", "pointer") - .on("click", (_, d) => { - // SPA navigation - const targ = `${baseUrl}${decodeURI(d.id).replace(/\s+/g, "-")}/` - window.Million.navigate(new URL(targ), ".singlePage") - plausible("Link Click", { - props: { - href: targ, - broken: false, - internal: true, - graph: true, - } - }) - }) - .on("mouseover", function(_, d) { - d3.selectAll(".node").transition().duration(100).attr("fill", "var(--g-node-inactive)") - - const neighbours = parseIdsFromLinks([ - ...(index.links[d.id] || []), - ...(index.backlinks[d.id] || []), - ]) - const neighbourNodes = d3.selectAll(".node").filter((d) => neighbours.includes(d.id)) - const currentId = d.id - window.Million.prefetch(new URL(`${baseUrl}${decodeURI(d.id).replace(/\s+/g, "-")}/`)) - const linkNodes = d3 - .selectAll(".link") - .filter((d) => d.source.id === currentId || d.target.id === currentId) - - // highlight neighbour nodes - neighbourNodes.transition().duration(200).attr("fill", color) - - // highlight links - linkNodes.transition().duration(200).attr("stroke", "var(--g-link-active)") - - const bigFont = fontSize * 1.5 - - // show text for self - d3.select(this.parentNode) - .raise() - .select("text") - .transition() - .duration(200) - .attr('opacityOld', d3.select(this.parentNode).select('text').style("opacity")) - .style('opacity', 1) - .style('font-size', bigFont + 'em') - .attr('dy', d => nodeRadius(d) + 20 + 'px') // radius is in px - }) - .on("mouseleave", function(_, d) { - d3.selectAll(".node").transition().duration(200).attr("fill", color) - - const currentId = d.id - const linkNodes = d3 - .selectAll(".link") - .filter((d) => d.source.id === currentId || d.target.id === currentId) - - linkNodes.transition().duration(200).attr("stroke", "var(--g-link)") - - d3.select(this.parentNode) - .select("text") - .transition() - .duration(200) - .style('opacity', d3.select(this.parentNode).select('text').attr("opacityOld")) - .style('font-size', fontSize + 'em') - .attr('dy', d => nodeRadius(d) + 8 + 'px') // radius is in px - }) - .call(drag(simulation)) - - // draw labels - const labels = graphNode - .append("text") - .attr("dx", 0) - .attr("dy", (d) => nodeRadius(d) + 8 + "px") - .attr("text-anchor", "middle") - .text((d) => content[d.id]?.title || (d.id.charAt(1).toUpperCase() + d.id.slice(2)).replace("-", " ")) - .style('opacity', (opacityScale - 1) / 3.75) - .style("pointer-events", "none") - .style('font-size', fontSize + 'em') - .raise() - .call(drag(simulation)) - - // set panning - - if (enableZoom) { - svg.call( - d3 - .zoom() - .extent([ - [0, 0], - [width, height], - ]) - .scaleExtent([0.25, 4]) - .on("zoom", ({ transform }) => { - link.attr("transform", transform) - node.attr("transform", transform) - const scale = transform.k * opacityScale; - const scaledOpacity = Math.max((scale - 1) / 3.75, 0) - labels.attr("transform", transform).style("opacity", scaledOpacity) - }), - ) - } - - // progress the simulation - simulation.on("tick", () => { - link - .attr("x1", (d) => d.source.x) - .attr("y1", (d) => d.source.y) - .attr("x2", (d) => d.target.x) - .attr("y2", (d) => d.target.y) - node.attr("cx", (d) => d.x).attr("cy", (d) => d.y) - labels.attr("x", (d) => d.x).attr("y", (d) => d.y) - }) -} diff --git a/docs/assets/js/highlight.js b/docs/assets/js/highlight.js deleted file mode 100644 index cfcbfba4..00000000 --- a/docs/assets/js/highlight.js +++ /dev/null @@ -1,28 +0,0 @@ -import hljs from 'highlight.js/lib/core'; - -import javascript from 'highlight.js/lib/languages/javascript'; -import typescript from 'highlight.js/lib/languages/typescript'; -import json from 'highlight.js/lib/languages/json'; -import bash from 'highlight.js/lib/languages/bash'; -import ini from 'highlight.js/lib/languages/ini'; -import yaml from 'highlight.js/lib/languages/yaml'; -import markdown from 'highlight.js/lib/languages/markdown'; -import python from 'highlight.js/lib/languages/python'; - -hljs.registerLanguage('javascript', javascript); -hljs.registerLanguage('typescript', typescript); - -hljs.registerLanguage('json', json); -hljs.registerLanguage('bash', bash); -hljs.registerLanguage('ini', ini); -hljs.registerLanguage('toml', ini); -hljs.registerLanguage('yaml', yaml); -hljs.registerLanguage('md', markdown); -hljs.registerLanguage('python', python); - - -document.addEventListener('DOMContentLoaded', () => { - document.querySelectorAll('pre code').forEach((block) => { - hljs.highlightBlock(block); - }); -}); diff --git a/docs/assets/js/popover.js b/docs/assets/js/popover.js deleted file mode 100644 index 101d1c0c..00000000 --- a/docs/assets/js/popover.js +++ /dev/null @@ -1,79 +0,0 @@ -function htmlToElement(html) { - const template = document.createElement("template") - html = html.trim() - template.innerHTML = html - return template.content.firstChild -} - -function initPopover(baseURL, useContextualBacklinks) { - const basePath = baseURL.replace(window.location.origin, "") - fetchData.then(({ content }) => { - const links = [...document.getElementsByClassName("internal-link")] - links - .filter(li => li.dataset.src || (li.dataset.idx && useContextualBacklinks)) - .forEach(li => { - let el - if (li.dataset.ctx) { - const linkDest = content[li.dataset.src] - const popoverElement = `
-

${linkDest.title}

-

${highlight(removeMarkdown(linkDest.content), li.dataset.ctx)}...

-

${new Date(linkDest.lastmodified).toLocaleDateString()}

-
` - el = htmlToElement(popoverElement) - } else { - const linkDest = content[li.dataset.src.replace(/\/$/g, "").replace(basePath, "")] - if (linkDest) { - let splitLink = li.href.split("#") - let cleanedContent = removeMarkdown(linkDest.content) - if (splitLink.length > 1) { - let headingName = decodeURIComponent(splitLink[1]).replace(/\-/g, " ") - let headingIndex = cleanedContent.toLowerCase().indexOf("" + headingName + "") - cleanedContent = cleanedContent.substring(headingIndex, cleanedContent.length) - } - const popoverElement = `
-

${linkDest.title}

-

${cleanedContent.split(" ", 20).join(" ")}...

-

${new Date(linkDest.lastmodified).toLocaleDateString()}

-
` - el = htmlToElement(popoverElement) - } - } - - if (el) { - li.appendChild(el) - if (LATEX_ENABLED) { - renderMathInElement(el, { - delimiters: [ - { left: '$$', right: '$$', display: false }, - { left: '$', right: '$', display: false }, - ], - throwOnError: false - }) - } - - li.addEventListener("mouseover", () => { - // fix tooltip positioning - window.FloatingUIDOM.computePosition(li, el, { - middleware: [window.FloatingUIDOM.offset(10), window.FloatingUIDOM.inline(), window.FloatingUIDOM.shift()], - }).then(({ x, y }) => { - Object.assign(el.style, { - left: `${x}px`, - top: `${y}px`, - }) - }) - - el.classList.add("visible") - plausible("Popover Hover", { - props: { - href: li.dataset.src - } - }) - }) - li.addEventListener("mouseout", () => { - el.classList.remove("visible") - }) - } - }) - }) -} diff --git a/docs/assets/js/router.js b/docs/assets/js/router.js deleted file mode 100644 index c29ab773..00000000 --- a/docs/assets/js/router.js +++ /dev/null @@ -1,25 +0,0 @@ -import { - apply, - navigate, - prefetch, - router, -} from "https://unpkg.com/million@1.11.5/dist/router.mjs" - -export const attachSPARouting = (init, rerender) => { - // Attach SPA functions to the global Million namespace - window.Million = { - apply, - navigate, - prefetch, - router, - } - - const render = () => requestAnimationFrame(rerender) - window.addEventListener("DOMContentLoaded", () => { - apply((doc) => init(doc)) - init() - router(".singlePage") - render() - }) - window.addEventListener("million:navigate", render) -} diff --git a/docs/assets/js/semantic-search.js b/docs/assets/js/semantic-search.js deleted file mode 100644 index fca2851e..00000000 --- a/docs/assets/js/semantic-search.js +++ /dev/null @@ -1,54 +0,0 @@ -// Note: Currently, we use the REST API for Operand because of some unpkg/webpack issues. -// In the future, we'd like to use the SDK (https://github.com/operandinc/typescript-sdk). -// If someone knows how to do this w/o breaking the Operand typescript-sdk for npm users, -// please let Morgan (@morgallant) and/or (@_jzhao) know! <3 - -const apiKey = "{{$.Site.Data.config.search.operandApiKey}}" -const indexId = "{{$.Site.Data.config.search.operandIndexId}}" - -function parseSearchResults(searchResults) { - return searchResults.matches.map((m) => ({ - content: m.content, - title: searchResults.objects[m.objectId].properties.properties._title.text, - url: searchResults.objects[m.objectId].properties.properties._url.text, - })) -} - -async function searchContents(query) { - const result = await fetch("https://api.operand.ai/operand.v1.ObjectService/SearchWithin", { - method: "POST", - headers: { - "Content-Type": "application/json", - Authorization: `${apiKey}`, - "Operand-Index-ID": `${indexId}`, - }, - body: JSON.stringify({ - query: query, - limit: 10, - }), - }) - if (result.ok) { - return parseSearchResults(await result.json()) - } else { - console.error(result) - } -} - -function debounce(func, timeout = 200) { - let timer - return (...args) => { - clearTimeout(timer) - timer = setTimeout(() => { - func.apply(this, args) - }, timeout) - } -} - -registerHandlers( - debounce((e) => { - let term = e.target.value - if (term !== "") { - searchContents(term).then((results) => displayResults(term, results)) - } - }), -) diff --git a/docs/assets/js/util.js b/docs/assets/js/util.js deleted file mode 100644 index 530bd7dc..00000000 --- a/docs/assets/js/util.js +++ /dev/null @@ -1,226 +0,0 @@ -// code from https://github.com/danestves/markdown-to-text -const removeMarkdown = ( - markdown, - options = { - listUnicodeChar: false, - stripListLeaders: true, - gfm: true, - useImgAltText: false, - preserveLinks: false, - }, -) => { - let output = markdown || "" - output = output.replace(/^(-\s*?|\*\s*?|_\s*?){3,}\s*$/gm, "") - - try { - if (options.stripListLeaders) { - if (options.listUnicodeChar) - output = output.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm, options.listUnicodeChar + " $1") - else output = output.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm, "$1") - } - if (options.gfm) { - output = output - .replace(/\n={2,}/g, "\n") - .replace(/~{3}.*\n/g, "") - .replace(/~~/g, "") - .replace(/`{3}.*\n/g, "") - } - if (options.preserveLinks) { - output = output.replace(/\[(.*?)\][\[\(](.*?)[\]\)]/g, "$1 ($2)") - } - output = output - .replace(/<[^>]*>/g, "") - .replace(/^[=\-]{2,}\s*$/g, "") - .replace(/\[\^.+?\](\: .*?$)?/g, "") - .replace(/(#{1,6})\s+(.+)\1?/g, "$2") - .replace(/\s{0,2}\[.*?\]: .*?$/g, "") - .replace(/\!\[(.*?)\][\[\(].*?[\]\)]/g, options.useImgAltText ? "$1" : "") - .replace(/\[(.*?)\][\[\(].*?[\]\)]/g, "$1") - .replace(/!?\[\[\S[^\[\]\|]*(?:\|([^\[\]]*))?\S\]\]/g, "$1") - .replace(/^\s{0,3}>\s?/g, "") - .replace(/(^|\n)\s{0,3}>\s?/g, "\n\n") - .replace(/^\s{1,2}\[(.*?)\]: (\S+)( ".*?")?\s*$/g, "") - .replace(/([\*_]{1,3})(\S.*?\S?)\1/g, "$2") - .replace(/([\*_]{1,3})(\S.*?\S?)\1/g, "$2") - .replace(/(`{3,})(.*?)\1/gm, "$2") - .replace(/`(.+?)`/g, "$1") - .replace(/\n{2,}/g, "\n\n") - .replace(/\[![a-zA-Z]+\][-\+]? /g, "") - } catch (e) { - console.error(e) - return markdown - } - return output -} - -const highlight = (content, term) => { - const highlightWindow = 20 - // try to find direct match first - const directMatchIdx = content.indexOf(term) - if (directMatchIdx !== -1) { - const h = highlightWindow - const before = content.substring(0, directMatchIdx).split(" ").slice(-h) - const after = content - .substring(directMatchIdx + term.length, content.length - 2) - .split(" ") - .slice(0, h) - return ( - (before.length === h ? `...${before.join(" ")}` : before.join(" ")) + - `${term}` + - after.join(" ") - ) - } - - const tokenizedTerm = term.split(/\s+/).filter((t) => t !== "") - const splitText = content.split(/\s+/).filter((t) => t !== "") - const includesCheck = (token) => - tokenizedTerm.some((term) => token.toLowerCase().startsWith(term.toLowerCase())) - - const occurrencesIndices = splitText.map(includesCheck) - - // calculate best index - let bestSum = 0 - let bestIndex = 0 - for (let i = 0; i < Math.max(occurrencesIndices.length - highlightWindow, 0); i++) { - const window = occurrencesIndices.slice(i, i + highlightWindow) - const windowSum = window.reduce((total, cur) => total + cur, 0) - if (windowSum >= bestSum) { - bestSum = windowSum - bestIndex = i - } - } - - const startIndex = Math.max(bestIndex - highlightWindow, 0) - const endIndex = Math.min(startIndex + 2 * highlightWindow, splitText.length) - const mappedText = splitText - .slice(startIndex, endIndex) - .map((token) => { - if (includesCheck(token)) { - return `${token}` - } - return token - }) - .join(" ") - .replaceAll(' ', " ") - return `${startIndex === 0 ? "" : "..."}${mappedText}${endIndex === splitText.length ? "" : "..." - }` -} - -// Common utilities for search -const resultToHTML = ({ url, title, content }) => { - return `` -} - -const redir = (id, term) => { - const shouldTrim = PRODUCTION && SEARCH_ENABLED - const baseURLPrefix = shouldTrim ? "" : BASE_URL.replace(/\/$/g, "") - const urlString = `${baseURLPrefix}${id}#:~:text=${encodeURIComponent(term)}/` - window.Million.navigate( - new URL(urlString), - ".singlePage", - ) - closeSearch() - plausible("Search", { - props: { - term - } - }) -} - -function openSearch() { - const source = document.getElementById("search-bar") - const results = document.getElementById("results-container") - const searchContainer = document.getElementById("search-container") - if (searchContainer.style.display === "none" || searchContainer.style.display === "") { - source.value = "" - results.innerHTML = "" - searchContainer.style.display = "block" - source.focus() - } else { - searchContainer.style.display = "none" - } -} - -function closeSearch() { - const searchContainer = document.getElementById("search-container") - searchContainer.style.display = "none" -} - -const registerHandlers = (onInputFn) => { - const source = document.getElementById("search-bar") - const searchContainer = document.getElementById("search-container") - let term - source.addEventListener("keyup", (e) => { - if (e.key === "Enter") { - const anchor = document.getElementsByClassName("result-card")[0] - redir(anchor.id, term) - } - }) - source.addEventListener("input", onInputFn) - document.addEventListener("keydown", (event) => { - if (event.key === "k" && (event.ctrlKey || event.metaKey)) { - event.preventDefault() - openSearch() - } - if (event.key === "Escape") { - event.preventDefault() - closeSearch() - } - }) - - const searchButton = document.getElementById("search-icon") - searchButton.addEventListener("click", (_) => { - openSearch() - }) - searchButton.addEventListener("keydown", (_) => { - openSearch() - }) - searchContainer.addEventListener("click", (_) => { - closeSearch() - }) - document.getElementById("search-space").addEventListener("click", (evt) => { - evt.stopPropagation() - }) -} - -const displayResults = (term, finalResults, extractHighlight = false) => { - const results = document.getElementById("results-container") - if (finalResults.length === 0) { - results.innerHTML = `` - } else { - results.innerHTML = finalResults - .map((result) => { - if (extractHighlight) { - return resultToHTML({ - url: result.url, - title: highlight(result.title, term), - content: highlight(removeMarkdown(result.content), term) - }) - } else { - return resultToHTML(result) - } - } - ) - .join("\n") - if (LATEX_ENABLED) { - renderMathInElement(results, { - delimiters: [ - { left: '$$', right: '$$', display: false }, - { left: '$', right: '$', display: false }, - ], - throwOnError: false - }) - } - - const anchors = [...document.getElementsByClassName("result-card")] - anchors.forEach((anchor) => { - anchor.onclick = () => redir(anchor.id, term) - }) - } -} diff --git a/docs/assets/scss/app.scss b/docs/assets/scss/app.scss deleted file mode 100644 index 3cc821b2..00000000 --- a/docs/assets/scss/app.scss +++ /dev/null @@ -1,38 +0,0 @@ -/** Import Bootstrap functions */ -@import "bootstrap/scss/functions"; - -/** Import theme variables */ -@import "common/variables"; - -/** Import Bootstrap */ -@import "bootstrap/scss/bootstrap"; - -/** Import highlight.js */ -@import "highlight.js/scss/sunburst"; - -/** Import KaTeX */ -@import "katex/dist/katex"; - -/** Import theme styles */ -@import "common/fonts"; -@import "common/global"; -@import "common/dark"; -@import "components/alerts"; -@import "components/buttons"; -@import "components/code"; -@import "components/details"; -@import "components/syntax"; -@import "components/comments"; -@import "components/forms"; -@import "components/images"; -@import "components/mermaid"; -@import "components/search"; -@import "components/tables"; -@import "layouts/footer"; -@import "layouts/header"; -@import "layouts/pages"; -@import "layouts/posts"; -@import "layouts/sidebar"; - -/** Import custom styles */ -@import "common/custom"; diff --git a/docs/assets/scss/common/_custom.scss b/docs/assets/scss/common/_custom.scss deleted file mode 100644 index b4737b78..00000000 --- a/docs/assets/scss/common/_custom.scss +++ /dev/null @@ -1,6 +0,0 @@ -/** Custom styles */ - - -//code { -// background: #373737 !important; -//} diff --git a/docs/assets/styles/_callouts.scss b/docs/assets/styles/_callouts.scss deleted file mode 100644 index 04fd2f66..00000000 --- a/docs/assets/styles/_callouts.scss +++ /dev/null @@ -1,170 +0,0 @@ -:root { - --callout-summary: #00b0ff; - --callout-summary-accent: #7fd7ff; - --callout-bug: #f50057; - --callout-bug-accent: #ff7aa9; - --callout-danger: #ff1744; - --callout-danger-accent: #ff8aa1; - --callout-example: #7c4dff; - --callout-example-accent: #bda5ff; - --callout-fail: #ff5252; - --callout-fail-accent: #ffa8a8; - --callout-info: #00b8d4; - --callout-info-accent: #69ebff; - --callout-note: #448aff; - --callout-note-accent: #a1c4ff; - --callout-question: #64dd17; - --callout-question-accent: #b0f286; - --callout-quote: #9e9e9e; - --callout-quote-accent: #cecece; - --callout-done: #00c853; - --callout-done-accent: #63ffa4; - --callout-important: #00bfa5; - --callout-important-accent: #5fffe9; - --callout-warning: #ff9100; - --callout-warning-accent: #ffc87f; -} - -[saved-theme=dark] { - --callout-summary: #00b0ff !important; - --callout-summary-accent: #00587f !important; - --callout-bug: #f50057 !important; - --callout-bug-accent: #7a002b !important; - --callout-danger: #ff1744 !important; - --callout-danger-accent: #8b001a !important; - --callout-example: #7c4dff !important; - --callout-example-accent: #2b00a6 !important; - --callout-fail: #ff5252 !important; - --callout-fail-accent: #a80000 !important; - --callout-info: #00b8d4 !important; - --callout-info-accent: #005c6a !important; - --callout-note: #448aff !important; - --callout-note-accent: #003ca1 !important; - --callout-question: #64dd17 !important; - --callout-question-accent: #006429 !important; - --callout-quote: #9e9e9e !important; - --callout-quote-accent: #4f4f4f !important; - --callout-done: #00c853 !important; - --callout-done-accent: #006429 !important; - --callout-important: #00bfa5 !important; - --callout-important-accent: #005f52 !important; - --callout-warning: #ff9100 !important; - --callout-warning-accent: #7f4800 !important; -} - -blockquote.callout-collapsible { - cursor: pointer; - - &.callout-collapsible::after { - content: '-'; - right: 6px; - font-weight: bolder; - font-family: Courier New, Courier, monospace; - } -} - -blockquote.callout-collapsed { - & > p { border-bottom-right-radius: 5px !important; } - padding-bottom: 0 !important; - &::after { - content: '+' !important; - } - & > *:not(:first-child) { - display: none !important; - } -} - -blockquote[class*="-callout"] { - margin-right: 0; - border-radius: 5px; - position: relative; - padding-left: 0 !important; - padding-bottom: 0.25em; - color: var(--dark); - background-color: var(--lightgray); - border-left: 6px solid var(--primary) !important; - & > p { - border-top-right-radius: 5px; - padding: 0.5em 1em; - margin: 0; - color: var(--gray); - &:first-child { - font-weight: 600; - color: var(--dark); - padding: 0.4em 30px; - } - } -} - -blockquote[class*="-callout"] > p:first-child::after, blockquote.callout-collapsible::after { - display: inline-block; - height: 18px; - width: 18px; - position: absolute; - top: 0.4em; - margin: 0.2em 0.4em; -} - -blockquote[class*="-callout"] > p:first-child { - font-weight: bold; - padding: 0.4em 35px; - - &::after { - left: 0; - } -} - -$summary: summary, abstract, tldr; -$bug: bug; -$danger: danger, error; -$example: example; -$fail: fail, failure, missing; -$info: info, todo; -$note: note; -$question: question, help, faq; -$quote: quote, cite; -$done: done, success, check; -$important: important, tip, hint; -$warning: warning, caution, attention; -$types: $summary, $bug, $danger, $example, $fail, $info, $note, $question, $quote, $done, $important, $warning; -$svgs: (); -$svgs: map-merge($svgs, ($summary: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='book' class='svg-inline--callout-fa fa-book fa-w-14' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='currentColor' d='M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($bug: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='bug' class='svg-inline--callout-fa fa-bug fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($danger: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='bolt' class='svg-inline--callout-fa fa-bolt fa-w-10' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath fill='currentColor' d='M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($example: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='list-ol' class='svg-inline--callout-fa fa-list-ol fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($fail: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='times-circle' class='svg-inline--callout-fa fa-times-circle fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($info: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='info-circle' class='svg-inline--callout-fa fa-info-circle fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($note: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='pencil-alt' class='svg-inline--callout-fa fa-pencil-alt fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($question: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='question-circle' class='svg-inline--callout-fa fa-question-circle fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($quote: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='quote-right' class='svg-inline--callout-fa fa-quote-right fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($done: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='check-circle' class='svg-inline--callout-fa fa-check-circle fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($important: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='fire' class='svg-inline--callout-fa fa-fire fa-w-12' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='currentColor' d='M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($warning: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='exclamation-triangle' class='svg-inline--callout-fa fa-exclamation-triangle fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'%3E%3C/path%3E%3C/svg%3E"))); - -@function getstr($l) { - $v: nth($l, 1); - @return $v; -} - -@each $type in $types { - @each $s in $type { - blockquote.#{$s}-callout { - border-left: 6px solid var(--callout-#{getstr($type)}) !important; - & > p:first-child { - background-color: var(--callout-#{getstr($type)}-accent) !important; - &::after { - content: ''; - -webkit-mask: map-get($svgs, $type); - mask: map-get($svgs, $type); - background-color: var(--callout-#{getstr($type)}) !important; - -webkit-mask-size: contain; - mask-size: contain; - -webkit-mask-repeat: no-repeat; - mask-repeat: no-repeat; - -webkit-mask-position: center; - mask-position: center; - } - } - } - } -} diff --git a/docs/assets/styles/_dark_syntax.scss b/docs/assets/styles/_dark_syntax.scss deleted file mode 100644 index 9d2019a8..00000000 --- a/docs/assets/styles/_dark_syntax.scss +++ /dev/null @@ -1,85 +0,0 @@ -/* Background */ .bg { color: #f8f8f2; background-color: #282a36; } -/* PreWrapper */ .chroma { color: #f8f8f2; background-color: #282a36; } -/* Other */ .chroma .x { } -/* Error */ .chroma .err { } -/* CodeLine */ .chroma .cl { } -/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } -/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } -/* LineHighlight */ .chroma .hl { background-color: #ffffcc } -/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } -/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } -/* Line */ .chroma .line { display: flex; } -/* Keyword */ .chroma .k { color: #ff79c6 } -/* KeywordConstant */ .chroma .kc { color: #ff79c6 } -/* KeywordDeclaration */ .chroma .kd { color: #8be9fd; font-style: italic } -/* KeywordNamespace */ .chroma .kn { color: #ff79c6 } -/* KeywordPseudo */ .chroma .kp { color: #ff79c6 } -/* KeywordReserved */ .chroma .kr { color: #ff79c6 } -/* KeywordType */ .chroma .kt { color: #8be9fd } -/* Name */ .chroma .n { } -/* NameAttribute */ .chroma .na { color: #50fa7b } -/* NameBuiltin */ .chroma .nb { color: #8be9fd; font-style: italic } -/* NameBuiltinPseudo */ .chroma .bp { } -/* NameClass */ .chroma .nc { color: #50fa7b } -/* NameConstant */ .chroma .no { } -/* NameDecorator */ .chroma .nd { } -/* NameEntity */ .chroma .ni { } -/* NameException */ .chroma .ne { } -/* NameFunction */ .chroma .nf { color: #50fa7b } -/* NameFunctionMagic */ .chroma .fm { } -/* NameLabel */ .chroma .nl { color: #8be9fd; font-style: italic } -/* NameNamespace */ .chroma .nn { } -/* NameOther */ .chroma .nx { } -/* NameProperty */ .chroma .py { } -/* NameTag */ .chroma .nt { color: #ff79c6 } -/* NameVariable */ .chroma .nv { color: #8be9fd; font-style: italic } -/* NameVariableClass */ .chroma .vc { color: #8be9fd; font-style: italic } -/* NameVariableGlobal */ .chroma .vg { color: #8be9fd; font-style: italic } -/* NameVariableInstance */ .chroma .vi { color: #8be9fd; font-style: italic } -/* NameVariableMagic */ .chroma .vm { } -/* Literal */ .chroma .l { } -/* LiteralDate */ .chroma .ld { } -/* LiteralString */ .chroma .s { color: #f1fa8c } -/* LiteralStringAffix */ .chroma .sa { color: #f1fa8c } -/* LiteralStringBacktick */ .chroma .sb { color: #f1fa8c } -/* LiteralStringChar */ .chroma .sc { color: #f1fa8c } -/* LiteralStringDelimiter */ .chroma .dl { color: #f1fa8c } -/* LiteralStringDoc */ .chroma .sd { color: #f1fa8c } -/* LiteralStringDouble */ .chroma .s2 { color: #f1fa8c } -/* LiteralStringEscape */ .chroma .se { color: #f1fa8c } -/* LiteralStringHeredoc */ .chroma .sh { color: #f1fa8c } -/* LiteralStringInterpol */ .chroma .si { color: #f1fa8c } -/* LiteralStringOther */ .chroma .sx { color: #f1fa8c } -/* LiteralStringRegex */ .chroma .sr { color: #f1fa8c } -/* LiteralStringSingle */ .chroma .s1 { color: #f1fa8c } -/* LiteralStringSymbol */ .chroma .ss { color: #f1fa8c } -/* LiteralNumber */ .chroma .m { color: #bd93f9 } -/* LiteralNumberBin */ .chroma .mb { color: #bd93f9 } -/* LiteralNumberFloat */ .chroma .mf { color: #bd93f9 } -/* LiteralNumberHex */ .chroma .mh { color: #bd93f9 } -/* LiteralNumberInteger */ .chroma .mi { color: #bd93f9 } -/* LiteralNumberIntegerLong */ .chroma .il { color: #bd93f9 } -/* LiteralNumberOct */ .chroma .mo { color: #bd93f9 } -/* Operator */ .chroma .o { color: #ff79c6 } -/* OperatorWord */ .chroma .ow { color: #ff79c6 } -/* Punctuation */ .chroma .p { } -/* Comment */ .chroma .c { color: #6272a4 } -/* CommentHashbang */ .chroma .ch { color: #6272a4 } -/* CommentMultiline */ .chroma .cm { color: #6272a4 } -/* CommentSingle */ .chroma .c1 { color: #6272a4 } -/* CommentSpecial */ .chroma .cs { color: #6272a4 } -/* CommentPreproc */ .chroma .cp { color: #ff79c6 } -/* CommentPreprocFile */ .chroma .cpf { color: #ff79c6 } -/* Generic */ .chroma .g { } -/* GenericDeleted */ .chroma .gd { color: #ff5555 } -/* GenericEmph */ .chroma .ge { text-decoration: underline } -/* GenericError */ .chroma .gr { } -/* GenericHeading */ .chroma .gh { font-weight: bold } -/* GenericInserted */ .chroma .gi { color: #50fa7b; font-weight: bold } -/* GenericOutput */ .chroma .go { color: #44475a } -/* GenericPrompt */ .chroma .gp { } -/* GenericStrong */ .chroma .gs { } -/* GenericSubheading */ .chroma .gu { font-weight: bold } -/* GenericTraceback */ .chroma .gt { } -/* GenericUnderline */ .chroma .gl { text-decoration: underline } -/* TextWhitespace */ .chroma .w { } diff --git a/docs/assets/styles/_light_syntax.scss b/docs/assets/styles/_light_syntax.scss deleted file mode 100644 index d0f452e0..00000000 --- a/docs/assets/styles/_light_syntax.scss +++ /dev/null @@ -1,85 +0,0 @@ -/* Background */ .bg { color: #272822; background-color: #fafafa; } -/* PreWrapper */ .chroma { color: #272822; background-color: #fafafa; } -/* Other */ .chroma .x { } -/* Error */ .chroma .err { } -/* CodeLine */ .chroma .cl { } -/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } -/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } -/* LineHighlight */ .chroma .hl { background-color: #ffffcc } -/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } -/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } -/* Line */ .chroma .line { display: flex; } -/* Keyword */ .chroma .k { color: #00a8c8 } -/* KeywordConstant */ .chroma .kc { color: #00a8c8 } -/* KeywordDeclaration */ .chroma .kd { color: #00a8c8 } -/* KeywordNamespace */ .chroma .kn { color: #f92672 } -/* KeywordPseudo */ .chroma .kp { color: #00a8c8 } -/* KeywordReserved */ .chroma .kr { color: #00a8c8 } -/* KeywordType */ .chroma .kt { color: #00a8c8 } -/* Name */ .chroma .n { color: #111111 } -/* NameAttribute */ .chroma .na { color: #75af00 } -/* NameBuiltin */ .chroma .nb { color: #111111 } -/* NameBuiltinPseudo */ .chroma .bp { color: #111111 } -/* NameClass */ .chroma .nc { color: #75af00 } -/* NameConstant */ .chroma .no { color: #00a8c8 } -/* NameDecorator */ .chroma .nd { color: #75af00 } -/* NameEntity */ .chroma .ni { color: #111111 } -/* NameException */ .chroma .ne { color: #75af00 } -/* NameFunction */ .chroma .nf { color: #75af00 } -/* NameFunctionMagic */ .chroma .fm { color: #111111 } -/* NameLabel */ .chroma .nl { color: #111111 } -/* NameNamespace */ .chroma .nn { color: #111111 } -/* NameOther */ .chroma .nx { color: #75af00 } -/* NameProperty */ .chroma .py { color: #111111 } -/* NameTag */ .chroma .nt { color: #f92672 } -/* NameVariable */ .chroma .nv { color: #111111 } -/* NameVariableClass */ .chroma .vc { color: #111111 } -/* NameVariableGlobal */ .chroma .vg { color: #111111 } -/* NameVariableInstance */ .chroma .vi { color: #111111 } -/* NameVariableMagic */ .chroma .vm { color: #111111 } -/* Literal */ .chroma .l { color: #ae81ff } -/* LiteralDate */ .chroma .ld { color: #d88200 } -/* LiteralString */ .chroma .s { color: #d88200 } -/* LiteralStringAffix */ .chroma .sa { color: #d88200 } -/* LiteralStringBacktick */ .chroma .sb { color: #d88200 } -/* LiteralStringChar */ .chroma .sc { color: #d88200 } -/* LiteralStringDelimiter */ .chroma .dl { color: #d88200 } -/* LiteralStringDoc */ .chroma .sd { color: #d88200 } -/* LiteralStringDouble */ .chroma .s2 { color: #d88200 } -/* LiteralStringEscape */ .chroma .se { color: #8045ff } -/* LiteralStringHeredoc */ .chroma .sh { color: #d88200 } -/* LiteralStringInterpol */ .chroma .si { color: #d88200 } -/* LiteralStringOther */ .chroma .sx { color: #d88200 } -/* LiteralStringRegex */ .chroma .sr { color: #d88200 } -/* LiteralStringSingle */ .chroma .s1 { color: #d88200 } -/* LiteralStringSymbol */ .chroma .ss { color: #d88200 } -/* LiteralNumber */ .chroma .m { color: #ae81ff } -/* LiteralNumberBin */ .chroma .mb { color: #ae81ff } -/* LiteralNumberFloat */ .chroma .mf { color: #ae81ff } -/* LiteralNumberHex */ .chroma .mh { color: #ae81ff } -/* LiteralNumberInteger */ .chroma .mi { color: #ae81ff } -/* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff } -/* LiteralNumberOct */ .chroma .mo { color: #ae81ff } -/* Operator */ .chroma .o { color: #f92672 } -/* OperatorWord */ .chroma .ow { color: #f92672 } -/* Punctuation */ .chroma .p { color: #111111 } -/* Comment */ .chroma .c { color: #75715e } -/* CommentHashbang */ .chroma .ch { color: #75715e } -/* CommentMultiline */ .chroma .cm { color: #75715e } -/* CommentSingle */ .chroma .c1 { color: #75715e } -/* CommentSpecial */ .chroma .cs { color: #75715e } -/* CommentPreproc */ .chroma .cp { color: #75715e } -/* CommentPreprocFile */ .chroma .cpf { color: #75715e } -/* Generic */ .chroma .g { } -/* GenericDeleted */ .chroma .gd { } -/* GenericEmph */ .chroma .ge { font-style: italic } -/* GenericError */ .chroma .gr { } -/* GenericHeading */ .chroma .gh { } -/* GenericInserted */ .chroma .gi { } -/* GenericOutput */ .chroma .go { } -/* GenericPrompt */ .chroma .gp { } -/* GenericStrong */ .chroma .gs { font-weight: bold } -/* GenericSubheading */ .chroma .gu { } -/* GenericTraceback */ .chroma .gt { } -/* GenericUnderline */ .chroma .gl { } -/* TextWhitespace */ .chroma .w { } diff --git a/docs/assets/styles/base.scss b/docs/assets/styles/base.scss deleted file mode 100644 index 85eb8bcf..00000000 --- a/docs/assets/styles/base.scss +++ /dev/null @@ -1,625 +0,0 @@ -// Replace this with your own font imports! -@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;700&family=Inter:wght@400;600;700&family=Source+Sans+Pro:wght@400;600&display=swap'); -:root { - --font-body: "Source Sans Pro"; - --font-header: "Inter"; - --font-mono: "Fira Code" -} - -// typography -html { - scroll-behavior: smooth; - &:lang(ar) { - & p, & h1, & h2, & h3, article, header { - direction: rtl; - text-align: right; - } - } - & footer > p { - text-align: center !important; - } -} - -.singlePage { - padding: 4em 30vw; - margin: 0 auto; - max-width: 1000px; - @media all and (max-width: 1200px) { - padding: 25px 5vw; - } -} - - -body { - margin: 0; - height: 100vh; - width: 100vw; - max-width: 100%; - box-sizing: border-box; - background-color: var(--light); -} - -h1, h2, h3, h4, h5, h6, thead { - font-family: var(--font-header); - color: var(--dark); - font-weight: revert; - margin: 2rem 0 0; - padding: 2rem auto 1rem; - - &:hover > .hanchor { - color: var(--secondary); - } -} - -.hanchor { - font-family: var(--font-header); - opacity: 0.8; - transition: color 0.3s ease; - color: var(--dark); -} - -p, ul, text, a, tr, td, li, ol, ul { - font-family: var(--font-body); - color: var(--gray); - fill: var(--gray); - font-weight: revert; - margin: revert; - padding: revert; -} - -tbody, li, p { - line-height: 1.5em; -} - -.mainTOC { - border-radius: 5px; - padding: 0.75em 0; - - & details { - & summary { - cursor: zoom-in; - font-family: var(--font-header); - color: var(--dark); - font-weight: 700; - } - - &[open] summary { - cursor: zoom-out; - } - } -} - -#TableOfContents > ol { - counter-reset: section; - margin-left: 0; - padding-left: 1.5em; - & > li { - counter-increment: section; - & > ol { - counter-reset: subsection; - & > li { - counter-increment: subsection; - &::marker { - content: counter(section) "." counter(subsection) " "; - } - } - } - } - - & > li::marker { - content: counter(section) " "; - } - - & > li::marker, & > li > ol > li::marker { - font-family: var(--font-body); - font-weight: 700; - } -} - -table { - border: 1px solid var(--outlinegray); - width: 100%; - padding: 1.5em; - border-collapse: collapse; -} - -td, th { - padding: 0.2em 1em; - border: 1px solid var(--outlinegray); -} - -img { - max-width: 100%; - border-radius: 3px; - margin: 1em 0; -} - -p > img + em { - display: block; - transform: translateY(-1em); -} - -sup { - line-height: 0 -} - -blockquote { - margin-left: 0; - border-left: 3px solid var(--secondary); - padding-left: 1em; - transition: border-color 0.2s ease; -} - -.footnotes p { - margin: 0.5em 0; -} - -.pagination { - list-style: none; - padding-left: 0; - display: flex; - margin-top: 2em; - gap: 1.5em; - justify-content: center; - - .disabled { - opacity: 0.2; - } - - & > li { - text-align: center; - display: inline-block; - - & a { - background-color: transparent !important; - } - - & a[href$="#"], &.active a { - opacity: 0.2; - } - } -} - -article { - & > h1 { - margin-top: 2em; - font-size: 2em; - } - - & > .meta { - margin: 0 0 1em 0; - opacity: 0.7; - } - - & a { - font-weight: 600; - - &.internal-link { - text-decoration: none; - background-color: transparentize(#8f9fa9, 0.85); - padding: 0 0.1em; - margin: auto -0.1em; - border-radius: 3px; - - &.broken { - opacity: 0.5; - background-color: transparent; - } - } - } - - & p { - overflow-wrap: anywhere; - } -} - -.tags { - list-style: none; - padding-left: 0; - - & .meta { - margin: 1.5em 0; - & > h1 { - margin: 0; - } - & > p { - margin: 0; - } - } - - & > li { - display: inline-block; - margin: 0.4em 0.2em; - } - - & > li > a { - border-radius: 8px; - border: var(--outlinegray) 1px solid; - padding: 0.2em 0.5em; - &::before { - content: "#"; - margin-right: 0.3em; - color: var(--outlinegray); - } - } -} - -.backlinks a { - font-weight: 600; - font-size: 0.9rem; -} - -sup > a { - text-decoration: none; - padding: 0 0.1em 0 0.2em; -} - -#page-title { - margin: 0; - & > a { - font-family: var(--font-header); - } -} - -a { - font-size: 1em; - font-weight: 700; - text-decoration: none; - transition: all 0.2s ease; - color: var(--secondary); - &:hover { - color: var(--tertiary) !important; - } -} - -pre { - font-family: var(--font-mono); - padding: 0.75em; - border-radius: 3px; - overflow-x: scroll; -} - -code { - font-family: var(--font-mono); - font-size: 0.85em; - padding: 0.15em 0.3em; - border-radius: 5px; - background: var(--lightgray); -} - -@keyframes fadeIn { - 0% {opacity:0;} - 100% {opacity:1;} -} - -footer { - margin-top: 4em; - text-align: center; - & ul { - padding-left: 0; - } -} - -hr { - width: 100%; - margin: 2em auto; - height: 1px; - border: none; - background-color: var(--outlinegray); -} - -.page-end { - display: flex; - flex-direction: row; - gap: 2em; - - @media all and (max-width: 780px) { - flex-direction: column; - } - - & > * { - flex: 1 0 0; - } - - & > .backlinks-container { - & > ul { - list-style: none; - padding: 0; - margin: 0; - - & > li { - margin: 0.5em 0; - padding: 0.25em 1em; - border: var(--outlinegray) 1px solid; - border-radius: 5px - } - } - } - - & #graph-container { - border: var(--outlinegray) 1px solid; - border-radius: 5px; - box-sizing: border-box; - min-height: 250px; - margin: 0.5em 0; - - & > svg { - margin-bottom: -5px; - - } - } -} - -.centered { - margin-top: 30vh; -} - -.spacer { - flex: 1 1 auto; -} - -header { - display: flex; - flex-direction: row; - align-items: center; - margin: 1em 0 2em; - - & > h1 { - font-size: 2em; - } - - & > nav { - @media all and (max-width: 600px) { - display: none; - } - } - - #search-icon { - background-color: var(--lightgray); - border-radius: 4px; - height: 2em; - display: flex; - align-items: center; - cursor: pointer; - & > p { - display: inline; - padding: 0 1.5em 0 2em; - } - } - - & svg { - cursor: pointer; - width: 18px; - min-width: 18px; - margin: 0 0.5em; - - &:hover .search-path { - stroke: var(--tertiary); - } - - .search-path { - stroke: var(--gray); - stroke-width: 2px; - transition: stroke 0.5s ease; - } - } -} - -#search-container { - position: fixed; - z-index: 9999; - left: 0; - top: 0; - width: 100vw; - height: 100%; - overflow: scroll; - display: none; - backdrop-filter: blur(4px); - -webkit-backdrop-filter: blur(4px); - - & > div { - width: 50%; - margin-top: 15vh; - margin-left: auto; - margin-right: auto; - - @media all and (max-width: 1200px) { - width: 90%; - } - - & > * { - width: 100%; - border-radius: 4px; - background: var(--light); - box-shadow: 0 14px 50px rgba(27, 33, 48, 0.12), 0 10px 30px rgba(27, 33, 48, 0.16); - margin-bottom: 2em; - } - - & > input { - box-sizing: border-box; - padding: 0.5em 1em; - font-family: var(--font-body); - color: var(--dark); - font-size: 1.1em; - border: 1px solid var(--outlinegray); - - &:focus { - outline: none; - } - } - - & > #results-container { - & .result-card { - padding: 1em; - cursor: pointer; - transition: background 0.2s ease; - border: 1px solid var(--outlinegray); - border-bottom: none; - width: 100%; - - // normalize button props - font-family: inherit; - font-size: 100%; - line-height: 1.15; - margin: 0; - overflow: visible; - text-transform: none; - text-align: left; - background: var(--light); - outline: none; - - &:hover, &:focus { - background: rgba(180, 180, 180, 0.15); - } - - &:first-of-type { - border-top-left-radius: 5px; - border-top-right-radius: 5px; - } - - &:last-of-type { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - border-bottom: 1px solid var(--outlinegray); - } - - & > h3, & > p { - margin: 0; - } - } - } - } -} - -.search-highlight { - background-color: #afbfc966; - padding: 0.05em 0.2em; - border-radius: 3px; -} - -.section-ul { - list-style: none; - margin-top: 2em; - padding-left: 0; - -} - -.section-li { - margin-bottom: 1em; - - & > .section { - display: flex; - align-items: center; - - @media all and (max-width: 600px) { - & .tags { - display: none; - } - } - - & h3 > a { - font-weight: 700; - margin: 0; - } - - & p { - margin: 0; - padding-right: 1em; - flex-basis: 6em; - } - } - - & h3 { - opacity: 1; - font-weight: 700; - margin: 0; - } - - & .meta { - opacity: 0.6; - } -} - -@keyframes dropin { - 0% { - display: none; - opacity: 0; - visibility: hidden; - } - 1% { - display: inline-block; - opacity: 0; - } - 100% { - opacity: 1; - visibility: visible; - } -} - -.popover { - z-index: 999; - position: absolute; - width: 20rem; - display: none; - background-color: var(--light); - padding: 1rem; - margin: 1rem; - border: 1px solid var(--outlinegray); - border-radius: 5px; - pointer-events: none; - transition: opacity 0.2s ease, transform 0.2s ease; - user-select: none; - overflow-wrap: anywhere; - box-shadow: 6px 6px 36px 0 rgba(0,0,0,0.25); - - @media all and (max-width: 600px) { - display: none !important; - } - - &.visible { - opacity: 1; - visibility: visible; - display: inline-block; - animation: dropin 0.2s ease; - } - - & > h3 { - font-size: 1rem; - margin: 0.25rem 0; - } - - & .meta { - margin-top: 0.25rem; - opacity: 0.5; - font-family: var(--font-mono); - font-size: 0.8rem; - } - - & > p { - margin: 0; - padding: 0.5rem 0; - } - - & > p, & > a { - font-size: 1rem; - font-weight: 400; - user-select: none; - } -} - -#contact_buttons ul { - list-style-type: none; - - li { - display: inline-block; - } - - li a { - padding: 0 1em; - } -} - -mark { - background-color: var(--highlighted); - color: var(--gray); -} diff --git a/docs/assets/styles/clipboard.scss b/docs/assets/styles/clipboard.scss deleted file mode 100644 index 7989e248..00000000 --- a/docs/assets/styles/clipboard.scss +++ /dev/null @@ -1,47 +0,0 @@ -.clipboard-button { - position: absolute; - display: flex; - float: right; - right: 0; - padding: 0.69em; - margin: 0.5em; - color: var(--outlinegray); - border-color: var(--dark); - background-color: var(--lightgray); - filter: contrast(1.1); - border: 2px solid; - border-radius: 6px; - font-size: 0.8em; - z-index: 1; - opacity: 0; - transition: 0.12s; - - & > svg { - fill: var(--light); - filter: contrast(0.3); - } - - &:hover { - cursor: pointer; - border-color: var(--primary); - - & > svg { - fill: var(--primary); - } - } - - &:focus { - outline: 0; - } -} - -.highlight { - position: relative; - - &:hover > .clipboard-button { - opacity: 1; - transition: 0.2s; - } -} - - diff --git a/docs/assets/styles/code-title.scss b/docs/assets/styles/code-title.scss deleted file mode 100644 index b384743b..00000000 --- a/docs/assets/styles/code-title.scss +++ /dev/null @@ -1,20 +0,0 @@ -.code-title { - color: var(--primary) ; - font-family: var(--font-mono); - width: max-content; - overflow-x: auto; - display: inline-block; - vertical-align: middle; - font-weight: normal; - line-height: 1em; - position: relative; - padding: 0.5em 0.6em 0.6em; // + 1.2 em - max-width: calc(100% - 1.2em); // (-1.2 em) fits article width exactly - margin-bottom: -0.2em; - z-index: -1; - border-top-left-radius: 0.3em; - border-top-right-radius: 0.3em; - font-size: 0.9em; - background-color: var(--lightgray); - filter: hue-rotate(-30deg) contrast(1.0) opacity(0.8); -} \ No newline at end of file diff --git a/docs/assets/styles/custom.scss b/docs/assets/styles/custom.scss deleted file mode 100644 index fc0108a5..00000000 --- a/docs/assets/styles/custom.scss +++ /dev/null @@ -1,31 +0,0 @@ -// Add your own CSS here! - -:root { - --light: #faf8f8; - --dark: #141021; - --secondary: #284b63; - --tertiary: #84a59d; - --visited: #afbfc9; - --primary: #f28482; - --gray: #4e4e4e; - --lightgray: #f0f0f0; - --outlinegray: #dadada; - --million-progress-bar-color: var(--secondary); - --highlighted: #f5dfaf88; -} - -[saved-theme="dark"] { - --light: #1e1e21 !important; - --dark: #fbfffe !important; - --secondary: #6b879a !important; - --visited: #4a575e !important; - --tertiary: #84a59d !important; - --primary: #f58382 !important; - --gray: #d4d4d4 !important; - --lightgray: #292633 !important; - --outlinegray: #343434 !important; - --highlighted: #574010; -} - - - diff --git a/docs/assets/styles/darkmode.scss b/docs/assets/styles/darkmode.scss deleted file mode 100644 index 61967d79..00000000 --- a/docs/assets/styles/darkmode.scss +++ /dev/null @@ -1,44 +0,0 @@ -.darkmode { - float: right; - padding: 1em; - min-width: 30px; - position: relative; - - @media all and (max-width: 450px) { - padding: 1em; - } - - & > .toggle { - display: none; - box-sizing: border-box; - } - - & svg { - opacity: 0; - position: absolute; - width: 20px; - height: 20px; - top: calc(50% - 10px); - margin: 0 7px; - fill: var(--gray); - transition: opacity 0.1s ease; - } -} - -.toggle:checked ~ label { - & > #dayIcon { - opacity: 0; - } - & > #nightIcon { - opacity: 1; - } -} - -.toggle:not(:checked) ~ label { - & > #dayIcon { - opacity: 1; - } - & > #nightIcon { - opacity: 0; - } -} \ No newline at end of file diff --git a/docs/assets/styles/syntax.scss b/docs/assets/styles/syntax.scss deleted file mode 100644 index 6267f5cf..00000000 --- a/docs/assets/styles/syntax.scss +++ /dev/null @@ -1,66 +0,0 @@ -// Overrides -/* Background */ -.chroma { - overflow: hidden !important; - background-color: var(--lightgray) !important; -} - -/* LineTable */ -.chroma .lntable { - width: auto !important; - overflow: auto !important; - display: block !important; -} - -/* LineHighlight */ -.chroma .hl { - display: block !important; - width: 100% !important; -} - -/* LineNumbersTable */ -.chroma .lnt { - margin-right: 0.0em !important; - padding: 0 0.0em 0 0.0em !important; -} - -/* LineNumbers */ -.chroma .ln { - margin-right: 0.0em !important; - padding: 0 0.0em 0 0.0em !important; -} - -/* GenericDeleted */ -.chroma .gd { - color: #8b080b !important; -} - -/* GenericInserted */ -.chroma .gi { - font-weight: bold !important; -} - -.lntd:first-of-type > .chroma { - padding-right: 0 !important; -} - -.chroma code { - font-family: var(--font-mono) !important; - font-size: 0.85em !important; - line-height: 2em !important; - background: none !important; - padding: 0 !important; -} - -.chroma { - border-radius: 3px !important; - margin: 0 !important; -} - -pre.chroma { - -moz-tab-size:4;-o-tab-size:4;tab-size:4; -} - -.katex { - font-size: 1.1em !important; -} diff --git a/docs/babel.config.js b/docs/babel.config.js deleted file mode 100644 index ce9c9de0..00000000 --- a/docs/babel.config.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = { - presets: [ - [ - '@babel/preset-env', - { - targets: { - browsers: [ - // Best practice: https://github.com/babel/babel/issues/7789 - '>=1%', - 'not ie 11', - 'not op_mini all' - ] - } - } - ] - ] -}; \ No newline at end of file diff --git a/docs/config/_default/config.toml b/docs/config/_default/config.toml deleted file mode 100644 index 77e93d56..00000000 --- a/docs/config/_default/config.toml +++ /dev/null @@ -1,63 +0,0 @@ -baseurl = "https://lunabrain.com/" -canonifyURLs = false -disableAliases = true -disableHugoGeneratorInject = true -enableEmoji = true -enableGitInfo = false -enableRobotsTXT = true -paginate = 7 -rssLimit = 10 - -# Multilingual -defaultContentLanguage = "en" -# defaultContentLanguageInSubdir = true - -# add redirects/headers -[outputs] -home = ["HTML", "RSS"] -section = ["HTML", "RSS", "SITEMAP"] - -# add output format for section sitemap.xml -[outputFormats.SITEMAP] -mediaType = "application/xml" -baseName = "sitemap" -isHTML = false -isPlainText = true -noUgly = true -rel = "sitemap" - -[caches] - [caches.getjson] - dir = ":cacheDir/:project" - maxAge = "10s" - -[sitemap] - changefreq = "weekly" - filename = "sitemap.xml" - priority = 0.5 - -[taxonomies] - contributor = "contributors" - category = "categories" - tag = "tags" - -[permalinks] - blog = "/blog/:title/" -# docs = "/docs/1.0/:sections[1:]/:title/" - -[minify.tdewolff.html] - keepWhitespace = false - -[related] - threshold = 80 - includeNewer = true - toLower = false - [[related.indices]] - name = "categories" - weight = 100 - [[related.indices]] - name = "tags" - weight = 80 - [[related.indices]] - name = "date" - weight = 10 diff --git a/docs/config/_default/languages.toml b/docs/config/_default/languages.toml deleted file mode 100644 index d6eb3154..00000000 --- a/docs/config/_default/languages.toml +++ /dev/null @@ -1,7 +0,0 @@ -[en] - languageName = "English" - contentDir = "content" - weight = 10 - [en.params] - languageISO = "EN" - languageTag = "en-US" diff --git a/docs/config/_default/markup.toml b/docs/config/_default/markup.toml deleted file mode 100644 index 2880e305..00000000 --- a/docs/config/_default/markup.toml +++ /dev/null @@ -1,29 +0,0 @@ -defaultMarkdownHandler = "goldmark" - -[goldmark] - [goldmark.extensions] - linkify = false - [goldmark.parser] - autoHeadingID = true - autoHeadingIDType = "github" - [goldmark.parser.attribute] - block = true - title = true - [goldmark.renderer] - unsafe = true - -[highlight] - codeFences = false - guessSyntax = false - hl_Lines = "" - lineNoStart = 1 - lineNos = false - lineNumbersInTable = true - noClasses = false - style = "dracula" - tabWidth = 4 - -[tableOfContents] - endLevel = 3 - ordered = false - startLevel = 2 diff --git a/docs/config/_default/menus/menus.en.toml b/docs/config/_default/menus/menus.en.toml deleted file mode 100644 index be24bbad..00000000 --- a/docs/config/_default/menus/menus.en.toml +++ /dev/null @@ -1,46 +0,0 @@ -[[docs]] - name = "Setup" - weight = 10 - identifier = "setup" - url = "/docs/setup/" - -[[main]] - name = "Blog" - url = "/blog/" - weight = 20 - -[[main]] - name = "ML Wiki" - url = "/wiki/" - weight = 20 - -[[main]] - name = "Get Started" - weight = 30 - identifier = "get-started" - url = "/docs/setup/introduction/" - -[[main]] - name = "Quick Start" - weight = 40 - identifier = "quick-start" - url = "/docs/setup/quick-start/" - parent = "get-started" - -[[social]] - name = "GitHub" - pre = "" - url = "https://github.com/lunabrain-ai/lunabrain" - post = "v0.1.0" - weight = 10 - -[[social]] - name = "Twitter" - pre = "" - url = "https://twitter.com/lunabrainai" - weight = 20 - -# [[footer]] -# name = "Privacy" -# url = "/privacy-policy/" -# weight = 10 diff --git a/docs/config/_default/module.toml b/docs/config/_default/module.toml deleted file mode 100644 index ea4b46dd..00000000 --- a/docs/config/_default/module.toml +++ /dev/null @@ -1,68 +0,0 @@ -[hugoVersion] - extended = true - min = "0.80.0" - max = "" - -[[mounts]] - source = "node_modules/@hyas/doks/archetypes" - target = "archetypes" - -[[mounts]] - source = "node_modules/@hyas/doks/assets" - target = "assets" - -# [[mounts]] -# source = "node_modules/@hyas/doks/content" -# target = "content" - -[[mounts]] - source = "node_modules/@hyas/doks/data" - target = "data" - -[[mounts]] - source = "node_modules/@hyas/doks/layouts" - target = "layouts" - -[[mounts]] - source = "node_modules/@hyas/doks/static" - target = "static" - -[[mounts]] - source = "node_modules/flexsearch" - target = "assets/js/vendor/flexsearch" - -[[mounts]] - source = "node_modules/katex" - target = "assets/js/vendor/katex" - -[[mounts]] - source = "node_modules/mermaid" - target = "assets/js/vendor/mermaid" - -[[mounts]] - source = "assets" - target = "assets" - -[[mounts]] - source = "static" - target = "static" - -# [[mounts]] -# source = "content" -# target = "content" - -[[mounts]] - source = "layouts" - target = "layouts" - -[[mounts]] - source = "archetypes" - target = "archetypes" - -[[mounts]] - source = "data" - target = "data" - -[[mounts]] - source = "node_modules/@hyas/images/layouts" - target = "layouts" diff --git a/docs/config/_default/params.toml b/docs/config/_default/params.toml deleted file mode 100644 index 8acaed79..00000000 --- a/docs/config/_default/params.toml +++ /dev/null @@ -1,114 +0,0 @@ -# Meta Data for SEO - -## Homepage -title = "LunaBrain" -titleSeparator = "-" -titleAddition = "Stay on top of information, always." -description = "" - -## Documentation -# docsVersion = "0.3" - -## Open Graph -images = ["doks.png"] -ogLocale = "en_US" -domainTLD = "lunabrain.com" -titleHome = "LunaBrain" - -## Twitter Cards -twitterSite = "@lunabrainai" -twitterCreator = "@lunabrainai" - -## JSON-LD -# schemaType = "Person" -schemaType = "Organization" -schemaName = "LunaBrain" -schemaAuthor = "LunaBrain" -schemaAuthorTwitter = "https://twitter.com/lunabrainai" -schemaAuthorLinkedIn = "https://www.linkedin.com/in/henkverlinde/" -schemaAuthorGitHub = "https://github.com/h-enk" -schemaLocale = "en-US" -schemaLogo = "logo-doks.png" -schemaLogoWidth = 512 -schemaLogoHeight = 512 -schemaImage = "doks.png" -schemaImageWidth = 1280 -schemaImageHeight = 640 -schemaTwitter = "https://twitter.com/lunabrainai" -schemaLinkedIn = "" -schemaGitHub = "https://github.com/lunabrain-ai/lunabrain" -schemaSection = "blog" - -## Sitelinks Search Box -siteLinksSearchBox = false - -## Chrome Browser -themeColor = "#fff" - -# Images - Temporarily left in place for backward compatibility -quality = 85 -bgColor = "#fff" -landscapePhotoWidths = [900, 800, 700, 600, 500] -portraitPhotoWidths = [800, 700, 600, 500] -lqipWidth = "20x" -smallLimit = "300" - -# Images -imageResponsive = true -imageConvertTo = "webp" -imageImageSizes = ["480","720","1080","1280","1600","2048"] -singleSize = false -imageAddClass = "img-fluid lazyload blur-up" - -### Image template -defaultImage = "default-image.png" # put in `./assets/images/` -fillImage = "1270x740 Center" # normalize image size - -# Footer -footer = "Powered by Hugo and Doks" - -# Feed -copyRight = "Copyright (c) 2023 LunBrain" - -# Alert -alert = true -alertDismissable = true -# alertText = "Introducing the Doks child theme, several DX + UX updates, and more! Check out Doks v0.2" -alertText = "Join our Discord server to get help, share ideas, and stay up to date with the latest news and updates." - -# Edit Page -# repoHost [Github | Gitea | GitLab | Bitbucket | BitbucketServer ] is used for building the edit link based on git hoster -repoHost = "GitHub" -#repoHost = "Gitea" -docsRepo = "https://github.com/h-enk/doks" -docsRepoBranch = "master" -docsRepoSubPath = "" -editPage = false -lastMod = false - -[sections] - sectionNav = ["docs", "guides"] - -[options] - lazySizes = true - clipBoard = true - instantPage = true - flexSearch = true - searchSectionsShow = [] - searchSectionsIndex = [] - darkMode = true - bootStrapJs = true - breadCrumb = false - highLight = true - kaTex = false - multilingualMode = false - docsVersioning = false - fullWidth = false - navbarSticky = true - toTopButton = false - scrollSpy = false # experimental; needs Bootstrap >= 5.2.0-beta1 - -[menu] - [menu.section] - auto = true - collapsibleSidebar = true diff --git a/docs/config/next/config.toml b/docs/config/next/config.toml deleted file mode 100644 index 9c5e90da..00000000 --- a/docs/config/next/config.toml +++ /dev/null @@ -1 +0,0 @@ -canonifyURLs = false diff --git a/docs/config/postcss.config.js b/docs/config/postcss.config.js deleted file mode 100644 index e8c3b39d..00000000 --- a/docs/config/postcss.config.js +++ /dev/null @@ -1,40 +0,0 @@ -const autoprefixer = require('autoprefixer'); -const purgecss = require('@fullhuman/postcss-purgecss'); -const whitelister = require('purgecss-whitelister'); - -module.exports = { - plugins: [ - autoprefixer(), - purgecss({ - content: [ - './node_modules/@hyas/doks/layouts/**/*.html', - './node_modules/@hyas/doks/content/**/*.md', - './layouts/**/*.html', - './content/**/*.md', - ], - safelist: [ - 'lazyloaded', - 'table', - 'thead', - 'tbody', - 'tr', - 'th', - 'td', - 'h5', - 'alert-link', - 'container-xxl', - 'container-fluid', - ...whitelister([ - './node_modules/@hyas/doks/assets/scss/common/_variables.scss', - './node_modules/@hyas/doks/assets/scss/components/_alerts.scss', - './node_modules/@hyas/doks/assets/scss/components/_buttons.scss', - './node_modules/@hyas/doks/assets/scss/components/_code.scss', - './node_modules/@hyas/doks/assets/scss/components/_syntax.scss', - './node_modules/@hyas/doks/assets/scss/components/_search.scss', - './node_modules/@hyas/doks/assets/scss/common/_dark.scss', - './node_modules/katex/dist/katex.css', - ]), - ], - }), - ], -} diff --git a/docs/config/production/config.toml b/docs/config/production/config.toml deleted file mode 100644 index 9c5e90da..00000000 --- a/docs/config/production/config.toml +++ /dev/null @@ -1 +0,0 @@ -canonifyURLs = false diff --git a/docs/content/_index.md b/docs/content/_index.md deleted file mode 100644 index 37d8c89e..00000000 --- a/docs/content/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title : "LunaBrain" -description: "Lets make AI what it really is: a tool for humans. And humans like reading text." -lead: "Lets make AI what it really is: a tool for humans. And humans like reading text." -date: 2020-10-06T08:47:36+00:00 -lastmod: 2020-10-06T08:47:36+00:00 -draft: false -images: [] ---- diff --git a/docs/content/blog/_index.md b/docs/content/blog/_index.md deleted file mode 100644 index 37cb611d..00000000 --- a/docs/content/blog/_index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "Blog" -description: "The Doks Blog." -date: 2020-10-06T08:49:55+00:00 -lastmod: 2020-10-06T08:49:55+00:00 -draft: false -images: [] ---- diff --git a/docs/content/blog/cerebras-gpt-vs-llama-ai-model-comparison/cerebras-wse-nvidia-v100-featured-image.jpg b/docs/content/blog/cerebras-gpt-vs-llama-ai-model-comparison/cerebras-wse-nvidia-v100-featured-image.jpg deleted file mode 100644 index 9c572650..00000000 Binary files a/docs/content/blog/cerebras-gpt-vs-llama-ai-model-comparison/cerebras-wse-nvidia-v100-featured-image.jpg and /dev/null differ diff --git a/docs/content/blog/cerebras-gpt-vs-llama-ai-model-comparison/chat-gpt-bad-math.png b/docs/content/blog/cerebras-gpt-vs-llama-ai-model-comparison/chat-gpt-bad-math.png deleted file mode 100644 index dc6934a1..00000000 Binary files a/docs/content/blog/cerebras-gpt-vs-llama-ai-model-comparison/chat-gpt-bad-math.png and /dev/null differ diff --git a/docs/content/blog/cerebras-gpt-vs-llama-ai-model-comparison/index.md b/docs/content/blog/cerebras-gpt-vs-llama-ai-model-comparison/index.md deleted file mode 100644 index 20303d1a..00000000 --- a/docs/content/blog/cerebras-gpt-vs-llama-ai-model-comparison/index.md +++ /dev/null @@ -1,131 +0,0 @@ ---- -title: "Cerebras-GPT vs LLaMA AI Model Comparison" -description: "Comparing the real-world performance of GPT-like AI models with public weights" -slug: cerebras-gpt-vs-llama-ai-model-comparison -date: 2023-03-29T07:00:00.000Z -keywords: [gpt, llama, open-source, cerebras, cerebras-gpt] -tags: [gpt, ai, open-source] -contributors: [free] -images: [cerebras-wse-nvidia-v100-featured-image.jpg] ---- - - - -On March 28th, Cerebras released on [HuggingFace](https://huggingface.co/cerebras/Cerebras-GPT-13B) a new Open -SourcePage model trained on [The Pile](https://pile.eleuther.ai/) dataset called "Cerebras-GPT" with GPT-3-like -performance. ( -[Link to press release](https://www.cerebras.net/blog/cerebras-gpt-a-family-of-open-compute-efficient-large-language-models/)) - -## What makes Cerebras interesting? - -While Cerebras isn't as capable of a model for performing tasks when compared directly to models like [LLaMA](https://en.wikipedia.org/wiki/LLaMA), -ChatGPT, or GPT-4, it has one important quality that sets it apart: It's been released under the Apache 2.0 licence, -a fully -permissive Open SourcePage license, and the weights are available for anybody to download and try out. - -This is different from other models like LLaMA that, while their weights are freely available, their [license](https://huggingface.co/decapoda-research/llama-7b-hf/blob/main/LICENSE) -restricts LLaMAs usage to only "Non-Commercial" use cases like academic research or personal tinkering. - -That means if you'd like to check out LLaMA you'll have to get access to a powerful GPU to run it or use a -volunteer-run service like [KoboldAI](https://lite.koboldai.net/#). You can't just go to a website like you can with -ChatGPT and expect to start feeding it prompts. (At least without running the risk of Meta sending you a [DMCA takedown -request](https://news.ycombinator.com/item?id=35287733).) - -## Proof-of-Concept to demonstrate Cerebras Training Hardware - -The real reason that this model is being released is showcase the crazy silicon that Cerebras has been spending years -building. - -![Cerebras vs NVIDIA silicon die show](cerebras-wse-nvidia-v100-featured-image.jpg) - -
A comparison of "one" Cerebras chip compared to an NVIDIA V100 - chip. -
-
- - - -These new chips are impressive because they use a silicon architecture that hasn't been deployed in production for AI -training before: Instead of networking together a bunch of computers that each have a handful of NVIDIA GPUs, Cerebras -has instead "networked" together the chips at the die-level. - -By releasing Cerebras-GPT and showing that the results are comparable to existing OSS models, Cerebras is able to -"prove" that their product is competitive with what NVIDIA and AMD have on the market today. (And healthy -competition benefits all of us!) - -## Cerebras vs LLaMA vs ChatGPT vs GPT-J vs NeoX - -To put it in simple terms: Cerebras isn't as advanced as either LLaMA or ChatGPT (`gpt-3.5-turbo`). It's a -much smaller model at 13B parameters and it's been intentionally "undertrained" relative to the other models. -Cerebras is ~6% of the size of GPT-3 and ~25% of the size of LLaMA's full-size, 60B parameter model, and they -intentionally limited how long the model was trained in order to reach a "training compute optimal" state. - -That doesn't mean that it's useless though. As you'll see from the data released in the Cerebras paper, this model -is still a welcome addition to the available Open SourcePage models like [GPT-2 (1.5B)](https://huggingface.co/gpt2), -[GPT-J (6B)](https://huggingface.co/EleutherAI/gpt-j-6B), and -[GPT NeoX (20B)](https://huggingface.co/EleutherAI/gpt-neox-20b). -It's also possible that the model can improve with additional tweaking by the community (like fine-tuning or -creating LORAs for it.) - -It's also just valuable for anybody building around AI that can't depend on -[OpenAI's monopoly](/openai-not-so-open/) for what they're building (enterprises with -strict security requirements, foreign governments, or just people that want to have control over their infrastructure). - -## Benchmark Comparison - -| Model | Params | Hella-Swag | PIQA | Wino-Grande | Lambada | ARC-e | ARC-c | OpenBookQA | BoolQ | SIQA | -|--------------|--------|------------|-------|-------------|---------|-------|-------|------------|-------|------| -| Cerebras-GPT | 13B | 51.3 | 76.6 | 64.6 | 69.6 | 71.4 | 36.7 | 28.6 | - | - | -| GPT-3 (175B) | 175B | 78.9 | 81.0 | 70.2 | 75.0 | 68.8 | 51.4 | 57.6 | 60.5 | 81.0 | -| GPT-4 (?B) | ? | 95.3 | - | 87.3 | - | - | 96.3 | - | - | - | -| LLaMA (13B) | 13B | 79.2 | 80.1 | 73.0 | - | 74.8 | 52.7 | 56.4 | 78.1 | 50.4 | -| LLaMA (60B) | 60B | 84.2 | 82.8 | 77.0 | - | 78.9 | 56.0 | 60.2 | 76.5 | 52.3 | -| GPT-J (6B) | 6B | 66.1 | 76.5 | 65.3 | 69.7 | - | - | - | - | - | -| GPT-NeoX-20B | 20B | - | 77.9 | ~67.0 | 72.0 | ~72.0 | ~39.0 | ~31.0 | - | - | -
If you'd like to add data for another model, you can edit - this table on - GitHub here. -
-
-It's a bit difficult to compare apples-to-apples between all of these different models, but I did my best to squeeze -the data together in a way that made it easier to understand. - -As you can see from looking at this table: Cerebras-GPT is roughly the same as GPT-J and GPT NeoX, and sometimes even -worse, for tasks like OpenBookQA and ARC-c ("complex"). From looking at what these tests actually involve, it seems -that both of those tasks rely on some amount of "common sense" knowledge to get right (determing the correct answer -requires using knowledge that isn't included in the question anywhere). - -![open your wallet discord message](chat-gpt-bad-math.png) -
But even the mighty ChatGPT often can't do simple math
- -
- -...and then there is GPT-4 crushing everything else in this table! - -## Is Cerebras-GPT worth using? - -Based on the data above it's not really better than any existing OSS models so it's hard to say if it's a -better choice than GPT-J, GPT NeoX, or other AI models for any tasks. Perhaps with some fine-tuning the model may be able to perform -better than either of those, but I'll let somebody more qualified than me answer that question instead! - -## Want to learn more? - -Come [join our Discord](https://discord.gg/2EbHdAR5w7) and share your thoughts with us. We've been building a community -of AI hackers to help keep up with the *insane* pace of development happening right now in the AI world, and we'd -love to have you join us! - -### Updates - -2022-03-29 @ 2pm PST: Fixed some typos and rephrased some text. diff --git a/docs/content/blog/embeddings-database-news-april-2023/3databases.png b/docs/content/blog/embeddings-database-news-april-2023/3databases.png deleted file mode 100644 index 98c6484e..00000000 Binary files a/docs/content/blog/embeddings-database-news-april-2023/3databases.png and /dev/null differ diff --git a/docs/content/blog/embeddings-database-news-april-2023/Gartner_Hype_Cycle.svg b/docs/content/blog/embeddings-database-news-april-2023/Gartner_Hype_Cycle.svg deleted file mode 100644 index aa863608..00000000 --- a/docs/content/blog/embeddings-database-news-april-2023/Gartner_Hype_Cycle.svg +++ /dev/null @@ -1,3030 +0,0 @@ - - - - - - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - eJzsveuSJbeRJvgE5x1yf8hMnB1lBwJ37diaZdZFoxZ1MVHq6TZZG61UTEo1qqziFout5T79+ucX -BAKBzDyZxd6l2YinW5XHDwLucDgcfgPiJ//b77742dVX7/988zN/uVycfvKTZx9uXn18/+HnFwy9 -+OXbt999+/EDQD/9/WcXbr1cqNHVL8uX2vBfbj58++b9u5/zT5eOfnyJp3/6xT9/8ceLLz7/5Ref -9X/Tz3948/HtDTX4xasPH9/dfPjv339z8+z7129vLr/9j798ZgRQj89ffbxBr/+05n9a8kX8uSsX -v/s1Nbh+/927r968+8v1+/+bfnee/j9fpLxehAL0//3N72++HdtcehcDGtIfJVBrd1lzSvTIcplL -TfTc8/evv7u9effxdx/ev7759ttn79++//Dtzy+eff/q3cWvX/2Ffnl18W83b9++//vF9dtXr/92 -Ii7EL1++eXtDA7599fGigDVXv3Trl9ffvXn71W++u/3zDXEirksE3H/JXf7xW+qLusXfAOcvf3lL -kC9uPn4kegkh+Pvs1//2q2fE9/e33I6GoJ+f/un3N395wxNCLPr3z7RtT7M0Xujz01+8ff/nV28v -nt/cfHPxxc0rovu7Gzzyv18sl4UauK7RLz7c3LyTH+Xp7afffffhhvmgzw5P8s/CGWvgdg1+f/NV -e/Iy7n764v/67tW3f/1M+POHm9tv3tKs86T5mqitXyL+d/tbWxLXZWpXyN0alvUi53qZYy0XaVmk -1TajN//x5ubvP7/4zft3NzJtVx8+fvHm/6F5yHW9SG4V6O+/e3vz4Y/v3nykaWBQlTn79fuvbt4q -iJ99+fYVT1Xjhf6vNPjDqw9/uflIUvj+7XcfeW2URX8iofj81fc3ECwnCH77zc27P7z/F6bvZy6Q -JEd36VIiPpGsXriwpovi0oUrjCZfZK/4hMlOOkY36MR6z8Tw35Fc/fbDm7+8efdzpS1/+YsPb77a -ZI0WTZH/YfIhFO3/q/2/0ElD/vjx5p3STUL+7NedzC6Xv/6CML5499Wz97fg+bdYqCSq70g0377/ -i/zW/uZf6PHvvhHq+fuXND2/+/DmHfo8/YZ/KV/+7u139NMvPrz/7ptfvvv6/emnopZ+9+rjX0mc -b9599S3pF4HJ1wt5gqCfv/mPG4FdvnrzzWf39veHD69eE9qL3/75f968/kgPK2D764vv3ny8ebij -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 - - - TAhSOgus+gUpQ57oqFniERujv0QkAm2qaawM3I8yTVHSupmQ3DdZv416bGiiF5lEms/i9FqnkAkC -TRsYaLRmZ0C2U0wV1jqBwpuBYLU0vXFvMs2bOsvdtAUTTqcQKsUaXA66VmsnqiWPaDYsYieJe6Sl -lb6ChNYUFWQE/EWDppQ5zYQBkELnyASWTECLTquArJI2E6G1HOZaf/TejoYP71OkY1qpIl2I4Nvo -50DSBRZDG7fSw9FbWo6FWR9Kyfl+91PZVJuMnJ9ucPIxnaJduNUx6g9wMhH1wIKFBsAP4fXUqMKu -TihS+2mebaPtGsukRJhPUQpRFhRgkZLO/E02mM1/++nsXPIkk8G2K9DujqIyCWAHjTwtCeC7qqym -P9WDPO68JBJ+8Yfbd3/qY9z3YU5ORMw+zfwPr/7wLf2LW+SfPv+Pf/3d1XUf5tVv7I/90X7zn78/ -+8Pt20v648ozP/oPn7z+9d9vrt/1fzrpj3V39eWH+8v39Oz9te/OH1xx8fXV9du7S343//o3//bu -fvwb/c/9999e0r/92i3Lr/rU/Pu7q4suxgzNl/7t/PqDXPvd1dv7r3/4YnLm6Nr+KHr1/9znN/r6 -8uqvX99v/Uq4/Mnfafs3+n7rl/n+Gd7j9sv/c3lx/9nth3dv+6N9dvv3bV/rK943/dL791u/4Mpv -nvxVP/23Lz69/vbr8y/ctu949XbSUY+8E12zx6vvI99zepG/4//+8OPui5q8/3D35Yfry3cXl9tO -hfx0y9nAfZ76w3ZLe9v3+fL8/eXv7i7/60OfhO2VzINfPfkb+m1f792Hmz9e3J//7XJ7/TL/5Mlf -7N3t5/dX9xcfOY7H+73nq/9ydb3DC6785snfkLbctm93d/n+w/X25zgu30YDPfLo7gcefbMWnw6z -y7/M6uSHH/YH5v2JP8jVu20/x+23l3fn97d3W3+Q8YO9XmZX7z6iT+aTmq598rf5/PbD3cXlv96d -f/v11cX2r7XDWz3jrnlze/Pt7fur+202zc/xAGxPfvTev/nt5VevPzl6e/v3Rkdv7+jt/dzeXjx6 -exte5MC8va/uzrthf/2H26v3L8zf2zoYcZju3ta77+juHd29o7t3dPeO7t7R3XvB7l58ce7eDm90 -KO7eiX8pDl/3gj67/Nvl9edfn7+9/e4FZL52+TQv1huSQ4bd25/tiHniV/ry+sNHrJWfwNjcV9/n -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 -ZeO2jw/P+Ya5yNG4BO+SB/T8YscNHOpVLyUDxuOt45NzxrG2YFwxm33oAoVPmya9quzxK9b2ael2 -I1q9v1Hx/a3j5yfTWl+gsNX6AmWbWl+gdFvrVd/ok4PTWzt75y+oUubo+MnhwXmrKRU7GS/bp+uP -pUcnY7+YHWTlHDkZNw66npxb5GD+dIvil84tRGadcfs5OX9OUrlx6zs4X9eeI21bp0sXx4VyJ8+2 -dubH83N6iQrNT+lmUO8FK28QR3J/qKXSql1kvNJMrGJctVWljhd3Yr4zryr5dLHkmnK6x54uXXtX -lxN73Pkl93bPWZD49rZ92Bgd2fBOcLr3UWpG99sLXXVXX674jEMJ3LYOnp5TVyp28nz3aDwzHJxz -caJix+N8Pz6ZH3I+uHNL0kXJrGnT9v3u8DHhUJrWudbGfnBYrZGz3QNJ83uyW3Uttb5iZKegE3qn -gFHImoHfrt0meSuhHn3/4cbHH+fhgzltb6T1jXeHD573793/67vdzi8f/pb/+m756Bd/qz+EOznk -+E3c/+Y3N/967zB9Gbqd5rGPvp1vHB+/+87j9988+vR3v/19OXk3f/SbL2/dO/ym/+Lu8Z++6a69 -/sE3975+dO+d99/Zdr9+Px0Mr23c+EN/En7xhzfe++Lx7e72G5/4/jd/eOvt8N6j0zsfPCkfPv/o -55+9s/XBk+7rd+1X/8Y7n8Vnr90IH73z2s3bv/rstTfeff6b116fu9+/9uazvz289joJ7t0Km2X8 -wztHr+sLnp2Gd49u/OZorPLv9rXKW5/d0T/99XfvcVtu3T4Z/j7+6eHRUpGxfSf53sEjf718/Ytr -r4/95LgF92uljv908jSPb85nb7z74Wu/7E/8ySdQmz8MX7798yfjXz/cG5/9+gO0efPk+Pjtk2+O -//z2g/vd7f7hda4rv3R8i7z2Q/en/qtnm2+ufOmfn975aO1Lo//b7dfWvfTx8V9uv/Hl+Jbpa/Wl -n9658fPPj/Y2V7305Od/iXfWvfSjd/+QDr5YeCm9hV/b3/jqjbe373+y6qXHZ3996/qvX//Na39d -9dLuXvfeb9a8NP78F/ntJ4Vn8oq29l//qbv36M4fVrb0Z/eO3nr9/u4nn6186Yc/P9xceKl+L/za -X/1us/9kXQd/fvynbf87eumNpe798GdfhteH01+Nj/WHS2P61i/G0dfXPvjVrxZGtX+UPtzjl44f -0uO705f++fjPXzz+bM1L3/p2+Hzn6e360muvN6/9y81Hn659abr95OGvVr/0N6/dOD55642T1S99 -kP4yvkXn71JbT3717tduzUuHZzd+dWf+4eqX9jf+/MZv3t5vWjq+pR3VreHnf49nn6x6aXfv93+4 -s+al8eevD3l4b81Lv/52nMn3Dh89WtnWn334i3d+uTl/9vnKl374h/zFuu796Jc3X7v1TF5690/P -741zrO3gn904+dVv3+QO/vXSSz/6dn/4+6+PuvGl6WjxpZsff/pnfenXN68vtPTa62m4deub+tpJ -W7+5023u/yGtfunHPzvLm19v55Uvvb83/6i+dByX6Wt/f+vvR2+ueekf3+gebv79bPVLfx/+snnv -3nuvrXrpOC6PPt79eG1bH34SH/113Us/6L7o/lJWv3Tz5s8f7Xz767f5pddeX2zrF39552TtS7+4 -Pv/2aN1LP+m+vPnenVUvvfb6+Nq7b3z523y8sbKDv3nz0V/WvvRvP3u0eWfNS/8Uuz9v/fUNfinN -sYW2fvr57vO3Xv/0zZUv/ctfvvp27UsP5+9df7rqpddep9d+0v317uYHqzv43ufuZ1+d/uHjVS89 -Pv705s/1pY/DjYWP5o3y67uBX3rtdbf1s9MPp6vSW8dnYaOjl7659NL771z/+1/ufvXb8aXvHC+8 -9I23Dr9+U1/6vPy6vnRck+m1rz/5489kK/d3vnYfTxeIz7q7n/7xQ3rpzeU99dObvzgIbz8YX7px -uti9d+/+7Ra/lMbl+t03F5bCX+28oatS+MVbG7+fLoXzN97Jn/6RXnp7+aXx9Z+98/VHH40v/d1r -9aXjW/gk5e/cfyZtfe+tP9xa6OC/Hb5z97m89L3PNzen3TsO7N+eHfKeOh6hHmy0v/rT/df8WweP -9XSx/PvZL18LO/tHq3/tb4wfzbvDfN2vx+Nk+GS3/jpdLfuvH3R3f3P/rvy+dBb45p1u87fB86/L -C/w373Wbn73Xr/qVZ/I373ebO7+P657e6P4/bd+5HTXSrX0FvgcbMNg4qapUCmQwNslDjsOAAcMw -A2OCgXXO+fNd+1fP3hW21FK32t2sd72z8NNSqeJOtcMfS8+qvl93snsHtx72/bqfPdr+/NPP2Ojv -L9ezR09PLvX9upk9vvLHSt+vNnuy9H0z/driL0vZ0a+l0v8+SqluZk+fLF3kX9vHLH95O3v6ceNy -1680Yy/3smen6qt9b9/NnhU7232/3s/+PFm+6vv1U/bq+Z9nw4yN/P5Xmb369Pd636919vrJedP3 -65Vsv9iv06+tPbZ/pDbP3rE9b79dUfUb/UfPr+9OqmunX+/2zti7R+rOgxO3e94++Kruftb/9vz6 -flW9+HTndPev9vWXx+cv/Pyzb8b0j/tLZ1Zv36Vf9ZlLKzebv15d2rx55RL/2qZ8+ud/Sxfy25/S -r27GtjfOPpQa2Mr7x2vXvv64y2SP9bN8/SGo0jW37z5c61I9vXJ5WS1f2fp5Znv38eXyBemS1//c -ubC5ADTb3b62ebC9fW3rzprU394s/4f+GP6e+PJJc4ZUQaJy0HNeJsq39Uf15Uy2dfH5L5yMl444 -/n0hrf4fJ7f+vfhu1Z2iEzs/qgfn7jcI7tEJfebi/Q1mI9BzBJWXH7X/QM/52voo1oU+m794Tp/t -/OiJ3fdbvR8lPafno060dXrOWymPybHmL96M+eiNjVp89P3p0yfTR0n6jx819FHSkvwEQ/o/Hz56 -47/GBJ9YkR/NH51KH3X6oNrs/ShJ/0IeM62xQvr/q/uj+YuXvR9103uoWx9dWJYT7KT/3o9C+n/f -99EP/R+t7j543pDHmmMlmaLno9VNyBT7fR990FrTheWtf0+eW/cdoH/5nX5uZPW7nzs/4DmW+vYG -tZiv3ufnmFrovaJpEGoc3N1fTtM+83I7WkjePrxGMhwTlzC36cRfUetP1Hr8z0uprLvZxqR+k6fp -zdoXNPAw9uEBdvL901/Rve1kH0sWouy2XV6m/2BBn0kh2H/gXuzNdeh+u/RIy/a0sHypvvHkvgNO -L/v/vH0uJGZvLgsH1z388rraefXjhhhu7LKTnnaW/X/W//jKcxN0sUCO0wjcHtxuTKCc+Wtb/3y4 -voz/uA15Obs1vkv0CPOXnk6t76zzf/x8qi5L4ANM+a/xU76wnGbej5D06s7x3V+aPD76z8PW+jU0 -PlpBJyf/0bWCcv32f50NnWedpmt8X+MSm2CHmbyCPeM7vzZgfy40JmtMY+uzbPYwFt7uN158m8/O -yv5WJ16kecfZP/7Mx+9NODkLAyYrm2GyvjUtV282v7aIj/vy+rfGB+K+m5L0QOZ3w7ghmhDGfkF6 -Vk/TvuyeuxfrP8f3xvMX+o+fOzKcdszdzl9Pl/rIdvepZMWm41Q6VN3Zm3FoGydbQ4vr0pjq7MP9 -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 -vbKHcHXW9Tuu9+B0df3GC4asJc1e12+cYPjuB3x651HX79LYqn6kWcyhrt/4GxuSxudQ12/shRmi -a+dS1+/S2Kp+zbuk49f167N09mVuOV5dv/4uwS2/t9rv9EVfP4zcMxLW8lNqdpk5w4QkptnfT85t -tU27Dmsf5qaPIjXb53jfClts7KdvLRuWW5z720kfbK7Lm7UvchIoTCCGQL098WXbz2dozL+2/2H7 -6OjSw3+vbP28cPuqqp490mcunbhOjyCaCrE8j++/PVpa/mvt9BJMQUtnXt/8Z2nz4qera+cvfa/X -Lpx/+GLt8b+fv2Y7O5+2sp1PG+ey3TsPrme7X//dy248qDeyvVt397O9w78/Zvf++/BP9ugPU2eP -b/37NHvy45+/s6fZT5zKp68v/sqebTxdyf5cf7KavXp34l72+vXzv7P9h+Zn9sY8P5O9+WPlwdHR -0c7W0Y+/vp4/+qW+PD36tV+t/DhTnoZA8PAnIjvPbPz7/ua9m3frv688ffXnx6Wzp5ef3z9Vnf/P -SX3L9x/duH36n8/LJ07UW3dXTv53sHwrr0/fe/fp+fULZ0Mo4NKv9W/53Te0JBz2dnX38ePl7NSH -9w67/7WTgvh12XPU0vXixw8ElO4tbVx7kYsSkL6O4LlrPZN1LnfT8et79ubC69Wjo7sba70jxVfy -1edrF8yZK9nutTvXst2/D25nN+7dPfxx8nXxDrGrS/57l77vrF2s7r7Mtnb3lxCT+CDbeVruU5m/ -bOveh/XWaUrHJ8S9yo22cpjsrWJoifvEmcBqnF5avXA3X9rYOvMUEbfXl05dr7aW1levXAF2e2nt -wYm7C8sIvL2Lny4vbVw175fW/3h+c+ns95NurG+/V35P7/7CfbteA908pc5uq/Pb/77dUhjV/pXz -e0tHtDi7O/qPyv3r0Te1/vHjJfevp9+9nT/b+nxik942p+rDn1m2srlFf4Iorvh/ffpw1r1zc5XL -df595vsa/lzzf55b2cCfG/7Pvdw34KjAz52Dz99rfMXeyq4eft37cfXOs2evHBX4WfuOXipX0w9y -BJcurokf3p7avhh+2N5IP+hrfz65TD/gK5dubaWfnOz18Wp4556KP7x2C7b8X7Z14+LZhMkv39he -Fz+IL9+4tUm8cv2sY2V/rbl2Tq7qVz8+/XI/PVT0p7n8ZMn9ef9KanufRESH7a7jkbNOxv5wjagJ -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 - - - uHltJ9t8PEoAIoXxBOCMN19frc6QETUM4/5Xfxaff2YLN13gkskaMTAn7p+ORusf3vznjj3put7m -avNVWkunBlzBn+fWAr+4uR5X4y/3xlOs0M1NurtGHNUmcTdIfq83EcV0c6vnxtNRhrD5Tou94c7s -CkKiv0N8fxPPMbNmKEHxuN4h/kLoE9JS7mxKKvDx4lbgg3tZZt/dudxBDwq3+T7eY6Jw6cVXopGr -nOWv4RE10XY5wWYFMtpls0oWq1a+zrnarJLFqnnPN1+bVbJYiSjuudusksWKb61+j80qKb5eG/8t -NqtksYq2y99gs0oWq3ZO2HnarFKv3R77bTartAyei/0Wm1VqgDLQ/SabVaPK1G+zWQ23w85is0rb -UFri5m2zShYrGstvslmtRYuVt/X/FpvVWrRYNWdsnjYrqSWQ5fo32aySlkA31r/JZpW0BJb5f4/N -KmkJDbvSnG1WDRvZb7NZJS2BZuw32ayS/LOw/PtsVklLcNL4b7NZJS0hRKf8DptVslhRHtXfZLNa -ixYrOpW/yWaVLFb+Lvm32KySxYp2cpfN6vzCMkxT+ztf3kuz1MLyskMeffj56xsesPvXPnz898ve -2//7cLSgFvl/mfsf/lvWi0pXi9pa94cFuvduYYWeXVSri3uOvO1vXT36ef3fg5//fv3y9uj/Fs8B -ev7H3pNb1xfPLfKz++7Z84srrjfZvnva/bQKW9i+6+H+QrZ41f3/+f+4/zxcyPzn7yxkvhvup/9z -f9x2//i0aBf/ZzFf/GPx5ats8T3eerigdLGpK60XlVGbRmdm8XBB5e6fVa0Xtao2i8zYRWX1plZ5 -vmiU2swLnS+qKtvM60Itmtpu1ibTiwcL2v1YFIVdzKt6M9M2X9Qm3yyMqRZNWW3qXJWLOrebtlYO -cR+p0YB7zxabdV6YRZPlm7mp7KIuqs2yqAr3j9K1lDmkrDfrLKsXta43Te0+crBgssI9bt2QTb1Z -qtI1autNVVpMuftwpQv3Yb2ZVa4nZb5ZF0WF1yqzWRmzqGuzmeuqdEMw7iPautFVGMBi7vpWVeik -Nptu9Wr3llXaNV27p10HKlvXi4V7ujZubY2uNlWWL7pXN8vcTQUeyYyby4OFRwu/Fs7+cnN9byHz -++Kz2yf/s6CNa69W9aIbwaYbZuEmXhvXEVspwnLjuo8JVLWbbyDWFkCsm9JCJ8RNoCk388z1TTzl -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 - - - diff --git a/docs/content/blog/embeddings-database-news-april-2023/index.md b/docs/content/blog/embeddings-database-news-april-2023/index.md deleted file mode 100644 index caf2b820..00000000 --- a/docs/content/blog/embeddings-database-news-april-2023/index.md +++ /dev/null @@ -1,394 +0,0 @@ ---- -title: "Riding the AI Wave with Vector Databases: How they work (and why VCs love them)" -description: "Discover how Vector Databases enhance AI models like ChatGPT, keeping them up-to-date and relevant in a rapidly evolving world. Dive into the hype of the Vector Database landscape, how they work, and its impact on machine learning." -slug: riding-the-ai-wave-with-vector-databases -date: 2023-04-14T03:04:00.000Z -keywords: [gpt, embeddings, ai, vector-databases] -tags: [gpt, ai, open-source, embeddings, vector-databases] -contributors: [free] -images: [laptop11-hi.png] ---- - - - -## Exploring the World of Vector Databases in 2023 - -In recent times, Vector Databases have been gaining popularity at an alarming rate due to their synergies with AI models -like ChatGPT. Large Language Models (LLMs) like ChatGPT were trained on data that cut off in late 2021 which means they're -stuck in the past. They're operating on a snapshot of the world that's roughly 2 years out of date! - -That's still fine for many use cases, but what if you want to ask a question about something *current* like the weather -or some latest news? You're stuck (or they'll pretend to know and -[hallucinate a fake answer](https://en.wikipedia.org/wiki/Hallucination_(artificial_intelligence)) for you). - -Fortunately there is a workaround: You can BYOD ("Bring Your Own Data") to provide these models -with the specific information needed to answer your questions. - -But now you have a new problem: How do you figure out what data to pass in when your dataset is big? - -That's where Vector Databases come in and what we'll be examining in this post. But before we go into the technical -details later, let's divert our attention to take a look at how recent events happening in the Vector Database space -are fueling their development and rapid growth. - -### Riding the AI Wave - -![Surfboard floating in the AI ocean](wave1-hi-crop.png) - -The Venture Capital (VC) firms of the world have been busy throwing money at several Vector Database companies with -Weaviate, a company built around [an Open SourcePage product](https://github.com/weaviate/weaviate), closing a -[$16 million Series A round](https://www.prnewswire.com/news-releases/semi-technologies-16m-series-a-round-highlights-a-new-wave-of-ai-first-database-tech-301486766.html) -last month. - -That may sound like a lot of dough, but there two other Vector Database startups that raised even bigger rounds with -Chroma, a YC-backed [Open SourcePage product](https://github.com/chroma-core/chroma), raising -$18 million with *just* 1.2k GitHub stars and Pinecone, a proprietary Cloud-Only startup, -[raising a $28 million](https://techcrunch.com/2022/03/29/pinecone-announces-28m-series-a-for-purpose-built-database-aimed-at-data-scientists/) -at an almost-unicorn valuation of $700 million. - -With that much cash being splashed around it's going to be interesting to see how these companies develop. How will they -plan to differentiate themselves as more competition pops up? How long until we see big cloud companies like Amazon and -Google entering this market too? Are these companies simply riding on the coattails of the success of giants like -OpenAI, or is this the beginning of a new era of AI-first database technology? - -I won't be attempting to answer those questions in this post, but they're helpful context to keep in mind as you dive -into the technical details of how Vector Databases work, where they fit into the current database landscape, and how -they're being applied to augment AI models like ChatGPT. - -### What is a Vector Database? - -A Vector Database stores a collection of "Vectors" which, in programming terms, are just -"one-dimensional arrays of numbers". Vectors are ubiquitous and used all the time in Machine Learning contexts, in any -code that touches with 3D graphics, and a number of other places. (You can skip ahead if you've used vectors in any -language before.) - -They're really just arrays of numbers though and the only real difference with a vanilla array is that the term -"vector" implies tree things: -- The data is an array of *floating point numbers* (as opposed to integers, strings, etc.) -- They're usually referred to by their *dimension* (how many numbers are in the array) - - For example, a `vector3` is a 3-element array of floating point numbers. A `vector4` is (you guessed it!) a 4-element - array of floating point numbers. Simple! -- There are special functions to operate on them like `normalize`, `dot`, `cross`, etc. - - These are just helpers though, and you can always just write your own functions to do the same thing. - -The term "vector" itself comes from linear algebra, which is a branch of mathematics that deals primarily with matrices, -tensors, and other array-like structures, but at the end of the day, they're just fancy float arrays! - -That does beg the question though: If they're just float arrays, and since databases can already store arrays, do we -*really* need a whole new database just for them? - ------ - -![Hype Cycle](Gartner_Hype_Cycle.svg) - -*Are VCs creating another bubble like they did with [NoSQL databases](https://stackoverflow.blog/2021/01/14/have-the-tables-turned-on-nosql/)?* - ------ - -### Why are Vector Databases necessary? - -Fortunately, the answer is simple: **Performance**. - -Vector Databases are optimized for storing and performing operations on large amounts of vector data, often processing -hundreds of millions of vectors per query, and doing it significantly faster than traditional databases are able to. - -Here are some of the features that Vector Databases provide: -- Perform complex mathematical operations to filter and locate "nearby" vectors using clustering techniques like - "Cosine Similarity" (which I'll explain later) -- Provide [specialized Vector indexes](https://weaviate.io/developers/weaviate/more-resources/performance) to make retrieval - of data significantly faster and deterministic -- Store vectors in a way that makes them more compact, like by [compressing and quantizing them](https://weaviate.io/blog/ann-algorithms-hnsw-pq), - to keep as much data in memory as possible (further reducing load + query latency) -- Sharding data across multiple machines to handle large amounts of data (which many databases can do, but - SQL databases in particular take more effort to scale out) - -### Relational vs Document vs Vector Databases - ------ - -![Logos of the 3 top databases in each category](3databases.png) - ------ - -#### Relational Databases (SQL) - -Examples include: -PostgreSQL, MySQL, and MariaDB. - -They use rows and columns to store data, similar to an Excel spreadsheet, and they support Vectors with extensions like -[pgvector](https://github.com/pgvector/pgvector). They're not as trivially scalable as a dedicated Vector Database, but -they're much easier to deploy and manage due to their popularity with services like AWS RDS letting you spin up a -production box in a few minutes. - -#### Document Databases (often "NoSQL") - -MongoDB and CouchDB are the quintessential examples here, but technically Redis also sits in this space. - -They tend to store data in JSON-like structures, called "documents", that can are easy to work with, but they aren't -being used in the AI world very much today (most likely because they're not as popular as SQL databases today). The -exception is Redis which does have -[Vector support](https://redis.io/docs/stack/search/reference/vectors/) and is quite popular for in-memory use cases. - -#### Vector Databases - -These databases are very "niche" in the problem they solve. They are not general databases that you can use to build the -back-end of your application. They only provide functionality to quickly locate multiple documents that contain similar -text (this is done via a process known as "clustering" which we'll discuss later). - -That means that most applications will use a combination of a SQL database alongside a Vector database dedicated to -provide document search and feed data into AI Models like OpenAI's ChatGPT and other Large Language Models (LLMs). -(This pattern is similar to other databases like [ElasticSearch](https://github.com/elastic/elasticsearch) that provide -important functionality for specific use cases.) - -This is by no means an exhaustive list, but here are the most popular ones that I've seen people using: - -- [Weaviate](https://github.com/weaviate/weaviate) (Open SourcePage) -- [Milvus](https://github.com/milvus-io/milvus) (Open SourcePage) -- [FAISS](https://www.pinecone.io/learn/faiss/) (Open SourcePage) -- [Pinecone](https://www.pinecone.io/) (Cloud Only) -- [Chroma](https://github.com/chroma-core/chroma) (Open SourcePage) -- [Qdrant](https://qdrant.tech/) (Open SourcePage) - -For an up-to-date list of Vector Databases... Well, there isn't one that I could find yet, so check back and I'll add -an Awesome List here to bookmark. - -### How do Vector Databases work with AI? - -Language is complicated and our brains are *amazing*. In fact, we perform all sorts of complex operations -automatically, without even thinking, and our brains are able to seamlessly understand the meaning behind certain words -and phrases that we hear. - -We're so good at it that, until quite recently, computers have struggled to replicate even a fraction of this ability of -ours. LLMs like GPT-3/ChatGPT are breakthrough models primarily because they excel at *processing input* and -*generating* new, useful output (which feels very magical when it gets it right). - -The problem is that these models have limited context. You can only fit in a few thousands words into them at a time. -If you need to squeeze in more, tough luck! You've either got to fine-tune the model by training it on the data (which -you can't do with ChatGPT, only the older GPT-3 model) or, what is usually the better option, you need to extract -*only the relevant text* for your specific prompt. - -To give an example: If you want to have an answer to the question "What's the best way to grill a steak?" you can't just -feed ChatGPT an entire cookbook all at once. These models can only understand 3000-6000 words at once, so you've got to -be clever about which content you feed it. - -Of course, a naive approach would be to just run a regex for "steak" and include those pages, but you'll miss out on all -the pages that talk about "beef", "red meat", "burgers", and many other similarly related concepts. It's easy as a human -reading through the index to relate these items, but it's very difficult to write a program to exhaustively map every -related concept (without a significant time investment). - -And that's where embeddings come in. They're a clever way to slice up the cookbook into smaller, more manageable chunks -that can be fed into the limited context of a language model like ChatGPT. - -### What is an Embedding? - -A "Text Embeddings", or an "embedding" for short, is just an AI-specific term for "a bunch of vectors", but where those -vectors represent the *semantic meaning* behind how a word is being used *in a specific context*. - -That's a lot to unpack, so let me explain it in pieces. - -(If you're already familiar with embeddings, feel free to skip ahead. And if you'd like a more rigorous definition, check -out this [blog post](https://huggingface.co/blog/getting-started-with-embeddings).) - ------ - -
-{{Visual image showing data clustering}} -
- -*A visual representation of how embeddings are used to cluster data* - ------ - -Going back to our analogy: Beef, steak, and burger all have a similar "Semantic Meaning" to each other in the context of -a recipe. They're technically different words, but they all refer to the same thing: A piece of meat that you can cook -and eat that comes from a cow. - -Computers are dumb though -- almost like they're just rocks we tricked into doing math -- and some really smart people at Google -figured out how to build an AI model that could understand the association between different words by feeding it a large -corpus of text. - -In 2013 those smart Googlers published their model under the name "[Word2Vec](https://en.wikipedia.org/wiki/Word2vec)". It -was a huge breakthrough at the time (so much so that -[Google patented it](https://worldwide.espacenet.com/patent/search/family/053054725/publication/US9037464B1?q=pn%3DUS9037464)) -and it was one of the first big "breakthroughs" that took AI from "cool, but not useful" to "kinda maybe useful". - -But "kinda maybe useful" still wasn't good enough for Google and they kept working on the problem until they published -their next big paper called "[Attention Is All You Need](https://arxiv.org/abs/1706.03762)", which became better known -as laying the foundation for the [Transformer Models](https://en.wikipedia.org/wiki/Transformer_(machine_learning_model)) -that have since taken over the NLP scene. - -### What is a Transformer? - -A Transformer is a type of neural network that's designed to process sequential data, usually text but not always, and -figure out which parts of it are the most important (they're modeled after how human "attention" works). - ------ - -![SourcePage: https://news.tfw2005.com/wp-content/uploads/sites/10/2014/12/3A-Transformers-Bumblebee-010_1417704751.jpg](transformer-crop-full-sm.jpg) - -*NLP Goes Mainstream With Transformers* - ------ - -They're important to be aware of because they're the backbone of many of the most popular NLP models today, including -generative models like GPT-3 and ChatGPT, as well as the modern Embeddings models that replace Word2Vec -(models such as [BERT](https://en.wikipedia.org/wiki/BERT_(language_model)) (2018) and -[T5](https://huggingface.co/docs/transformers/model_doc/t5) (2020)). - -(If you've ever wondered what the "T" in GPT-3 stands for... it's "Transformer". The full name being -"Generative Pre-trained Transformer"!) - -Both GPT and BERT are Transformers models that are good at understanding text, but they serve very different functions. -While GPT is good at understanding and generating text, BERT is good at understanding *the meaning behind the text* and -generating *embeddings* to represent that meaning. -(Technically this is just [one of many application of BERT](https://huggingface.co/blog/bert-101#1-what-is-bert-used-for), -but it's the one we'll focus on for this blog post.) - -They're siblings, in a sense, and, when combined, they make a powerful duo! - -### How to use BERT to generate Embeddings - -To get started, you'll want to setup a Python environment and install the `sentence-transformers` library. Feel free to -follow along here in your own environment, but I'll paste the outputs here for you to view also. (This is -basically just a modified version of the tutorial from -[sentence-transformers](https://www.sbert.net/examples/applications/computing-embeddings/README.html?highlight=embedding).) - -#### Setup Python Environment -```shell -python -m pip install virtualenv -virtualenv venv -source venv/bin/activate -python -m pip install --upgrade pip -``` - -#### Setup `sentence-transformers` -```shell -python -m pip install sentence-transformers -``` - -Then you can start using BERT to generate embeddings for your text! - -#### Running Embeddings Generator Code - -```python -from sentence_transformers import SentenceTransformer -model = SentenceTransformer('all-MiniLM-L6-v2') - -# The sentences that we wish to generate embeddings for -sentences = ['Here’s a cheffy way to cook steak that really makes the most of a good cut!', - 'These burger patties are made with ground beef and an easy bread crumb mixture.', - 'You can use any cut of beef for this sausage recipe, but a rib-eye is the best.'] - -# Generate the embeddings for our sentences -embeddings = model.encode(sentences) - -# Print out the embeddings/vectors -for sentence, embedding in zip(sentences, embeddings): - print("Sentence:", sentence) - print("Embedding:", embedding) - print("") -``` - -Notice that I chose specific sentences without overlapping words, but with similar semantic meanings. (Steak, burgers, and beef) - -The output of this program looks like this (each array contains 768 values): -```shell -$ python 1_print-embeddings.py -Sentence: Here’s a cheffy way to cook steak that really makes the most of a good cut! -Embedding: [-5.09411469e-02 -5.33863381e-02 -3.47178197e-03 -1.47095160e-03, ...] - -Sentence: These burger patties are made with ground beef and an easy bread crumb mixture. -Embedding: [-2.56301872e-02 -9.13281962e-02 2.03740299e-02 -2.06439048e-02, ...] - -Sentence: You can use any cut of beef for this recipe, but a rib-eye is the best. -Embedding: [ 1.14344181e-02 -3.60496975e-02 -2.92477775e-02 -2.06532031e-02, ...] -``` - -As you can see, this data is totally meaningless to a human! It's really only useful when you feed into an algorithm like -"Cosine Similarity" to measure the "distance" between both sentences. In this case, the distance between these -sentences should be very small (closer to 1 than 0). - -But the proof is in the [pudding](https://www.mentalfloss.com/article/635112/proof-is-in-the-pudding-origin), so let's -try it out! - -#### Running Cosine Similarity Code - -Let's tweak our example above to add in a question. - -```python -from sentence_transformers import SentenceTransformer, util -model = SentenceTransformer('all-MiniLM-L6-v2') - -# The sentences that we wish to generate embeddings for -sentences = ['Here’s a cheffy way to cook steak that really makes the most of a good cut!', - 'These burger patties are made with ground beef and an easy bread crumb mixture.', - 'You can use any cut of beef for this sausage recipe, but a rib-eye is the best.'] - -# The question we want to ask -question = 'What is the best cut of beef for sausage?' - -# Generate the embeddings for our sentences (note that we added `convert_to_tensor=True`) -sentence_embeddings = model.encode(sentences, convert_to_tensor=True) -question_embeddings = model.encode(question, convert_to_tensor=True) - -# Compute cosine-similarities -cosine_scores = util.cos_sim(question_embeddings, sentence_embeddings) - -print("Question: " + question) - -# Output the pairs with their score -for i in range(len(sentence_embeddings)): - print("\t Score: {:.4f}\t \"{}\"".format(cosine_scores[0][i], sentences[i])) -``` - -The output should look like: - -```shell -$ python 2_cosine-distance.py -Question: What is the best cut of beef for sausage? - Score: 0.541 "Here’s a cheffy way to cook steak that really makes the most of a good cut!" - Score: 0.365 "These burger patties are made with ground beef and an easy bread crumb mixture." - Score: 0.806 "You can use any cut of beef for this sausage recipe, but a rib-eye is the best." -``` - -As you can see, the sentence that is most similar to the question is the last one, which is exactly what we'd expect! - -### Using a Vector Database instead of a library - -I'm going to stop short of showing you how to use a dedicated Vector Database since the scope of that is a bit larger -than what I'd intended for this post. (This already is much longer than I'd planned for!) - -To help nudge you in the right direction though here is a guide on -[how to use Chroma with Sentence Transformers](https://docs.trychroma.com/usage-guide) which should get you pretty close. - -If you *would* like me to write a follow-up post on how to setup and use a Vector Database for an embeddings search -engine though, please drop me a line on the [LunaBrain Discord](https://discord.gg/2EbHdAR5w7) with some of your thoughts! -(It helps me a lot when writing to have feedback, especially when getting started with a new post.) - -### Conclusion - -Vector Databases come into play when you need to store and query these embeddings quickly. They store data differently -from traditional databases and provide indexes for efficient clustering and searching. They're niche databases today, -but we're likely to see them grow to become household names like how ElasticSearch or Redis have become. - -In the meantime, thank you so much for reading! I hope it was useful and that you learned something new -- I certainly -did while writing it! - -## Want to stay informed about the latest AI news? - -Come [join our Discord](https://discord.gg/2EbHdAR5w7) and share your thoughts with us. We've been building a community -of AI hackers to help keep up with the *insane* pace of development happening right now in the AI world, and we'd -love to have you join us! diff --git a/docs/content/blog/embeddings-database-news-april-2023/laptop11-hi.png b/docs/content/blog/embeddings-database-news-april-2023/laptop11-hi.png deleted file mode 100644 index c1a975e8..00000000 Binary files a/docs/content/blog/embeddings-database-news-april-2023/laptop11-hi.png and /dev/null differ diff --git a/docs/content/blog/embeddings-database-news-april-2023/transformer-crop-full-sm.jpg b/docs/content/blog/embeddings-database-news-april-2023/transformer-crop-full-sm.jpg deleted file mode 100644 index b96353ac..00000000 Binary files a/docs/content/blog/embeddings-database-news-april-2023/transformer-crop-full-sm.jpg and /dev/null differ diff --git a/docs/content/blog/embeddings-database-news-april-2023/vector-clustering1.png b/docs/content/blog/embeddings-database-news-april-2023/vector-clustering1.png deleted file mode 100644 index 1b7722e3..00000000 Binary files a/docs/content/blog/embeddings-database-news-april-2023/vector-clustering1.png and /dev/null differ diff --git a/docs/content/blog/embeddings-database-news-april-2023/wave1-hi-crop.png b/docs/content/blog/embeddings-database-news-april-2023/wave1-hi-crop.png deleted file mode 100644 index becae9f3..00000000 Binary files a/docs/content/blog/embeddings-database-news-april-2023/wave1-hi-crop.png and /dev/null differ diff --git a/docs/content/blog/lunapipe-introduction/cover.png b/docs/content/blog/lunapipe-introduction/cover.png deleted file mode 100644 index edf5573b..00000000 Binary files a/docs/content/blog/lunapipe-introduction/cover.png and /dev/null differ diff --git a/docs/content/blog/lunapipe-introduction/index.md b/docs/content/blog/lunapipe-introduction/index.md deleted file mode 100644 index 47061a3d..00000000 --- a/docs/content/blog/lunapipe-introduction/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: "LunaPipe Introduction: Bash pipelining for LLMs" -description: "LLMs can help you out in your terminal." -slug: lunapipe-introduction -date: 2023-04-19T07:00:00.000Z -categories: [tools, llms, open-source] -tags: [lunapipe, tools] -contributors: ["breadchris"] -draft: false -weight: 50 -images: [cover.png] -pinned: false -homepage: false ---- - -I don't know about you, but I am pretty lazy. - -I already wrote a readme for [lunapipe](https://github.com/lunabrain-ai/lunapipe), why do I need to write a post too? Maybe I can get some help: - -````bash -cat README.md | lunapipe -t markdown "Write me a short section of a blog post that shows off lunapipe. It is meta because I am using lunapipe to write the post." -```` - -> If you're like me, you love finding new tools that make your development workflow smoother. That's why I want to introduce you to lunapipe - a tool that lets you use OpenAI's GPT models in your terminal. -> -> Lunapipe feels like a bash utility, but it's so much more. You can generate code using templates and models, and even pipe in text for lunapipe to analyze. It's like having an AI assistant right in your terminal! -> -> Installation is super easy - just copy and paste the installation command in your terminal, and you're good to go. Once installed, you can configure your API key so you don't have to keep entering it for each command you run. -> -> Using lunapipe is a breeze. Just type in your prompt and let it do its thing. You can even generate code using templates and models, which saves you time and effort. -> -> If you're a developer looking to speed up your workflow, I highly recommend giving lunapipe a try. - -I mean, yeah, that is pretty much it. Kind of bland though, don't you think? Unfortunately GPT models aren't known -for their "writer's voice". - -## Finding answers to questions is fun -I always have a ChatGPT tab open to help me with writer's block or to give me some external insight into a problem I am looking at. -Unlike your typical Google search, which has been eternally plagued by SEO spam, a ChatGPT response is probably going to give you -something worth reading right off the bat. -Simon Willison wrote an [nice post](https://simonwillison.net/2023/Mar/27/ai-enhanced-development/) explaining how ChatGPT has enhanced their -workflow: - -> The thing I’m most excited about in our weird new AI-enhanced reality is the way it allows me to be more ambitious with my projects. - - -They have also written a CLI tool of [their own](https://github.com/simonw/llm) which I imagine emerged from a similar need of mine. - -I hate context switching. It derails me faster than a train running over TNT. - -![wile e. coyote about to be run over by a train](train.jpg) - -So, instead of crossing the abyss of attention (my all too alluring browser tabs) to get to the tool to unblock me, -I wrote a CLI to keep my attention where it should be, in my terminal. - -What I soon realized is that with the power of GPT in your terminal, you can start tossing data at it to help you out. - -Want to write some code? Just ask and pipe it into a file! - -```shell -lunapipe "Write me a web server" > server.py -``` - -Now obviously this is not going to work as well as you might want. What language do you want it? Do you want to use a specific library? -All of these questions should be resolved with *prompt engineering*, but again, like I established, I am **lazy**. So let's do something about that: - -```shell -lunapipe -t function -p language=python "http server" > server.py -``` - -```python -# server.py -def http_server(): - # Import necessary modules - import http.server - import socketserver - - # Specify the address and port number for the server - address = ("", 8000) - - # Set up the server - with http.server.HTTPServer(address, http.server.SimpleHTTPRequestHandler) as server: - try: - # Start the server - server.serve_forever() - except KeyboardInterrupt: - # Stop the server if the user interrupts the program - server.shutdown() -``` - -Not exactly how I would write it, but not bad! I can work with it. I have never written any Rust, I wonder how that looks? - -```shell -lunapipe -t function -p language=rust "http server" > server.rs -``` - -```rust -use std::io::prelude::*; -use std::net::TcpListener; -use std::net::TcpStream; - -fn main() { - let listener = TcpListener::bind("localhost:8080").unwrap(); - println!("HTTP server started on http://localhost:8080"); - - for stream in listener.incoming() { - let mut stream = stream.unwrap(); - let mut buffer = [0; 1024]; - stream.read(&mut buffer).unwrap(); - - let response = "HTTP/1.1 200 OK\r\n\r\nHello, World!"; - stream.write(response.as_bytes()).unwrap(); - stream.flush().unwrap(); - } -} -``` - -I have no clue if this works, let's run it! Oh wait, I have no idea how Rust works. - -```shell -lunapipe "How do I run server.rs?" -``` - -## Templates -By passing `-t` to lunapipe, you can use templates that are already created, or ones of your own. Here is what the template for `function` looks like: -```gotemplate -{{$lang := param "language"}} -You are a developer who writes code. Write the code of a function{{if $lang}}, written in {{$lang}},{{end}} based on the following description: -``` - -The templates are written using go templates which are pretty [easy to understand](https://www.digitalocean.com/community/tutorials/how-to-use-templates-in-go). -Since it is easy to expose functions written in Go inside of templates, you could write something like this: - -```gotemplate -Given the following git state, write a short description of what the state of the repo is: - -git status: -{{shell "git status"}} -``` - -```shell -lunapipe -t gitinfo "help me!" -``` -> The repo is on the "main" branch and is up-to-date with the remote "origin/main" branch. There are several modified files (including .gitignore, go.mod, and go.sum) and some untracked files. The changes have not been staged for commit, but the suggested commands to update the changes and discard them are provided. - -## What this is not -This is not going to automatically code for you. In fact, if you go to run the rust server by itself, it will not work, you -will get a bunch of errors. Like I said before, this is a tool for unblocking you. I think of GPT as the world's smartest -rubber ducky. - -## Try it yourself! -Go forth and [try it for yourself](https://github.com/lunabrain-ai/lunapipe)! - -Run this command for a quick install: -```shell -curl https://raw.githubusercontent.com/lunabrain-ai/lunapipe/main/scripts/install.sh | sh -lunapipe configure -``` - -## Demonstration -I like watching videos of tools sometimes, so I put one together for others like me out there: - - - -Happy hacking! diff --git a/docs/content/blog/lunapipe-introduction/train.jpg b/docs/content/blog/lunapipe-introduction/train.jpg deleted file mode 100644 index 9b39c44b..00000000 Binary files a/docs/content/blog/lunapipe-introduction/train.jpg and /dev/null differ diff --git a/docs/content/blog/openai-not-so-open/index.md b/docs/content/blog/openai-not-so-open/index.md deleted file mode 100644 index e9fbd4d6..00000000 --- a/docs/content/blog/openai-not-so-open/index.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: "OpenAI Vendor Lock-in: The Ironic Story of How OpenAI Went from Open SourcePage to \"Open Your Wallet\"" -description: "diving into the complicated past of openAI and their relationship with open source software" -slug: openai-not-so-open -date: 2023-03-24T07:00:00.000Z -categories: [openai, closed-source,open-source] -tags: [openai] -contributors: ["forrest"] -draft: false -weight: 50 -images: [wallet-cover.png] -pinned: false -homepage: false ---- - - - -I can't take full credit for the title. This sentiment is all over the open source community. - - -OpenAI, once a beacon of hope for the open-source community, has evolved into a closed-source, profit-driven behemoth, -leaving many to question its trustworthiness. Despite this transformation, LunaSec has been making great use of their -products, including the recent release of ChatGPT, which has ignited a chatbot arms race among tech giants. However, due -to OpenAI's departure from its original vision and the influence of multi-billion-dollar deals like Microsoft's massive -investment, we hope to eventually transition to an open-source alternative. - -## The Transformation of OpenAI -In the beginning, OpenAI was established as a nonprofit research organization committed to advancing digital -intelligence for the benefit of humanity. The founding members, including Sam Altman, Elon Musk, and Peter Thiel, -promised to focus on positive human impact and transparency. Researchers were encouraged to share their findings, -code, and patents with the world. - -Fast-forward to today, and OpenAI has pivoted to a profit-driven model. Critics, including co-founder Musk, -argue that the company is now focused on speed and profit instead of positive human impact. - -## Elon Musk's Worst Nightmare: Close SourcePage, Corporate Control of AI -Musk has long considered AI to be "fundamental existential risk for human civilization". He has spent years -calling for strict government regulation and caution around AI research, and received some interest from regulators. -One of Musk's main suggestions was to [learn as much as possible](https://www.theguardian.com/technology/2017/jul/17/elon-musk-regulation-ai-combat-existential-threat-tesla-spacex-ceo) to better understand the -problem. - -
-

OpenAI was created as an open source (which is why I named it “Open” AI), non-profit - company to serve as a counterweight to Google, but now it has become a closed source, maximum-profit company effectively controlled by Microsoft. Not what I intended at all.

— Elon Musk (@elonmusk) February 17, 2023
- - -Originally, when he co-founded OpenAI, Musk envisioned it as a nonprofit organization that would share its -research and technology. Musk lost any hope of control over the company in 2018, however, in a power struggle driven -largely by OpenAI's pivot to a for-profit model. OpenAI became increasingly entangled with -Microsoft and other corporate partners, trading transparency and openness for financial resources. - - -## Vendor lock is really inconvenient -Mission statements and ideologies aside, there are a lot of day-to-day struggles with using something controlled by -just one company. - -### API Outages, Reliability Issues, and Unannounced Changes -OpenAI's ChatGPT has experienced several API outages and reliability issues, leaving developers and businesses -in the lurch. -Furthermore, subtle changes to models behind the scenes have the potential to break existing use cases without -warning. Put simply, developers do not have control of a huge and often critical component of their own software. - -### Inability to Train Additional Data -The inability to train additional data into ChatGPT limits developers and businesses from customizing the AI to their -specific needs. There are a thousand companies out there that would love to train an LLM as powerful as ChatGPT on -their own data sets, us included. The fine-tuning API that OpenAI does offer isn't well suited to additional -pre-training. This means that what the model "knows" about is up to OpenAI. - -This stifles innovation and increases dependence on OpenAI's proprietary technology. - -## Alternatives: A Glimmer of Hope -In spite of the concerns surrounding OpenAI, there are alternatives. If you're curious to see what more open competitors are like, -trying them out isn't as difficult as you might think. -:::note -These next two models have restrictive, non-commercial licenses. -::: - -### [Llama](https://ai.facebook.com/blog/large-language-model-llama-meta-ai/) -Facebook's Llama model is available for research purposes but cannot be used commercially. It offers a step -forward but is not enough for those seeking to harness the LLM revolution for business reasons. You can try Facebook's -LLama on your powerful computer by firing up [this easy to use javascript GUI](https://github.com/mpociot/llamero), although I'd recommend you have fast internet, plenty -of disk space, and a top of the line machine. - -### [ChatGLM](https://github.com/THUDM/ChatGLM-6B/blob/main/README_en.md) -Another non-commercial LLM, ChatGLM, is even easier to try. -You can [launch ChatGLM](https://colab.research.google.com/github/MarkSchmidty/ChatGLM-6B-Int4-Web-Demo/blob/main/ChatGLM-6B_int4_Web_Demo.ipynb#scrollTo=hS3OPJza5Eo4) for free on Google -Colab with just one click. With far fewer neurons than ChatGPT, a smaller training -dataset, and presumably less advanced technology, it falls noticeably short, at least in English. - -### [Open SourcePage Alternatives](https://github.com/nichtdax/awesome-totally-open-chatgpt) -Open-source alternatives: The open-source community is working on alternatives to ChatGPT, like the ones listed on this -[awesome totally open chatgpt](https://github.com/nichtdax/awesome-totally-open-chatgpt) list. -As shown by the categories in the list, some of these models can be trained, customized, and self-hosted, with -permissive licenses that allow for more control and customization without vendor lock-in. - - - -## Conclusion -OpenAI's transformation from an open-source champion to a closed-source, profit-driven company is a cautionary tale -for the AI industry. Although the company has made significant strides in AI development, its increasing secrecy, -lack of transparency, and limited customization options have alienated the very community it once aimed to serve. -The future of AI depends on stakeholders, including researchers, developers, and businesses, actively working to -prevent monopolization and ensure transparency, openness, and collaboration remain at the forefront of AI development. diff --git a/docs/content/blog/openai-not-so-open/wallet-cover.png b/docs/content/blog/openai-not-so-open/wallet-cover.png deleted file mode 100644 index f4715d41..00000000 Binary files a/docs/content/blog/openai-not-so-open/wallet-cover.png and /dev/null differ diff --git a/docs/content/blog/openai-not-so-open/wallet.png b/docs/content/blog/openai-not-so-open/wallet.png deleted file mode 100644 index c4542d9d..00000000 Binary files a/docs/content/blog/openai-not-so-open/wallet.png and /dev/null differ diff --git a/docs/content/blog/scraping-with-chatgpt/index.md b/docs/content/blog/scraping-with-chatgpt/index.md deleted file mode 100644 index 7821df10..00000000 --- a/docs/content/blog/scraping-with-chatgpt/index.md +++ /dev/null @@ -1,235 +0,0 @@ ---- -title: "Using ChatGPT to clean scraped data, and how to handle any big document with ChatGPT" -description: "Improving upon existing scraping tools using ChatGPT" -slug: chatgpt-scraper -date: 2023-04-18T07:00:00.000Z -keywords: [gpt, scraper] -tags: [] -contributors: [forrest] -images: [scraper-banner.jpg] ---- - - - -In this article we: - -* Discuss cleaning up scraped webpage text, and what the existing solutions are -* Show that ChatGPT does a great job at cleaning up page text and providing other useful metrics simultaneously -* Show how to use ChatGPT to handle documents longer than its maximum token context length - -### Why we needed to scrape -When we discovered how powerful ChatGPT was, we decided to build a software security chat-bot so that people -could ask it about vulnerabilities. Since vulnerabilities tend to be new and ChatGPT's training data was old, we -needed a way to get new information in front of ChatGPT. We planned to use a vector database to prompt-inject -articles about vulnerabilities, and we decided to scrape them ahead of time so that the chat-bot would be fast enough. -To learn more about how vector database's work and how you can use them, read our [vector blog post](https://lunabrain.com/blog/riding-the-ai-wave-with-vector-databases-how-they-work-and-why-vcs-love-them/). -### The problem with traditional scraping - -Traditionally when you scrape a page, you end up with HTML. You can use a something like Puppeteer to use a real -browser to make sure javascript loads, but you still end up with the HTML from the page. Now, ChatGPT understands -HTML. The problem is that you're always bumping up against a context length limit (and paying by the token, -as well) with ChatGPT. Also, if we are adding in the vector database layer, the HTML junk will add a bunch of noise to -the -embeddings that -will significantly impact performance. - -There are some traditional, heuristic style scraping tools that will attempt to get the "main body" from the page, -such as the [Readability](https://www.npmjs.com/package/@mozilla/readability) library by Mozilla. -They work well for well known websites -such as news sites, wikipedia, etc., but fall on their face with diverse and bespoke websites and blogs, which is -what we need to parse. There may be better solutions out there than Readability that we haven't tried, but really, -nothing is going to beat the LLM for raw reasoning power. - -## Enter ChatGPT - -#### First, we need the page text -Let's get ChatGPT something to clean up. - -An easy first step is to just scrape all the text that actually shows up on the page, ignoring HTML tags and -anything hidden. In Puppeteer, that looks like this. - -```typescript -const normalized_content = await page.$eval('*', (el) => { - // skip everything that isn't an HTMLElement - if (!(el instanceof HTMLElement) ){ - return '' - } - return el.innerText; -}) -``` -You could do something similar in any language with any scraping tool. Fully rendering JS was a must for us, though, -and Puppeteer is good at that. - -Now we have everything that's showing on the page. Maybe a few hidden elements or other junk, but for the most part, -these few lines will get you the page text. Unfortunately, this -will get every button, sidebar, footer, etc, and it's amazing how many of those there are. - - For our purposes, all that non-article text is garbage that will -pollute the vector space and the final prompt, too. Different pages will have different garbage, maybe in the middle, -on the sidebar, the footer, the middle of the usable text, etc. - -#### Clean it up -Since none of the existing tools are as good, let's use ChatGPT. - -![screenshot of chatgpt cleaning text](scrape-gpt.png) - -Here we can see that, of course, ChatGPT can clean up that text just as well as you can. - -It won't be the fastest, or the -cheapest, but the result is incredibly good. Also, it can produce other metrics such as a short summary or some kind -of "rank" relevance score as its cleaning the data. Very useful. For a complete working code example, you can follow -along in [**this -script**](https://github.com/lunasec-io/lunasec/blob/master/lunatrace/bsl/ml/python/scrape_utils/clean_scraped_advisories.py) which handles all the strategies explained in the rest of the article. - -Let's make a call to ChatGPT. Below is the template I wrote. It could probably be a lot shorter with some -optimization, but this works fine. - - -#### The Prompt: -> Below I'm going to give you a section of page contents that were scraped off of a webpage about a -software vulnerability. Copy any sentences from the scraped page -that might be useful into the template. -The goal is to eliminate the useless parts of the scraped web page such as button text and headers, and go from scraped junk to a clean article. Omit anything that looks like a big block of code. -It's okay to stop in the middle of a sentence if that's where the page contents ends. It's also ok to return the body as an empty string if - there is no useful text in the scraped section I gave you. Don't omit any sentences from the scraped text, only remove things that look like text from buttons and footers and junk like that. Be sparing with what you omit. - I want to see most of the content returned, minus all the one word sentences from buttons and so on. - - - -> The template for your response is: ---- BEGIN TEMPLATE --- -Body: [your cleaned up page text from the below scraped page here] -Summary: [your one sentence summary of what this page is about, potentially refining the summary shown below. Give a meta-description of the page, not a direct summary of the contents. Ex: "Ruby-advisory-db page explaining mitigation techniques"] ---- END TEMPLATE --- - - -> And here are the scraped page contents: ---- BEGIN SCRAPED PAGE CONTENTS --- -{page_content} ---- END SCRAPED PAGE CONTENTS --- - -> Here is the existing summary from the contents higher up on the page, if there is one ---- BEGIN EXISTING SUMMARY --- -{existing_summary} ---- END EXISTING SUMMARY --- - -> This is the last couple of sentences of a section of the page you previously processed. I'm showing you so that you -> can try to make your new section mesh -grammatically with the last word of this previously processed text, as we will be adding your new "body" response onto the end of it. If it's empty then nevermind and just start fresh. ---- BEGIN PREVIOUS BODY --- -{existing_body} ---- END PREVIOUS BODY --- - -That's a huge prompt, but it does work quite reliably. You could probably -slim this down quite a bit and still get a good result. Note that we give it a strict template for its output so -that we can regex out the multiple fields. This is also helpful to keep ChatGPT from saying sentences we can't use -like "Sure, let me help you with that." before it gives its response. It's very polite, but we can't parse polite. - -#### The power of ChatGPT to provide arbitrary metrics is extremely useful - -Note that we also ask for a summary of the page, because that's going to help us search through these documents later. -In [another experiment](https://www.youtube.com/watch?v=XssIIoHfBSM), we had GPT-4 generate a question it wanted an -answer to, such as "When was the -Log4Shell vulnerability first published by LunaSec?", and then passed that question over to a similar ChatGPT prompt. -This time, we asked it for the answer to the question, a summary , and also a score from 0 to 100 of how well the -page answered the question. We noted that it did an incredibly good job at subjectively rating the pages on their -usefulness. - -#### A note on LangChain and Python - -To render this template, parse the response, and handle the actual calls to ChatGPT, we -use [LangChain](https://python.langchain.com/en/latest/index.htm). You could really use just about any library in -any language to do this, if you're not a fan of python. There's a pretty good [Javascript implementation of -LangChain](https://github.com/hwchase17/langchainjs), -too. OpenAI libraries are coming out in just about every popular language now, or you could easily write your own -client. Nothing in here is very complicated or qualifies as -real "machine learning". To be honest, sometimes it doesn't even feel like programming. It's that easy. - - -##### Looping -Because of the token -limit of 4096 (which tends to be around 16000 chars), pages are often too long to pass in all at once. Note that in -the prompt, we can pass in the end of a previous section, and a previous summary. That's so that we can loop ChatGPT -over chunks of the document, and then in the end we just concat them all together. - -There is a choice between calling ChatGPT in parallel (faster) or in sequence (slower), and in this case we chose to -go in sequence, map-reduce style. This is so that we can have ChatGPT stitch the chunks together in a grammatically -correct way. Otherwise, the chunk boundaries might get a bit garbled. In other words, we are chunking the scraped -web page contents into ChatGPT, with a little bit of an overlapping window where the last result feeds into the next -query. -This method also helps refine the -summary we asked ChatGPT to give us as it reads down -the page, adding new information without losing context from higher up the page. - -##### How to calculate your token budget -Going over the 4096 token limit in one request will break the entire flow. -The token limit is a bit like playing blackjack. -Ideally we will nearly fill it up, but it's better to be under than over. - - - Note that we have to -leave space for the prompt, the passed in page contents, the snippets from previous loops, **and ChatGPT's -response**. We know that in this case the output will be roughly the same size or smaller than the input size, so if -we split our roughly 4000 token budget in half, that leaves us 2000 tokens for input. Since our prompt takes us -about 500 tokens, let's just use a size of 1500 as our splitter. You can use -[OpenAI's tokenizer](https://platform.openai.com/tokenizer) to see how many tokens your prompt uses. The - visualization is nice as well and gives you a feel for how tokens work. - -To split the documents in an intelligent way, we are using Langchain's `TokenTextSplitter` to give us an array of -chunks of the proper size. There are various splitters that will try to split on a complete sentence just before the -token limit reached, and so on. This simple splitter seemed to work fine, though. - -```python -from langchain.text_splitter import TokenTextSplitter - -content_splitter = TokenTextSplitter(chunk_size=1500, chunk_overlap=0) -split_content = content_splitter.split_text(page_content) -``` - -We do a similar thing to get the last sentence or so from the previous loop, if there was one, so that ChatGPT can -stitch them together without grammar issues. - -#### How much does it cost - -Well, we scraped about 10,000 pages before we hit our quota and needed to increase it. That took around 24 hours -and cost around $100. Slow, expensive, but extremely effective. If you're going to do this, make sure to have a high -OpenAI quota first, since that takes a few days and a human approval. - -### Other uses -This approach can be used for just about any long-form of text that exceeds the token limit. Most of the code we wrote -was just strategies to split up and combine chunks so as not to exceed the token limit. The same strategy could -probably be used to translate entire books, or just about any other language task you can imagine that will use more -than 4096 tokens. - -### Other cool technologies out there - -##### [WebGPT](https://openai.com/research/webgpt) -OpenAI actually specifically trained an LLM for browsing the web, and no doubt it doesn't a better job than anything -we talked about here if what you really want to do is just have an AI read the web. It can follow links and browse -the internet like a human. If I had to guess, I'd say something like this is behind the new Bing chat-bot. -Unfortunately, it's not public and there is no API to use it. *Open*AI, huh? - -##### [LMQL](https://lmql.ai/) -LMQL is a new DSL for prompting LLMs and parsing results. It also does an extremely clever thing called "token-level -prediction masks" which helps to deal with the off-prompt responses that you often get with langchain. Something -like this is clearly the future for these more complex prompts, and it really exposes my (LangChain's) string -templating and Regex parsing for the spaghetti it is. Hopefully we'll have a full post up about LMQL soon. - -### Conclusion - -Thanks for reading and be sure to join us in our machine learning discord if you'd like to chat about this stuff. -We've managed to get some pretty smart folks in there. You may also want to check out -[LunaBrain](https://github.com/lunabrain-ai/lunabrain), -a framework we wrote to make all of this stuff a lot easier. It'll be getting some better docs and examples over the next week or two. diff --git a/docs/content/blog/scraping-with-chatgpt/scrape-gpt.png b/docs/content/blog/scraping-with-chatgpt/scrape-gpt.png deleted file mode 100644 index d28eaa43..00000000 Binary files a/docs/content/blog/scraping-with-chatgpt/scrape-gpt.png and /dev/null differ diff --git a/docs/content/blog/scraping-with-chatgpt/scraper-banner.jpg b/docs/content/blog/scraping-with-chatgpt/scraper-banner.jpg deleted file mode 100644 index 4278ff9c..00000000 Binary files a/docs/content/blog/scraping-with-chatgpt/scraper-banner.jpg and /dev/null differ diff --git a/docs/content/contact/index.md b/docs/content/contact/index.md deleted file mode 100644 index 795089f6..00000000 --- a/docs/content/contact/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Contact" -description: "Drop us an email." -date: 2020-08-27T19:25:12+02:00 -lastmod: 2020-08-27T19:25:12+02:00 -draft: true -images: [] ---- - -{{< email user="hello" domain="getdoks.org" >}} diff --git a/docs/content/contributors/_index.md b/docs/content/contributors/_index.md deleted file mode 100644 index 664d16d2..00000000 --- a/docs/content/contributors/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Contributors" -description: "The Doks contributors." -date: 2020-10-06T08:50:29+00:00 -lastmod: 2020-10-06T08:50:29+00:00 -draft: false -images: [] ---- - -The LunaBrain contributors. diff --git a/docs/content/contributors/breadchris/_index.md b/docs/content/contributors/breadchris/_index.md deleted file mode 100644 index c28c49a7..00000000 --- a/docs/content/contributors/breadchris/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "breadchris" -description: "breadchris" -date: 2020-10-06T08:50:45+00:00 -lastmod: 2020-10-06T08:50:45+00:00 -draft: false -images: [] ---- - -[@breadchris](https://twitter.com/breadchris) diff --git a/docs/content/contributors/forrest/_index.md b/docs/content/contributors/forrest/_index.md deleted file mode 100644 index 0b6b6f63..00000000 --- a/docs/content/contributors/forrest/_index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "forrest" -description: "forrest" -date: 2020-10-06T08:50:45+00:00 -lastmod: 2020-10-06T08:50:45+00:00 -draft: false -images: [] ---- diff --git a/docs/content/contributors/free/_index.md b/docs/content/contributors/free/_index.md deleted file mode 100644 index 7d040b14..00000000 --- a/docs/content/contributors/free/_index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "free" -description: "free" -date: 2020-10-06T08:50:45+00:00 -lastmod: 2020-10-06T08:50:45+00:00 -draft: false -images: [] ---- diff --git a/docs/content/docs/_index.md b/docs/content/docs/_index.md deleted file mode 100644 index f807c652..00000000 --- a/docs/content/docs/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title : "Docs" -description: "Docs Doks." -lead: "" -date: 2020-10-06T08:48:23+00:00 -lastmod: 2020-10-06T08:48:23+00:00 -draft: false -images: [] ---- diff --git a/docs/content/docs/setup/_index.md b/docs/content/docs/setup/_index.md deleted file mode 100644 index d002235b..00000000 --- a/docs/content/docs/setup/_index.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -title : "Setup" ---- diff --git a/docs/content/docs/setup/quick-start.md b/docs/content/docs/setup/quick-start.md deleted file mode 100644 index b90595c7..00000000 --- a/docs/content/docs/setup/quick-start.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: "Quick Start" -description: "How to get started using LunaBrain." -lead: "How to get started using LunaBrain." -date: 2020-11-16T13:59:39+01:00 -lastmod: 2020-11-16T13:59:39+01:00 -draft: false -images: [] -menu: - docs: - parent: "setup" -weight: 110 -toc: true ---- - -## Requirements - -- [Git](https://git-scm.com/) -- [Go](https://golang.org/) — 1.18 or later -- [Python](https://www.python.org/) - 3.9 or later - -{{< details "Why Go?" >}} -Go is a very easy language to learn. It's also very fast, efficient, and easy to scale. -{{< /details >}} -{{< details "Why Python?" >}} -Python is ubiquitous in ML. There is a Python service which serves as a bridge between the Go backend and the ML models. -{{< /details >}} - -## Running LunaBrain - -### Clone the repository - -```bash -git clone https://github.com/lunabrain-ai/lunabrain.git -cd lunabrain -``` - -### Run the backend -If you want to roll up your sleves and dig around, you can bring up the services manually. - -Note: These might fall out of date quickly! We are working on a better local dev experience with [tilt](https://tilt.dev/). - -```bash -go run cmd/main.go content serve -``` - -{{
}} -Create a `config/lunabrain/config.yaml` file and add the following config (changing TODO with the relevant details): - -```yaml -openai: - api_key: TODO -api: - local: true -scrape: - client: chrome - fallback: true - use_cache: false -python: - host: 'lunabrain-python:50051' -normalize: - url: - domain_content: true -youtube: - api_key: TODO -discord: - application_id: TODO - token: TODO -publish: - discord: - enabled: false - channel_id: TODO - -``` -{{< /details >}} - -### Start the Python service - -There is a Python service which serves as a bridge between the Go backend and the ML models. It is required to run the backend. -The code is currently a work in progress, but you can find the latest details [here](https://github.com/lunabrain-ai/lunabrain/tree/main/python). - -```bash -cd python -python -m venv env -source env/bin/activate -pip install -r requirements.txt -LUNABRAIN_DIR=data/lunabrain python start.py -``` - -If you want to explore what this service can do, you can use [grpcui](https://github.com/fullstorydev/grpcui): -```bash -grpcui -plaintext localhost:50051 -``` diff --git a/docs/content/privacy-policy/index.md b/docs/content/privacy-policy/index.md deleted file mode 100644 index 63150240..00000000 --- a/docs/content/privacy-policy/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Privacy Policy" -description: "We do not use cookies and we do not collect any personal data." -date: 2020-08-27T19:23:18+02:00 -lastmod: 2020-08-27T19:23:18+02:00 -draft: true -images: [] ---- - -__TLDR__: We do not use cookies and we do not collect any personal data. - -## Website visitors - -- No personal information is collected. -- No information is stored in the browser. -- No information is shared with, sent to or sold to third-parties. -- No information is shared with advertising companies. -- No information is mined and harvested for personal and behavioral trends. -- No information is monetized. - -### Information we collect and what we use it for - -We run [Plausible](https://plausible.io/) analytics on getdoks.org. The following information is collected: - -- __Page URL__. We track the page URL of each page view on this website. We use this to understand which pages have been viewed and how many times a particular page has been viewed. For example: _https://getdoks.org/_. -- __HTTP Referrer__. We use the referrer string to understand the number of visitors referred to this website from links on other sites. For example: _https://github.com/_. -- __Browser__. We use this to understand what browsers people use when visiting this website. This is derived from the User-Agent HTTP header. The full User-Agent is discarded. For example: _Chrome_. -- __Operating system__. We use this to understand what operating systems people use when visiting this website. We only use the brand of the operating system and don’t include the version number or any other details. This is derived from the User-Agent HTTP header. The full User-Agent is discarded. For example: _GNU/Linux_. -- __Device type__. We use this to understand what devices people use when visiting this website. This is derived from window.innerWidth. The actual width of the browser in pixels is discarded. For example: _Desktop_. -- __Visitor Country__. We look up the visitor’s country using the IP address. We do not track anything more granular than the country of origin and the IP address of the visitor is discarded. We never store IP addresses in our database or logs. For example: _Canada_. - -## Contact us - -[Contact us]({{< relref "contact/index.md" >}}) if you have any questions. - -Effective Date: _27th August 2020_ diff --git a/docs/content/versions.md b/docs/content/versions.md deleted file mode 100644 index ddbe0020..00000000 --- a/docs/content/versions.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Versions" -description: "" -lead: "An appendix of hosted documentation for nearly every release of Doks, from v0 through v3." -date: 2021-09-24T08:50:23+02:00 -lastmod: 2021-09-24T08:50:23+02:00 -draft: true -images: [] -layout: versions -url: "/docs/versions/" ---- diff --git a/docs/content/wiki/.obsidian/app.json b/docs/content/wiki/.obsidian/app.json deleted file mode 100644 index 9e26dfee..00000000 --- a/docs/content/wiki/.obsidian/app.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/docs/content/wiki/.obsidian/appearance.json b/docs/content/wiki/.obsidian/appearance.json deleted file mode 100644 index c8c365d8..00000000 --- a/docs/content/wiki/.obsidian/appearance.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "accentColor": "" -} \ No newline at end of file diff --git a/docs/content/wiki/.obsidian/core-plugins-migration.json b/docs/content/wiki/.obsidian/core-plugins-migration.json deleted file mode 100644 index 3106ebdf..00000000 --- a/docs/content/wiki/.obsidian/core-plugins-migration.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "file-explorer": true, - "global-search": true, - "switcher": true, - "graph": true, - "backlink": true, - "canvas": true, - "outgoing-link": true, - "tag-pane": true, - "page-preview": true, - "daily-notes": true, - "templates": true, - "note-composer": true, - "command-palette": true, - "slash-command": false, - "editor-status": true, - "starred": true, - "markdown-importer": false, - "zk-prefixer": false, - "random-note": false, - "outline": true, - "word-count": true, - "slides": false, - "audio-recorder": false, - "workspaces": false, - "file-recovery": true, - "publish": false, - "sync": false -} \ No newline at end of file diff --git a/docs/content/wiki/.obsidian/core-plugins.json b/docs/content/wiki/.obsidian/core-plugins.json deleted file mode 100644 index 086a8e4e..00000000 --- a/docs/content/wiki/.obsidian/core-plugins.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - "file-explorer", - "global-search", - "switcher", - "graph", - "backlink", - "canvas", - "outgoing-link", - "tag-pane", - "page-preview", - "daily-notes", - "templates", - "note-composer", - "command-palette", - "editor-status", - "starred", - "outline", - "word-count", - "file-recovery" -] \ No newline at end of file diff --git a/docs/content/wiki/.obsidian/graph.json b/docs/content/wiki/.obsidian/graph.json deleted file mode 100644 index e21a18dc..00000000 --- a/docs/content/wiki/.obsidian/graph.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "collapse-filter": true, - "search": "", - "showTags": false, - "showAttachments": false, - "hideUnresolved": false, - "showOrphans": true, - "collapse-color-groups": true, - "colorGroups": [], - "collapse-display": true, - "showArrow": false, - "textFadeMultiplier": 0, - "nodeSizeMultiplier": 1, - "lineSizeMultiplier": 1, - "collapse-forces": true, - "centerStrength": 0.518713248970312, - "repelStrength": 10, - "linkStrength": 1, - "linkDistance": 250, - "scale": 1, - "close": false -} \ No newline at end of file diff --git a/docs/content/wiki/.obsidian/hotkeys.json b/docs/content/wiki/.obsidian/hotkeys.json deleted file mode 100644 index 9e26dfee..00000000 --- a/docs/content/wiki/.obsidian/hotkeys.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/docs/content/wiki/.obsidian/workspace.json b/docs/content/wiki/.obsidian/workspace.json deleted file mode 100644 index c0b862f7..00000000 --- a/docs/content/wiki/.obsidian/workspace.json +++ /dev/null @@ -1,224 +0,0 @@ -{ - "main": { - "id": "dea6f7ce0e311def", - "type": "split", - "children": [ - { - "id": "fc4eb72d3a3e4838", - "type": "tabs", - "children": [ - { - "id": "86b5cdeaf5a94d71", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "_index.md", - "mode": "source", - "source": false - } - } - }, - { - "id": "f50c202a0562d8fe", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "Fundamentals.md", - "mode": "source", - "source": false - } - } - }, - { - "id": "8c741082d41c0359", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "_index.md", - "mode": "source", - "source": false - } - } - }, - { - "id": "747348b32c35b71c", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "_index.md", - "mode": "source", - "source": false - } - } - }, - { - "id": "2d6b6a10003f678f", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "Models.md", - "mode": "source", - "source": false - } - } - }, - { - "id": "11160f2b3f2422ac", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "News Sources.md", - "mode": "source", - "source": false - } - } - } - ], - "currentTab": 1 - } - ], - "direction": "vertical" - }, - "left": { - "id": "63780efb62f0798f", - "type": "split", - "children": [ - { - "id": "d0cae9466d906e0a", - "type": "tabs", - "children": [ - { - "id": "f833619a9edeee3d", - "type": "leaf", - "state": { - "type": "file-explorer", - "state": { - "sortOrder": "alphabetical" - } - } - }, - { - "id": "6083529b347813ea", - "type": "leaf", - "state": { - "type": "search", - "state": { - "query": "", - "matchingCase": false, - "explainSearch": false, - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical" - } - } - }, - { - "id": "76185e92c7594196", - "type": "leaf", - "state": { - "type": "starred", - "state": {} - } - } - ] - } - ], - "direction": "horizontal", - "width": 300 - }, - "right": { - "id": "9adf2e44e0403bf8", - "type": "split", - "children": [ - { - "id": "3eca76af85671b65", - "type": "tabs", - "children": [ - { - "id": "33ab572fc55b4fe8", - "type": "leaf", - "state": { - "type": "backlink", - "state": { - "file": "Fundamentals.md", - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical", - "showSearch": false, - "searchQuery": "", - "backlinkCollapsed": false, - "unlinkedCollapsed": true - } - } - }, - { - "id": "e8da139c3b0caf92", - "type": "leaf", - "state": { - "type": "outgoing-link", - "state": { - "file": "Fundamentals.md", - "linksCollapsed": false, - "unlinkedCollapsed": true - } - } - }, - { - "id": "cd6db7396fd0560e", - "type": "leaf", - "state": { - "type": "tag", - "state": { - "sortOrder": "frequency", - "useHierarchy": true - } - } - }, - { - "id": "73cc25406c37c5f8", - "type": "leaf", - "state": { - "type": "outline", - "state": { - "file": "Fundamentals.md" - } - } - } - ] - } - ], - "direction": "horizontal", - "width": 300, - "collapsed": true - }, - "left-ribbon": { - "hiddenItems": { - "switcher:Open quick switcher": false, - "graph:Open graph view": false, - "canvas:Create new canvas": false, - "daily-notes:Open today's daily note": false, - "templates:Insert template": false, - "command-palette:Open command palette": false - } - }, - "active": "f50c202a0562d8fe", - "lastOpenFiles": [ - "_index.md", - "Fundamentals.md", - "News Sources.md", - "Vector Search.md", - "Testing.canvas", - "Applications/Chat Bots.md", - "Models.md", - "FAISS.md", - "Applications", - "Text Processing.md", - "Hugging Face.md" - ] -} \ No newline at end of file diff --git a/docs/content/wiki/Applications/Chat Bots.md b/docs/content/wiki/Applications/Chat Bots.md deleted file mode 100644 index ef3ffe73..00000000 --- a/docs/content/wiki/Applications/Chat Bots.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Chat Bots ---- - -- [Knowledge Graph-Based Chatbot With GPT-3 and Neo4j](https://medium.com/neo4j/knowledge-graph-based-chatbot-with-gpt-3-and-neo4j-c4ebbd325ed) -- \ No newline at end of file diff --git a/docs/content/wiki/FAISS.md b/docs/content/wiki/FAISS.md deleted file mode 100644 index a7ff6eb4..00000000 --- a/docs/content/wiki/FAISS.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: FAISS ---- - -Project URL: https://github.com/facebookresearch/faiss - -### Pinecone FAISS Book -https://www.pinecone.io/learn/faiss/ - -#### Notes -- Using the `IndexFlatL2` index alone is computationally expensive, it doesn’t scale well. -- \ No newline at end of file diff --git a/docs/content/wiki/Fundamentals.md b/docs/content/wiki/Fundamentals.md deleted file mode 100644 index 9ba9af41..00000000 --- a/docs/content/wiki/Fundamentals.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Fundamentals ---- - -## Learn -- [Amazing video series from 3 blue 1 brown](https://www.youtube.com/watch?v=aircAruvnKk&list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi) \ No newline at end of file diff --git a/docs/content/wiki/Hugging Face.md b/docs/content/wiki/Hugging Face.md deleted file mode 100644 index d756a624..00000000 --- a/docs/content/wiki/Hugging Face.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Hugging Face ---- -https://huggingface.co/ \ No newline at end of file diff --git a/docs/content/wiki/Models.md b/docs/content/wiki/Models.md deleted file mode 100644 index 71668404..00000000 --- a/docs/content/wiki/Models.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Models ---- - -Machine learning (ML) models are increasingly important in various industries as they enable automated predictions, decision-making, and insights from large and complex datasets. These models are designed to improve with time as they receive more data and learn to identify patterns, allowing businesses to make more accurate predictions and informed decisions. One of the prominent platforms for building and deploying state-of-the-art natural language processing (NLP) models is [[Hugging Face]]. Hugging Face provides easy-to-use libraries and tools for building and fine-tuning NLP models and is widely used by developers, data scientists, and researchers to create and train custom NLP models for various use cases, such as chatbots, sentiment analysis, and language translation. - -- 03/29/23 - Lit Review of currently available models https://kipp.ly/blog/transformer-taxonomy/ \ No newline at end of file diff --git a/docs/content/wiki/News Sources.md b/docs/content/wiki/News Sources.md deleted file mode 100644 index a76a5547..00000000 --- a/docs/content/wiki/News Sources.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: News Sources ---- -Places you can go to stay plugged in about AI advancements! - -## Awesome Lists -- https://github.com/imaurer/awesome-decentralized-llm - -## Feeds - -- [HackerNews](https://news.ycombinator.com/) - -## Discord -- [LunaBrain](https://discord.gg/4KhauRRA) -- [LangChain](https://discord.gg/S7qDt6Qh) -- [LlamaIndex](https://discord.gg/UTvXb2Tp) -- [Replicate](https://discord.gg/replicate) \ No newline at end of file diff --git a/docs/content/wiki/Text Processing.md b/docs/content/wiki/Text Processing.md deleted file mode 100644 index 7bca2500..00000000 --- a/docs/content/wiki/Text Processing.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Text Processing ---- -Text normalization is a critical step in natural language processing, and machine learning (ML) techniques have proven to be effective in this domain. ML text normalization techniques involve training models on large corpora of text to learn patterns and rules for standardizing text. These models can then be used to automatically correct spelling errors, expand contractions, and transform abbreviations to their full forms. By using ML text normalization techniques, NLP applications can better understand and process text data, leading to more accurate and efficient analysis. - -## Text Normalization Techniques for Machine Learning - -### Introduction -- Definition of text normalization -- Importance of text normalization in NLP - -### Rule-Based Text Normalization -- Overview of rule-based text normalization -- Techniques for rule-based text normalization (e.g., stemming, lemmatization, stop-word removal) -- Advantages and disadvantages of rule-based text normalization - -### Machine Learning Text Normalization -- Overview of machine learning text normalization -- Techniques for machine learning text normalization (e.g., sequence labeling, deep learning, unsupervised learning) -- Advantages and disadvantages of machine learning text normalization - -### Comparison of Rule-Based and Machine Learning Text Normalization -- Differences between rule-based and machine learning text normalization -- Use cases for each technique -- Best practices for selecting the appropriate technique - -### Applications of Text Normalization in NLP -- Overview of NLP applications that require text normalization (e.g., sentiment analysis, named entity recognition, machine translation) -- Case studies demonstrating the importance of text normalization in NLP applications \ No newline at end of file diff --git a/docs/content/wiki/Vector Search.md b/docs/content/wiki/Vector Search.md deleted file mode 100644 index 2d7dbdd4..00000000 --- a/docs/content/wiki/Vector Search.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Vector Search ---- - -[Awesome List](https://github.com/currentslab/awesome-vector-search) - -## Tools -### Open SourcePage -- [[FAISS]] - Facebook Vector Search -- https://github.com/nmslib/hnswlib/ "supposedly lower memory requirements and allows for adding new vectors to an existing index" -- "If you do have a tiny index and want to try Google's version of vector search (as an alternative to Faiss), you can easily run ScaNN locally" https://github.com/google-research/google-research/tree/master/scann - - -- https://github.com/qdrant/qdrant -- https://github.com/hora-search/hora -- [OpenAI Plugin](https://github.com/openai/chatgpt-retrieval-plugin) diff --git a/docs/content/wiki/_index.md b/docs/content/wiki/_index.md deleted file mode 100644 index 6f7ac042..00000000 --- a/docs/content/wiki/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: ML Wiki ---- - -Stay connected to what is happening in the wild west of AI! - -- Learn fundamentals -- Stay in the know about what is going on with [[News Sources]] -- [[Text Processing]] is important for AI \ No newline at end of file diff --git a/docs/i18n/de.yaml b/docs/i18n/de.yaml deleted file mode 100644 index d1f125ee..00000000 --- a/docs/i18n/de.yaml +++ /dev/null @@ -1,5 +0,0 @@ -- id: get-started - translation: "Loslegen" - -- id: on-this-page - translation: "Auf dieser Seite" diff --git a/docs/i18n/en.yaml b/docs/i18n/en.yaml deleted file mode 100644 index 25c3e93e..00000000 --- a/docs/i18n/en.yaml +++ /dev/null @@ -1,29 +0,0 @@ -- id: get-started - translation: "Get Started" - -- id: on-this-page - translation: "On this page" - -- id: search-text - translation: "Search docs..." - -- id: 404-title - translation: "Page not found :(" - -- id: 404-text - translation: "The page you are looking for doesn't exist or has been moved." - -- id: browse - translation: "Browse" - -- id: "last_updated" - translation: "Last updated" - -- id: "backlinks" - translation: "Backlinks" - -- id: "no_backlinks" - translation: "No backlinks" - -- id: "toc" - translation: "Table of Contents" diff --git a/docs/i18n/nl.yaml b/docs/i18n/nl.yaml deleted file mode 100644 index 2899edae..00000000 --- a/docs/i18n/nl.yaml +++ /dev/null @@ -1,17 +0,0 @@ -- id: get-started - translation: "Aan de slag" - -- id: on-this-page - translation: "Op deze pagina" - -- id: search-text - translation: "Zoeken..." - -- id: 404-title - translation: "Pagina niet gevonden :(" - -- id: 404-text - translation: "De gezochte pagina bestaat niet of deze is verplaatst." - -- id: browse - translation: "Browse" diff --git a/docs/images/doks.png b/docs/images/doks.png deleted file mode 100644 index 1f5d0800..00000000 Binary files a/docs/images/doks.png and /dev/null differ diff --git a/docs/images/screenshot.png b/docs/images/screenshot.png deleted file mode 100644 index 072753bb..00000000 Binary files a/docs/images/screenshot.png and /dev/null differ diff --git a/docs/images/tn.png b/docs/images/tn.png deleted file mode 100644 index ff29c682..00000000 Binary files a/docs/images/tn.png and /dev/null differ diff --git a/docs/layouts/index.html b/docs/layouts/index.html deleted file mode 100644 index 2703a948..00000000 --- a/docs/layouts/index.html +++ /dev/null @@ -1,44 +0,0 @@ -{{ define "main" }} -
-
-
-

{{ .Title }}

-
-
-

{{ .Params.lead | safeHTML }}

- Get Started -
-
-
-{{ end }} - -{{ define "sidebar-prefooter" }} -
-
-
-
-

Save anything as text, search for it.

-

You are in a ton of chat groups, documentation is scattered around your organization. Never lose information or context, effortlessly find what you are looking for, every time.

-
-
-

Simple

-

LunaBrain is designed to be usable by everything. Here, let me show you our API docs: /save, /search.

-
-
-

Extendable

-

Unlike ClosedAI, our license is Apache License 2.0. Go ahead, hack on our code!

-
-
-
-
-{{ end }} - -{{ define "sidebar-footer" }} -
-
-
- {{- .Content -}} -
-
-
-{{ end }} diff --git a/docs/layouts/partials/backlinks.html b/docs/layouts/partials/backlinks.html deleted file mode 100644 index e135e008..00000000 --- a/docs/layouts/partials/backlinks.html +++ /dev/null @@ -1,30 +0,0 @@ -
{{ i18n "backlinks" }}
- diff --git a/docs/layouts/partials/contact.html b/docs/layouts/partials/contact.html deleted file mode 100644 index 3de7d2c6..00000000 --- a/docs/layouts/partials/contact.html +++ /dev/null @@ -1,19 +0,0 @@ - -{{ $config := cond (eq $.Site.Language.Lang "en") "config" (printf "config.%s" $.Site.Language.Lang) }} -{{ $data := index $.Site.Data $config }} - -
-
- {{ $name := $data.name | default $.Site.Data.config.name }} - {{ $year := dateFormat "2006" now }} -

{{ i18n "copyright" (dict "name" $name "year" $year) | safeHTML}}

- -
-
diff --git a/docs/layouts/partials/darkmode.html b/docs/layouts/partials/darkmode.html deleted file mode 100644 index a708f13a..00000000 --- a/docs/layouts/partials/darkmode.html +++ /dev/null @@ -1,15 +0,0 @@ -
- - - -
\ No newline at end of file diff --git a/docs/layouts/partials/date-fmt.html b/docs/layouts/partials/date-fmt.html deleted file mode 100644 index e8de6b06..00000000 --- a/docs/layouts/partials/date-fmt.html +++ /dev/null @@ -1,6 +0,0 @@ -{{if .Date}} -{{.Date.Format "Jan 2, 2006"}} -{{else if .Lastmod}} -{{.Lastmod.Format "Jan 2, 2006"}} -{{else}} -{{end}} diff --git a/docs/layouts/partials/footer.html b/docs/layouts/partials/footer.html deleted file mode 100644 index 800d0a2c..00000000 --- a/docs/layouts/partials/footer.html +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/docs/layouts/partials/footerIndex.html b/docs/layouts/partials/footerIndex.html deleted file mode 100644 index 5b73fa45..00000000 --- a/docs/layouts/partials/footerIndex.html +++ /dev/null @@ -1,24 +0,0 @@ -{{if $.Site.Data.config.enableFooter}} - {{if $.Site.Data.graphConfig.enableGlobalGraph}} - - {{else}} -
- - {{end}} -{{end}} - -{{partial "contact.html" .}} diff --git a/docs/layouts/partials/github.html b/docs/layouts/partials/github.html deleted file mode 100644 index 836dc79c..00000000 --- a/docs/layouts/partials/github.html +++ /dev/null @@ -1,3 +0,0 @@ -{{if $.Site.Data.config.enableGitHubEdit}} -{{ i18n "edit_source" }} -{{end}} diff --git a/docs/layouts/partials/graph.html b/docs/layouts/partials/graph.html deleted file mode 100644 index 39ed3cfa..00000000 --- a/docs/layouts/partials/graph.html +++ /dev/null @@ -1,19 +0,0 @@ - -

{{ i18n "interactive_graph" }}

-
- -{{ $js := resources.Get "js/graph.js" | resources.Fingerprint "md5" }} - diff --git a/docs/layouts/partials/head.html b/docs/layouts/partials/head.html deleted file mode 100644 index 2892e74f..00000000 --- a/docs/layouts/partials/head.html +++ /dev/null @@ -1,254 +0,0 @@ - -{{ $config := cond (eq $.Site.Language.Lang "en") "config" (printf "config.%s" $.Site.Language.Lang) }} -{{ $data := index $.Site.Data $config }} - - - - - - - - - - - - - - - - {{ range $data.links }} - {{ if strings.Contains .link "twitter.com" }} - {{ $twitter_handle := index (split .link "/") (sub (len (split .link "/")) 1) }} - - {{ end }} - {{ end }} - - - {{ if .Title }}{{ .Title }}{{ else }}{{ $data.page_title | default $.Site.Data.config.page_title }}{{ - end }} - - - - - {{ $favicon := $data.favicon | default $.Site.Data.config.favicon | default (slice (dict "rel" "shortcut icon" "type" "image/png" "href" "icon.png")) }} - {{ $type := (printf "%T" $favicon) }} - {{ if eq $type "string" }} - {{ $favicon | safeHTML }} - {{ else }} - {{ range $favicon }} - - {{- end }} - {{ end }} - - - {{$sass := resources.Match "styles/[!_]*.scss" }} - - {{$css := slice }} - {{range $sass}} - {{$scss := . | resources.ToCSS (dict "outputStyle" "compressed") }} - {{$css = $css | append $scss}} - {{end}} - {{if $data.enableCallouts | default $.Site.Data.config.enableCallouts}} - {{$scss := resources.Get "styles/_callouts.scss" | resources.ToCSS (dict "outputStyle" "compressed") }} - {{$css = $css | append $scss}} - {{end}} - {{$finalCss := $css | resources.Concat "styles.css" | resources.Fingerprint "md5" | resources.Minify }} - - - {{$lightSyntax := resources.Get "styles/_light_syntax.scss" | resources.ToCSS (dict "outputStyle" "compressed") | resources.Fingerprint "md5" | resources.Minify }} - - - - {{$scripts := (slice "js/util.js")}} - {{range $scripts}} - {{$scriptname := .}} - {{ $s := resources.Get $scriptname | resources.ExecuteAsTemplate $scriptname . | resources.Fingerprint "md5" | resources.Minify }} - - {{end}} - {{partial "katex.html" .}} - - {{partial "mermaid.html" .}} - - - - {{ $popover := resources.Get "js/popover.js" | resources.Fingerprint "md5" | - resources.Minify }} - - - - {{ if $data.enableCodeBlockTitle | default $.Site.Data.config.enableCallouts }} - {{ $codeTitle := resources.Get "js/code-title.js" | resources.Fingerprint "md5" | resources.Minify }} - - {{end}} - - {{ if $data.enableCodeBlockCopy | default $.Site.Data.config.enableCodeBlockCopy }} - {{ $clipboard := resources.Get "js/clipboard.js" | resources.Fingerprint "md5" | resources.Minify }} - - {{ end }} - - {{ if $data.enableCallouts | default $.Site.Data.config.enableCallouts }} - {{ $callouts := resources.Get "js/callouts.js" | resources.Fingerprint "md5" | resources.Minify }} - - {{ end }} - - - {{$linkIndex := resources.Get "indices/linkIndex.json" | resources.Fingerprint - "md5" | resources.Minify | }} {{$contentIndex := resources.Get - "indices/contentIndex.json" | resources.Fingerprint "md5" | resources.Minify - }} - - {{if $data.enableSPA | default $.Site.Data.config.enableSPA}} - {{ $router := resources.Get "js/router.js" | resources.Fingerprint "md5" | - resources.Minify }} - - {{else}} - - {{end}} - {{ $trimmedURL := trim (index (split .Site.BaseURL "://") 1) "/" }} - - - - diff --git a/docs/layouts/partials/head/custom-head.html b/docs/layouts/partials/head/custom-head.html deleted file mode 100644 index 76b93b3d..00000000 --- a/docs/layouts/partials/head/custom-head.html +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/layouts/partials/header.html b/docs/layouts/partials/header.html deleted file mode 100644 index 1925a0cc..00000000 --- a/docs/layouts/partials/header.html +++ /dev/null @@ -1,11 +0,0 @@ -
- {{ $config := cond (eq $.Site.Language.Lang "en") "config" (printf "config.%s" $.Site.Language.Lang) }} -

{{ ( index $.Site.Data $config ).page_title | default $.Site.Data.config.page_title }}

-
-
-

{{ i18n "search" }}

- {{ i18n "search_icon" }}{{ i18n "icon_search" }} -
- {{partial "darkmode.html" .}} -
- diff --git a/docs/layouts/partials/katex.html b/docs/layouts/partials/katex.html deleted file mode 100644 index 8a2f40b4..00000000 --- a/docs/layouts/partials/katex.html +++ /dev/null @@ -1,14 +0,0 @@ -{{if $.Site.Data.config.enableLatex}} - - - - -{{end}} \ No newline at end of file diff --git a/docs/layouts/partials/mermaid.html b/docs/layouts/partials/mermaid.html deleted file mode 100644 index 09d348b5..00000000 --- a/docs/layouts/partials/mermaid.html +++ /dev/null @@ -1,8 +0,0 @@ -{{if $.Site.Data.config.enableMermaid}} - {{ if .Page.Store.Get "hasMermaid" }} - - {{ end }} -{{ end }} diff --git a/docs/layouts/partials/page-list.html b/docs/layouts/partials/page-list.html deleted file mode 100644 index 77ccffa2..00000000 --- a/docs/layouts/partials/page-list.html +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/docs/layouts/partials/recent.html b/docs/layouts/partials/recent.html deleted file mode 100644 index aadf97db..00000000 --- a/docs/layouts/partials/recent.html +++ /dev/null @@ -1,12 +0,0 @@ -
-

{{ i18n "recent_notes" }}

- - {{$notes := .Site.RegularPages.ByLastmod.Reverse}} - {{partial "page-list.html" (first 3 $notes)}} -
- diff --git a/docs/layouts/partials/search.html b/docs/layouts/partials/search.html deleted file mode 100644 index b5692e18..00000000 --- a/docs/layouts/partials/search.html +++ /dev/null @@ -1,18 +0,0 @@ -
-
- -
-
-
-
-{{if $.Site.Data.config.search.enableSemanticSearch}} -{{ $js := resources.Get "js/semantic-search.js" | resources.ExecuteAsTemplate "js/semantic-search.js" . | resources.Fingerprint "md5" | resources.Minify }} - -{{else}} - -{{ $js := resources.Get "js/full-text-search.js" | resources.Fingerprint "md5" | resources.Minify }} - -{{end}} - diff --git a/docs/layouts/partials/textprocessing.html b/docs/layouts/partials/textprocessing.html deleted file mode 100644 index c918247b..00000000 --- a/docs/layouts/partials/textprocessing.html +++ /dev/null @@ -1,162 +0,0 @@ -{{ $content := .Content }} -{{ $raw := .RawContent }} -{{ $page := .Page }} - -{{/* Escape slashes for Latex to fix line breaks */}} -{{$latex := findRE "(?:\\${2}([^\\$]+)\\${2})|(?:\\$([^\\$]*)\\$)" $content}} -{{range $latex}} - {{$fixed := replaceRE "\\\\(?: +|\\n)" "\\\\ " .}} - {{$content = replace $content . $fixed}} -{{end}} - -{{/* Wikilinks */}} -{{$wikilinks := $content | findRE "!?\\[\\[\\S[^\\[\\]\\|]*(?:\\|[^\\[\\]]*)?\\S\\]\\]" }} -{{$codefences := $raw | findRE "\\x60[^\\x60\\n]+\\x60"}} -{{$codeblocks := $raw | findRE "\\x60{3}[^\\x60]+\\x60{3}"}} -{{$code := union $codefences $codeblocks}} - -{{range $wikilinks}} - {{$cur := .}} - {{$incode := false}} - {{range $code}} - {{if (in . $cur)}} - {{$incode = true}} - {{end}} - {{end}} - - {{if not $incode}} - - - {{$inner := . | strings.TrimPrefix "!" | strings.TrimPrefix "[[" | strings.TrimSuffix "]]" }} - - {{$split := split $inner "|"}} - - {{$path := index $split 0}} - - {{$reference := split $path "#"}} - - {{$title := index $reference 0}} - - - {{$display := default $title (index $split 1)}} - - {{$display := index (last 1 (split $display "/")) 0}} - - - {{$searchtitle := $title }} - {{$curpage := $page.GetPage $searchtitle }} - - {{ if (eq $curpage.String "nopPage") }} - {{$searchtitle = (add $title ".md") }} - {{$curpage = $page.GetPage $searchtitle }} - {{ end }} - - {{ if (eq $curpage.String "nopPage") }} - {{$searchtitle = (replace $searchtitle "&" "&") }} - {{$searchtitle = (replace $searchtitle """ "\"") }} - {{$searchtitle = (replace $searchtitle "”" "\"") }} - {{$searchtitle = (replace $searchtitle "“" "\"") }} - {{$searchtitle = (replace $searchtitle "’" "'") }} - {{$searchtitle = (replace $searchtitle "‘" "'") }} - {{$curpage = $page.GetPage $searchtitle }} - {{ end }} - {{$relpath := relURL $path}} - - - {{if not (eq $curpage.String "nopPage") }} - {{$block := default "" (index $reference 1)}} - {{$block = strings.TrimRight "/" (cond (eq $block "") $block (printf "#%s" $block)) | urlize | lower}} - {{$href := strings.TrimRight "/" $curpage.RelPermalink}} - {{$link := printf "%s" $href $block $href $display}} - {{$content = replace $content . $link}} - - {{else if fileExists $relpath}} - {{$splitpath := split $relpath "/"}} - {{$dirname := first (sub (len $splitpath) 1) $splitpath | path.Join | urlize}} - {{$basename := index (last 1 $splitpath) 0}} - {{$href := printf "/%s/%s" $dirname $basename}} - - {{if (hasPrefix . "!")}} - {{ $embed_ext := lower (path.Ext $href) }} - - {{if in ".png .jpg .jpeg .gif .bmp .svg" $embed_ext }} - {{$width := default "auto" (index $split 1) }} - {{$link := printf "" $href $width}} - {{$content = replace $content . $link}} - - {{else if in ".mp4 .webm .ogv .mov .mkv" $embed_ext}} - {{$link := printf "" $href}} - {{$content = replace $content . $link}} - - {{else if in ".mp3 .webm .wav .m4a .ogg .3gp .flac" $embed_ext}} - {{$link := printf "" $href}} - {{$content = replace $content . $link}} - - {{else if in ".pdf" $embed_ext }} - {{$src_link := printf "[source]" $href}} - {{$iframe_link := printf "" $href}} - {{$link := printf "%s
%s" $src_link $iframe_link}} - {{$content = replace $content . $link}} - - {{else}} - {{$link := printf "%s" $href $href}} - {{$content = replace $content . $link}} - {{end}} - {{else}} - {{$link := printf "%s" $href $display}} - {{$content = replace $content . $link}} - {{end}} - - {{else}} - {{$link := printf "%s" $display}} - {{$content = replace $content . $link}} - {{end}} - - {{end}} -{{end}} - -{{/* Add jumpable anchors */}} -{{ $content = $content | replaceRE "()(.+)()" `${1}# ${3}${4}` }} - -{{/* Callouts */}} -{{if $.Site.Data.config.enableCallouts}} - {{ $content = $content | replaceRE "
" "
" }} - {{ $blockquoteclasses := findRE `\[!.+\]` $content }} - {{ $blockquoteclasses1 := findRE "(.|\n)*?
" $content }} - {{ $blockquotetags := findRE `blockquote class=callout` $content }} - {{ $counter := 0 }} - {{ $counter1 := 0 }} - {{ $finder := index $blockquoteclasses1 $counter }} - {{range $blockquotetags}} - {{ $finder = index $blockquoteclasses1 $counter }} - {{ if (in $finder "[!") }} - {{ $inner := index $blockquoteclasses $counter1 }} - {{ if (in $finder "]-") }} - {{ $inner = $inner | replaceRE `\[!([a-zA-Z]+)\]` `callout-collapsible callout-collapsed ${1}`}} - {{ else if (in $finder "]+") }} - {{ $inner = $inner | replaceRE `\[!([a-zA-Z]+)\]` `callout-collapsible ${1}`}} - {{ else}} - {{ $inner = $inner | replaceRE `\[!([a-zA-Z]+)\]` `${1}` }} - {{ end }} - {{ $inner = printf "blockquote class=\"%s-callout\"" $inner | lower}} - {{ $content = replace $content . $inner 1}} - {{ $counter1 = add $counter1 1 }} - {{ else }} - {{ $inner := print "blockquote" }} - {{ $content = replace $content . $inner 1}} - {{ end }} - {{ $counter = add $counter 1 }} - {{end}} - {{ $content = $content | replaceRE `\[![a-zA-Z]+\][-\+]?` "" }} - {{ $content = $content | replaceRE "blockquote class=callout" "blockquote" }} - {{ $content = $content | replaceRE `(?s)(
.*?)
(.*?<\/blockquote)` `${1}

${2}` }} -{{end}} - -{{/* Make ==text== into text */}} -{{$mark := findRE "==([^=\n]+)==" $content}} -{{range $mark}} - {{$fixed := printf "%s" (replace . "==" "")}} - {{$content = replace $content . $fixed}} -{{end}} - -{{ $content | safeHTML }} diff --git a/docs/layouts/partials/toc.html b/docs/layouts/partials/toc.html deleted file mode 100644 index 230e8190..00000000 --- a/docs/layouts/partials/toc.html +++ /dev/null @@ -1,9 +0,0 @@ -{{ $hasHeaders := gt (len (findRE "(.|\n)*?" .Content)) 0 }} -{{ if $hasHeaders }} -

-{{end}} diff --git a/docs/layouts/shortcodes/image.html b/docs/layouts/shortcodes/image.html deleted file mode 100644 index 6f601087..00000000 --- a/docs/layouts/shortcodes/image.html +++ /dev/null @@ -1,10 +0,0 @@ -{{ $src := .Get "src" }} -{{ $alt := .Get "alt" }} - -
- {{ $alt }} -
diff --git a/docs/layouts/wiki/_markup/render-codeblock-mermaid.html b/docs/layouts/wiki/_markup/render-codeblock-mermaid.html deleted file mode 100644 index 59641551..00000000 --- a/docs/layouts/wiki/_markup/render-codeblock-mermaid.html +++ /dev/null @@ -1,4 +0,0 @@ -
- {{- .Inner | safeHTML }} -
-{{ .Page.Store.Set "hasMermaid" true }} diff --git a/docs/layouts/wiki/_markup/render-image.html b/docs/layouts/wiki/_markup/render-image.html deleted file mode 100644 index dbcf732f..00000000 --- a/docs/layouts/wiki/_markup/render-image.html +++ /dev/null @@ -1,9 +0,0 @@ -{{$src := .Destination | safeURL }} -{{$width := index (split .Text "|") 1 | default "auto" }} -{{$external := strings.HasPrefix $src "http" }} -{{- if $external -}} -{{ .Text }} -{{- else -}} -{{$fixedUrl := (cond (hasPrefix $src "/") $src (print "/" $src)) | urlize}} -{{ .Text }} -{{- end -}} diff --git a/docs/layouts/wiki/_markup/render-link.html b/docs/layouts/wiki/_markup/render-link.html deleted file mode 100644 index be36d2e9..00000000 --- a/docs/layouts/wiki/_markup/render-link.html +++ /dev/null @@ -1,16 +0,0 @@ -{{$dashedurl := replace .Destination "%20" "-" }} -{{$external := strings.HasPrefix $dashedurl "http" }} -{{- if $external -}} -{{ .Text | safeHTML }} -{{- else -}} -{{$trimmed := strings.TrimSuffix ".md" (.Destination | safeURL)}} -{{$spacedurl := replace $trimmed "%20" " " }} -{{$fixedUrl := (cond (hasPrefix $spacedurl "/") $spacedurl (print "/" $spacedurl)) | urlize}} -{{$nonexistent := eq (.Page.GetPage $spacedurl).RelPermalink ""}} -{{$rooted := default $spacedurl ((.Page.GetPage $spacedurl).RelPermalink) }} -{{- .Text | safeHTML -}} - -{{- end -}} diff --git a/docs/layouts/wiki/baseof.html.bak b/docs/layouts/wiki/baseof.html.bak deleted file mode 100644 index 8754b1f2..00000000 --- a/docs/layouts/wiki/baseof.html.bak +++ /dev/null @@ -1,10 +0,0 @@ - - -{{ block "head" . }} -{{ end }} - - -{{ block "main" . }} -{{ end }} - - \ No newline at end of file diff --git a/docs/layouts/wiki/section.html b/docs/layouts/wiki/section.html deleted file mode 100644 index a2c7870a..00000000 --- a/docs/layouts/wiki/section.html +++ /dev/null @@ -1,19 +0,0 @@ -{{ define "main" }} -
- -
-
-
-

{{.Title}}

- {{ partial "textprocessing.html" .}} - {{with .Params.description}} -

{{.}}

- {{end}} -
Explore
- {{partial "page-list.html" .Paginator.Pages.ByLastmod.Reverse }} - {{ template "_internal/pagination.html" .}} -
-
-
-
-{{end}} diff --git a/docs/layouts/wiki/section.html.bak b/docs/layouts/wiki/section.html.bak deleted file mode 100644 index f88b85fc..00000000 --- a/docs/layouts/wiki/section.html.bak +++ /dev/null @@ -1,21 +0,0 @@ - - -{{ partial "head.html" . }} - - -{{partial "search.html" .}} -
- - {{partial "header.html" .}} -
-

{{ i18n "all_posts" . }}

- {{with .Params.description}} -

{{.}}

- {{end}} - {{partial "page-list.html" .Paginator.Pages.ByLastmod.Reverse }} - {{ template "_internal/pagination.html" .}} -
- {{partial "contact.html" .}} -
- - diff --git a/docs/layouts/wiki/single.html b/docs/layouts/wiki/single.html deleted file mode 100644 index b839c2f7..00000000 --- a/docs/layouts/wiki/single.html +++ /dev/null @@ -1,34 +0,0 @@ -{{ define "main" }} - - -{{end}} diff --git a/docs/layouts/wiki/single.html.bak b/docs/layouts/wiki/single.html.bak deleted file mode 100644 index 8c7a233a..00000000 --- a/docs/layouts/wiki/single.html.bak +++ /dev/null @@ -1,35 +0,0 @@ - - -{{ partial "head.html" . }} - - -{{partial "search.html" .}} -
- - {{partial "header.html" .}} - - {{partial "footer.html" .}} -
- - diff --git a/docs/layouts/wiki/taxonomy.html b/docs/layouts/wiki/taxonomy.html deleted file mode 100644 index 01ec325a..00000000 --- a/docs/layouts/wiki/taxonomy.html +++ /dev/null @@ -1,30 +0,0 @@ - - -{{ partial "head.html" . }} - - -{{partial "search.html" .}} -
- - {{partial "header.html" .}} -
-

{{ i18n "all_posts" . }}

- {{with .Params.description}} -

{{.}}

- {{end}} -
- {{ range .Site.Taxonomies.tags.ByCount }} -
-

{{ .Page.Title | humanize }}

-

{{ .Count }} {{ i18n "notes_count" }} {{if gt .Count 10}}({{ i18n "first_10"}}){{end}}

-
- {{ with ($.Site.GetPage (printf "/tags/%s" .Page.Title)) }} - {{partial "page-list.html" (first 10 .Pages.ByLastmod.Reverse)}} - {{ end }} - {{ end }} -
-
- {{partial "contact.html" .}} -
- - diff --git a/docs/layouts/wiki/term.html b/docs/layouts/wiki/term.html deleted file mode 100644 index 6bda201b..00000000 --- a/docs/layouts/wiki/term.html +++ /dev/null @@ -1,21 +0,0 @@ - - -{{ partial "head.html" . }} - - -{{partial "search.html" .}} -
- - {{partial "header.html" .}} -
-

{{ i18n "tag" }}: {{ .Title }}

- {{with .Params.description}} -

{{.}}

- {{end}} - {{partial "page-list.html" .Paginator.Pages}} - {{ template "_internal/pagination.html" . }} -
- {{partial "contact.html" .}} -
- - diff --git a/docs/netlify.toml b/docs/netlify.toml deleted file mode 100644 index 42992993..00000000 --- a/docs/netlify.toml +++ /dev/null @@ -1,42 +0,0 @@ -[build] - publish = "public" - functions = "functions" - -[build.environment] - NODE_VERSION = "16.16.0" - NPM_VERSION = "8.11.0" - -[context.production] - command = "npm run build" - -[context.deploy-preview] - command = "npm run build -- -b $DEPLOY_PRIME_URL" - -[context.branch-deploy] - command = "npm run build -- -b $DEPLOY_PRIME_URL" - -[context.next] - command = "npm run build" - -[context.next.environment] - HUGO_ENV = "next" - -[[plugins]] - package = "netlify-plugin-submit-sitemap" - - [plugins.inputs] - baseUrl = "https://doks-child-theme.netlify.app/" - sitemapPath = "/sitemap.xml" - ignorePeriod = 0 - providers = [ - "google", - "yandex" - ] - -[dev] - framework = "#custom" - command = "npm run start" - targetPort = 1313 - port = 8888 - publish = "public" - autoLaunch = false diff --git a/docs/package-lock.json b/docs/package-lock.json deleted file mode 100644 index 7b751097..00000000 --- a/docs/package-lock.json +++ /dev/null @@ -1,12689 +0,0 @@ -{ - "name": "doks-child-theme", - "version": "0.5.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "doks-child-theme", - "version": "0.5.0", - "hasInstallScript": true, - "license": "MIT", - "devDependencies": { - "@babel/cli": "^7.18", - "@babel/core": "^7.18", - "@babel/preset-env": "^7.18", - "@fullhuman/postcss-purgecss": "^4.1", - "@hyas/doks": "^0.5", - "@hyas/images": "^0.2.1", - "auto-changelog": "^2.4.0", - "autoprefixer": "^10.4", - "bootstrap": "^5.1", - "clipboard": "^2.0", - "eslint": "^8.19", - "exec-bin": "^1.0.0", - "flexsearch": "^0.7.21", - "highlight.js": "^11.5", - "hugo": "^0.0.3", - "hugo-installer": "^3.1", - "instant.page": "^5.1", - "katex": "^0.16", - "lazysizes": "^5.3", - "markdownlint-cli2": "^0.4.0", - "netlify-plugin-submit-sitemap": "^0.4.0", - "postcss": "^8.4", - "postcss-cli": "^10.0", - "purgecss-whitelister": "^2.4", - "shx": "^0.3", - "stylelint": "^14.9", - "stylelint-config-standard-scss": "^4.0" - }, - "engines": { - "node": ">=16.16.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/cli": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.18.6.tgz", - "integrity": "sha512-jXNHoYCbxZ8rKy+2lyy0VjcaGxS4NPbN0qc95DjIiGZQL/mTNx3o2/yI0TG+X0VrrTuwmO7zH52T9NcNdbF9Uw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.8", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0" - }, - "bin": { - "babel": "bin/babel.js", - "babel-external-helpers": "bin/babel-external-helpers.js" - }, - "engines": { - "node": ">=6.9.0" - }, - "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", - "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", - "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz", - "integrity": "sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", - "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz", - "integrity": "sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", - "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz", - "integrity": "sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz", - "integrity": "sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.8", - "@babel/types": "^7.18.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz", - "integrity": "sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-wrap-function": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz", - "integrity": "sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz", - "integrity": "sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz", - "integrity": "sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", - "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.8.tgz", - "integrity": "sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz", - "integrity": "sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz", - "integrity": "sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz", - "integrity": "sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz", - "integrity": "sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz", - "integrity": "sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz", - "integrity": "sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz", - "integrity": "sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.8.tgz", - "integrity": "sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz", - "integrity": "sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz", - "integrity": "sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz", - "integrity": "sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz", - "integrity": "sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz", - "integrity": "sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz", - "integrity": "sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz", - "integrity": "sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz", - "integrity": "sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz", - "integrity": "sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz", - "integrity": "sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.6.tgz", - "integrity": "sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.6", - "@babel/plugin-proposal-async-generator-functions": "^7.18.6", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.6", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.6", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.6", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.6", - "@babel/plugin-transform-classes": "^7.18.6", - "@babel/plugin-transform-computed-properties": "^7.18.6", - "@babel/plugin-transform-destructuring": "^7.18.6", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.6", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.6", - "@babel/plugin-transform-function-name": "^7.18.6", - "@babel/plugin-transform-literals": "^7.18.6", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.6", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.6", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.6", - "@babel/plugin-transform-typeof-symbol": "^7.18.6", - "@babel/plugin-transform-unicode-escapes": "^7.18.6", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.6", - "babel-plugin-polyfill-corejs2": "^0.3.1", - "babel-plugin-polyfill-corejs3": "^0.5.2", - "babel-plugin-polyfill-regenerator": "^0.3.1", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.8.tgz", - "integrity": "sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.7", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.8", - "@babel/types": "^7.18.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.8.tgz", - "integrity": "sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", - "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", - "dev": true, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2", - "postcss-selector-parser": "^6.0.10" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@fullhuman/postcss-purgecss": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-4.1.3.tgz", - "integrity": "sha512-jqcsyfvq09VOsMXxJMPLRF6Fhg/NNltzWKnC9qtzva+QKTxerCO4esG6je7hbnmkpZtaDyPTwMBj9bzfWorsrw==", - "dev": true, - "dependencies": { - "purgecss": "^4.1.3" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@hyas/doks": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@hyas/doks/-/doks-0.5.0.tgz", - "integrity": "sha512-fOft8l14zzWfvWRtvRHGfWFVC2G8IebibllU48YorTWAIcN3LlYuFM6qhasq/Qw5jC5Id7QohT46JBQmNhRZPg==", - "dev": true, - "hasInstallScript": true, - "engines": { - "node": ">=16.16.0" - } - }, - "node_modules/@hyas/images": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@hyas/images/-/images-0.2.1.tgz", - "integrity": "sha512-OESrxH316UeTbgpDJsRS1fnoZzOIGh2+evhaaXUBrDXhg+5YT1myR7SKf00bzi1fSbQlw5+JyOmNLll/JNHxoQ==", - "dev": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", - "dev": true, - "optional": true - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", - "dev": true, - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "node_modules/@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.3.tgz", - "integrity": "sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==", - "dev": true - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asn1": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", - "integrity": "sha512-Fh9zh3G2mZ8qM/kwsiKwL2U2FmXxVsboP4x1mXjnhKHv3SmzaBZoYvxEQJz/YS2gnCgd8xlAVWcZnQyC9qZBsA==", - "dev": true, - "engines": { - "node": ">=0.4.9" - } - }, - "node_modules/assert-plus": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", - "integrity": "sha512-brU24g7ryhRwGCI2y+1dGQmQXiZF7TtIj583S96y0jjdajIe6wn8BuXyELYhvD22dtIxDQVFk04YTJwwdwOYJw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==", - "dev": true - }, - "node_modules/auto-changelog": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/auto-changelog/-/auto-changelog-2.4.0.tgz", - "integrity": "sha512-vh17hko1c0ItsEcw6m7qPRf3m45u+XK5QyCrrBFViElZ8jnKrPC1roSznrd1fIB/0vR/zawdECCRJtTuqIXaJw==", - "dev": true, - "dependencies": { - "commander": "^7.2.0", - "handlebars": "^4.7.7", - "node-fetch": "^2.6.1", - "parse-github-url": "^1.0.2", - "semver": "^7.3.5" - }, - "bin": { - "auto-changelog": "src/index.js" - }, - "engines": { - "node": ">=8.3" - } - }, - "node_modules/auto-changelog/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/auto-changelog/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", - "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], - "dependencies": { - "browserslist": "^4.20.3", - "caniuse-lite": "^1.0.30001335", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/aws-sign": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.3.0.tgz", - "integrity": "sha512-pEMJAknifcXqXqYVXzGPIu8mJvxtJxIdpVpAs8HNS+paT+9srRUDMQn+3hULS7WbLmttcmvgMvnDcFujqXJyPw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/boom": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz", - "integrity": "sha512-OvfN8y1oAxxphzkl2SnCS+ztV/uVKTATtgLjWYg/7KwcNyf3rzpHxNQJZCKtsZd4+MteKczhWbSjtEX4bGgU9g==", - "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", - "dev": true, - "dependencies": { - "hoek": "0.9.x" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/bootstrap": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", - "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - }, - "peerDependencies": { - "@popperjs/core": "^2.10.2" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", - "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001359", - "electron-to-chromium": "^1.4.172", - "node-releases": "^2.0.5", - "update-browserslist-db": "^1.0.4" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "dev": true - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001363", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", - "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/clipboard": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", - "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", - "dev": true, - "dependencies": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone-regexp": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", - "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", - "dev": true, - "dependencies": { - "is-regexp": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/color": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/color/-/color-0.4.4.tgz", - "integrity": "sha512-Wa2mQ2xBzUsWuaADkn2hW4byONQ+ccYAntGg1OT0ZaULyf8vBgybV49dl60092xYOiFZaPIgZOAowxMqaKesQA==", - "dev": true, - "dependencies": { - "color-convert": "0.2.x", - "color-string": "0.1.x" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/color-string": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.1.3.tgz", - "integrity": "sha512-ERkoOp/s/VSrQ5OyH1Gs9LCgFWnTlQXUqAaGNBJzV2gjuunWuxISth8lOaDqfPfDIjiR9MI7WrzH1hDNRVOCfQ==", - "dev": true, - "dependencies": { - "color-convert": "0.2.x" - } - }, - "node_modules/color-string/node_modules/color-convert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.2.1.tgz", - "integrity": "sha512-FWbwpCgyRV41Vml0iKU9UmL0dVTKORnm7ZC8h8cdfvutk2bU7ZcMLtSleggScK/IpUVXILg9Pw86LhPUQyTaVg==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/color/node_modules/color-convert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.2.1.tgz", - "integrity": "sha512-FWbwpCgyRV41Vml0iKU9UmL0dVTKORnm7ZC8h8cdfvutk2bU7ZcMLtSleggScK/IpUVXILg9Pw86LhPUQyTaVg==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", - "integrity": "sha512-qfexlmLp9MyrkajQVyjEDb0Vj+KhRgR/rxLiVhaihlT+ZkX0lReqtH6Ack40CvMDERR4b5eFp3CreskpBs1Pig==", - "dev": true, - "dependencies": { - "delayed-stream": "0.0.5" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/compress-brotli": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", - "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", - "dev": true, - "dependencies": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie-jar": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.3.0.tgz", - "integrity": "sha512-dX1400pzPULr+ZovkIsDEqe7XH8xCAYGT5Dege4Eot44Qs2mS2iJmnh45TxTO5MIsCfrV/JGZVloLhm46AHxNw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/core-js-compat": { - "version": "3.23.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.3.tgz", - "integrity": "sha512-WSzUs2h2vvmKsacLHNTdpyOC9k43AEhcGoFlVgCY4L7aw98oSBKtPL6vD0/TqZjRWRQYdDSLkzZIni4Crbbiqw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.0", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cryptiles": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz", - "integrity": "sha512-gvWSbgqP+569DdslUiCelxIv3IYK5Lgmq1UrRnk+s1WxQOQ16j3GPDcjdtgL5Au65DU/xQi6q3xPtf5Kta+3IQ==", - "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", - "dev": true, - "dependencies": { - "boom": "0.4.x" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/css-functions-list": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", - "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", - "dev": true, - "engines": { - "node": ">=12.22" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ctype": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", - "integrity": "sha512-T6CEkoSV4q50zW3TlTHMbzy1E5+zlnNcY+yb7tWVYlTwPhx9LpnfAkd4wecpWknDyptp4k97LUZeInlf6jdzBg==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "dependencies": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2/node_modules/file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", - "dev": true, - "dependencies": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip/node_modules/file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decompress/node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress/node_modules/make-dir/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dev": true, - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/del/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/delayed-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", - "integrity": "sha512-v+7uBd1pqe5YtgPacIIbZ8HuHeLFVNe4mUEyFDXL6KiqzEykjbw+5mXZXpGFgNVasdL4jWKgaKIXrEHiynN1LA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", - "dev": true - }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.185", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.185.tgz", - "integrity": "sha512-9kV/isoOGpKkBt04yYNaSWIBn3187Q5VZRtoReq8oz5NY/A4XmU6cAoqgQlDp7kKJCZMRjWZ8nsQyxfpFHvfyw==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", - "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, - "dependencies": { - "acorn": "^8.7.1", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/exec-bin": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/exec-bin/-/exec-bin-1.0.0.tgz", - "integrity": "sha512-p8f8h8b6op2nR7U5rsd+zACUMfsfB+jW8HNIBD2njOQ/gF2WvBfQRo/OU6Q6f/b34WLAyePZcwMJyrDdEjB/fw==", - "dev": true, - "bin": { - "exec-bin": "bin/exec-bin.js" - } - }, - "node_modules/execall": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", - "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", - "dev": true, - "dependencies": { - "clone-regexp": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", - "dev": true - }, - "node_modules/flexsearch": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.21.tgz", - "integrity": "sha512-W7cHV7Hrwjid6lWmy0IhsWDFQboWSng25U3VVywpHOTJnnAZNPScog67G+cVpeX9f7yDD21ih0WDrMMT+JoaYg==", - "dev": true - }, - "node_modules/forever-agent": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", - "integrity": "sha512-PDG5Ef0Dob/JsZUxUltJOhm/Y9mlteAE+46y3M9RBz/Rd3QVENJ75aGRhN56yekTUboaBIkd8KVWX2NjF6+91A==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", - "integrity": "sha512-x8eE+nzFtAMA0YYlSxf/Qhq6vP1f8wSoZ7Aw1GuctBcmudCNuTUmmx45TfEplyb6cjsZO/jvh6+1VpZn24ez+w==", - "dev": true, - "dependencies": { - "async": "~0.9.0", - "combined-stream": "~0.0.4", - "mime": "~1.2.11" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/form-data/node_modules/async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw==", - "dev": true - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dev": true, - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-all": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.3.0.tgz", - "integrity": "sha512-30gCh9beSb+YSAh0vsoIlBRm4bSlyMa+5nayax1EJhjwYrCohX0aDxcxvWVe3heOrJikbHgRs75Af6kPLcumew==", - "dev": true, - "dependencies": { - "glob": "^7.1.2", - "yargs": "^15.3.1" - }, - "bin": { - "glob-all": "bin/glob-all" - } - }, - "node_modules/glob-all/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/glob-all/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/glob-all/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/glob-all/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/glob-all/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/glob-all/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/glob-all/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/glob-all/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", - "dev": true - }, - "node_modules/gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "gonzales": "bin/gonzales.js" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", - "dev": true, - "dependencies": { - "delegate": "^3.1.2" - } - }, - "node_modules/got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hawk": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz", - "integrity": "sha512-Sg+VzrI7TjUomO0rjD6UXawsj50ykn5sB/xKNW/IenxzRVyw/wt9A2FLzYpGL/r0QG5hyXY8nLx/2m8UutoDcg==", - "deprecated": "This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", - "dev": true, - "dependencies": { - "boom": "0.4.x", - "cryptiles": "0.2.x", - "hoek": "0.9.x", - "sntp": "0.2.x" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/highlight.js": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", - "integrity": "sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==", - "dev": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/hoek": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz", - "integrity": "sha512-ZZ6eGyzGjyMTmpSPYVECXy9uNfqBR7x5CavhUaLOeD6W0vWK1mp/b7O3f86XE0Mtfo9rZ6Bh3fnuw9Xr8MF9zA==", - "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hpagent": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-0.1.2.tgz", - "integrity": "sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==", - "dev": true - }, - "node_modules/html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/http-signature": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", - "integrity": "sha512-coK8uR5rq2IMj+Hen+sKPA5ldgbCc1/spPdKCL1Fw6h+D0s/2LzMcRK0Cqufs1h0ryx/niwBHGFu8HC3hwU+lA==", - "dev": true, - "dependencies": { - "asn1": "0.1.11", - "assert-plus": "^0.1.5", - "ctype": "0.5.3" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/hugo": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hugo/-/hugo-0.0.3.tgz", - "integrity": "sha512-CWJ5p8w0v6M3Z8FUbLOYUtlCZNcC3PYUQuu6rpu1yj61IIIt6qgc4weAMiu0jsoJQAUlFiXgMH4fCo4geEdvbA==", - "dev": true, - "dependencies": { - "async": "~0.2.9", - "color": "~0.4.4", - "debug": "~0.7.2", - "lodash": "~2.2.1", - "request": "~2.27.0" - } - }, - "node_modules/hugo-installer": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hugo-installer/-/hugo-installer-3.1.0.tgz", - "integrity": "sha512-E3yc8m1NRZBROOx0tx5WtUfAa9EcBbjbM4YSfy3KLGXQfHXIpbfD3oQ5YIKvih8aKuyyRtKzBZIdiOHfWAvvtg==", - "dev": true, - "dependencies": { - "decompress": "4.2.x", - "del": "6.0.x", - "got": "11.8.x", - "hpagent": "0.1.x", - "object-path": "0.11.x", - "semver": "7.3.x", - "yargs": "16.2.x" - }, - "bin": { - "hugo-installer": "bin/hugo-installer.js" - } - }, - "node_modules/hugo-installer/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hugo/node_modules/debug": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", - "integrity": "sha512-EohAb3+DSHSGx8carOSKJe8G0ayV5/i609OD0J2orCkuyae7SyZSz2aoLmQF2s0Pj5gITDebwPH7GFBlqOUQ1Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/hugo/node_modules/lodash": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.2.1.tgz", - "integrity": "sha512-rGaKzxe4Biu8YdCPD/tUkBF4/fnAqgj63A6PeAyQnH/NEKNUHgppGZUgYBYOmAZsBKwwAb343Q1Zew0RDB2jIg==", - "dev": true, - "engines": [ - "node", - "rhino" - ] - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/instant.page": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/instant.page/-/instant.page-5.1.1.tgz", - "integrity": "sha512-7FhcXQ+FSUjN8pqBFVDbwJwcXsV6mPLmQosdb1FYbZGaL9TWUPg08yHaK2RdmgnkJ6lPzEp4T3Opx/HcFDUbRQ==", - "dev": true - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha512-FUiAFCOgp7bBzHfa/fK+Uc/vqywvdN9Wg3CiTprLcE630mrhxjDS5MlBkHzeI6+bC/6bq9VX/hxBt05fPAT5WA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regexp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", - "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/katex": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.0.tgz", - "integrity": "sha512-wPRB4iUPysfH97wTgG5/tRLYxmKVq6Q4jRAWRVOUxXB1dsiv4cvcNjqabHkrOvJHM1Bpk3WrgmllSO1vIvP24w==", - "dev": true, - "funding": [ - "https://opencollective.com/katex", - "https://github.com/sponsors/katex" - ], - "dependencies": { - "commander": "^8.0.0" - }, - "bin": { - "katex": "cli.js" - } - }, - "node_modules/katex/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/keyv": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.2.tgz", - "integrity": "sha512-kn8WmodVBe12lmHpA6W8OY7SNh6wVR+Z+wZESF4iF5FCazaVXGWOtnbnvX0tMQ1bO+/TmOD9LziuYMvrIIs0xw==", - "dev": true, - "dependencies": { - "compress-brotli": "^1.3.8", - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/known-css-properties": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", - "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", - "dev": true - }, - "node_modules/lazysizes": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/lazysizes/-/lazysizes-5.3.2.tgz", - "integrity": "sha512-22UzWP+Vedi/sMeOr8O7FWimRVtiNJV2HCa+V8+peZOw6QbswN9k58VUhd7i6iK5bw5QkYrF01LJbeJe0PV8jg==", - "dev": true - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "dependencies": { - "uc.micro": "^1.0.1" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdownlint": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.25.1.tgz", - "integrity": "sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==", - "dev": true, - "dependencies": { - "markdown-it": "12.3.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/markdownlint-cli2": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.4.0.tgz", - "integrity": "sha512-EcwP5tAbyzzL3ACI0L16LqbNctmh8wNX56T+aVvIxWyTAkwbYNx2V7IheRkXS3mE7R/pnaApZ/RSXcXuzRVPjg==", - "dev": true, - "dependencies": { - "globby": "12.1.0", - "markdownlint": "0.25.1", - "markdownlint-cli2-formatter-default": "0.0.3", - "markdownlint-rule-helpers": "0.16.0", - "micromatch": "4.0.4", - "strip-json-comments": "4.0.0", - "yaml": "1.10.2" - }, - "bin": { - "markdownlint-cli2": "markdownlint-cli2.js", - "markdownlint-cli2-config": "markdownlint-cli2-config.js", - "markdownlint-cli2-fix": "markdownlint-cli2-fix.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/markdownlint-cli2-formatter-default": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-default/-/markdownlint-cli2-formatter-default-0.0.3.tgz", - "integrity": "sha512-QEAJitT5eqX1SNboOD+SO/LNBpu4P4je8JlR02ug2cLQAqmIhh8IJnSK7AcaHBHhNADqdGydnPpQOpsNcEEqCw==", - "dev": true, - "peerDependencies": { - "markdownlint-cli2": ">=0.0.4" - } - }, - "node_modules/markdownlint-cli2/node_modules/array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdownlint-cli2/node_modules/globby": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.1.0.tgz", - "integrity": "sha512-YULDaNwsoUZkRy9TWSY/M7Obh0abamTKoKzTfOI3uU+hfpX2FZqOq8LFDxsjYheF1RH7ITdArgbQnsNBFgcdBA==", - "dev": true, - "dependencies": { - "array-union": "^3.0.1", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdownlint-cli2/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/markdownlint-cli2/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdownlint-cli2/node_modules/strip-json-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-4.0.0.tgz", - "integrity": "sha512-LzWcbfMbAsEDTRmhjWIioe8GcDRl0fa35YMXFoJKDdiD/quGFmjJjdgPjFJJNwCMaLyQqFIDqCdHD2V4HfLgYA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdownlint-rule-helpers": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.16.0.tgz", - "integrity": "sha512-oEacRUVeTJ5D5hW1UYd2qExYI0oELdYK72k1TKGvIeYJIbqQWAz476NAc7LNixSySUhcNl++d02DvX0ccDk9/w==", - "dev": true - }, - "node_modules/mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, - "node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", - "integrity": "sha512-Ysa2F/nqTNGHhhm9MV8ure4+Hc+Y8AWiqUdHxsO7xu8zc92ND9f3kpALHjaP026Ft17UfxrMt95c50PLUeynBw==", - "dev": true - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/netlify-plugin-submit-sitemap": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/netlify-plugin-submit-sitemap/-/netlify-plugin-submit-sitemap-0.4.0.tgz", - "integrity": "sha512-5ntDtSKZRHaCDrDXh4sH4V7lNEEsoi01lsmSUuqJ/ikPHf0XEErjsKba8TsM3iaZRYEHI9bQse3BWgguwuwIIQ==", - "dev": true, - "dependencies": { - "node-fetch": "^3.2.3" - } - }, - "node_modules/netlify-plugin-submit-sitemap/node_modules/node-fetch": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.6.tgz", - "integrity": "sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "node_modules/node-uuid": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", - "integrity": "sha512-TkCET/3rr9mUuRp+CpO7qfgT++aAxfDRaalQhwPFzI9BY/2rCDn6OfpZOVggi1AXfTPpfkTrg5f5WQx5G1uLxA==", - "deprecated": "Use uuid module instead", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/oauth-sign": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz", - "integrity": "sha512-Tr31Sh5FnK9YKm7xTUPyDMsNOvMqkVDND0zvK/Wgj7/H9q8mpye0qG2nVzrnsvLhcsX5DtqXD0la0ks6rkPCGQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-path": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", - "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", - "dev": true, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-github-url": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", - "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", - "dev": true, - "bin": { - "parse-github-url": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-cli": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.0.0.tgz", - "integrity": "sha512-Wjy/00wBBEgQqnSToznxLWDnATznokFGXsHtF/3G8glRZpz5KYlfHcBW/VMJmWAeF2x49zjgy4izjM3/Wx1dKA==", - "dev": true, - "dependencies": { - "chokidar": "^3.3.0", - "dependency-graph": "^0.11.0", - "fs-extra": "^10.0.0", - "get-stdin": "^9.0.0", - "globby": "^13.0.0", - "picocolors": "^1.0.0", - "postcss-load-config": "^4.0.0", - "postcss-reporter": "^7.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "slash": "^4.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "postcss": "index.js" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-cli/node_modules/globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/postcss-cli/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/postcss-cli/node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/postcss-cli/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "engines": { - "node": ">= 14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", - "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true - }, - "node_modules/postcss-reporter": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", - "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "thenby": "^1.3.4" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", - "dev": true - }, - "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", - "dev": true, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" - } - }, - "node_modules/postcss-scss": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.4.tgz", - "integrity": "sha512-aBBbVyzA8b3hUL0MGrpydxxXKXFZc5Eqva0Q3V9qsBOLEMsjb6w49WfpsoWzpEgcqJGW4t7Rio8WXVU9Gd8vWg==", - "dev": true, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/purgecss": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.1.3.tgz", - "integrity": "sha512-99cKy4s+VZoXnPxaoM23e5ABcP851nC2y2GROkkjS8eJaJtlciGavd7iYAw2V84WeBqggZ12l8ef44G99HmTaw==", - "dev": true, - "dependencies": { - "commander": "^8.0.0", - "glob": "^7.1.7", - "postcss": "^8.3.5", - "postcss-selector-parser": "^6.0.6" - }, - "bin": { - "purgecss": "bin/purgecss.js" - } - }, - "node_modules/purgecss-whitelister": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/purgecss-whitelister/-/purgecss-whitelister-2.4.0.tgz", - "integrity": "sha512-O0jBUDtY9dU9tUT0vA1FvwFdkKDerxzteYaBV49JCbm+QJLFKMlIsf5Kp5cdbLatHQNjJtV8VB8eXtISoZL2Dg==", - "dev": true, - "dependencies": { - "glob-all": "^3.1.0", - "gonzales-pe": "^4.2.4", - "scss-parser": "1.0.3" - } - }, - "node_modules/purgecss/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/qs": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", - "integrity": "sha512-kN+yNdAf29Jgp+AYHUmC7X4QdJPR8czuMWLNLc0aRxkQ7tB3vJQEONKKT9ou/rW7EbqVec11srC9q9BiVbcnHA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/regexpu-core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", - "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/request": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.27.0.tgz", - "integrity": "sha512-V4AYOEmdUrf0X+CVF2hndyMzIeQ8G7LB45HER/rXZYEwNVI3QFGgLPLafQLHjqtG/ggzHEMb66Ng5IemksixsQ==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "dependencies": { - "aws-sign": "~0.3.0", - "cookie-jar": "~0.3.0", - "forever-agent": "~0.5.0", - "form-data": "~0.1.0", - "hawk": "~1.0.0", - "http-signature": "~0.10.0", - "json-stringify-safe": "~5.0.0", - "mime": "~1.2.9", - "node-uuid": "~1.4.0", - "oauth-sign": "~0.3.0", - "qs": "~0.6.0", - "tunnel-agent": "~0.3.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dev": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/scss-parser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/scss-parser/-/scss-parser-1.0.3.tgz", - "integrity": "sha512-XQKCfOJERmhn1yoNRUyxv9wgkf4DIv29Jk0m4FiZforeiCmGxrby8K3not7tQ8GK1yvtd9N0OnNimNetJ8V+zQ==", - "dev": true, - "dependencies": { - "invariant": "2.2.2", - "lodash": "^4.17.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/seek-bzip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "dev": true, - "dependencies": { - "commander": "^2.8.1" - }, - "bin": { - "seek-bunzip": "bin/seek-bunzip", - "seek-table": "bin/seek-bzip-table" - } - }, - "node_modules/seek-bzip/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==", - "dev": true - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shx": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", - "dev": true, - "dependencies": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - }, - "bin": { - "shx": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/sntp": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz", - "integrity": "sha512-bDLrKa/ywz65gCl+LmOiIhteP1bhEsAAzhfMedPoiHP3dyYnAevlaJshdqb9Yu0sRifyP/fRqSt8t+5qGIWlGQ==", - "deprecated": "This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", - "dev": true, - "dependencies": { - "hoek": "0.9.x" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, - "dependencies": { - "is-natural-number": "^4.0.1" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", - "dev": true - }, - "node_modules/stylelint": { - "version": "14.9.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.9.1.tgz", - "integrity": "sha512-RdAkJdPiLqHawCSnu21nE27MjNXaVd4WcOHA4vK5GtIGjScfhNnaOuWR2wWdfKFAvcWQPOYe311iveiVKSmwsA==", - "dev": true, - "dependencies": { - "@csstools/selector-specificity": "^2.0.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.2", - "cosmiconfig": "^7.0.1", - "css-functions-list": "^3.1.0", - "debug": "^4.3.4", - "execall": "^2.0.0", - "fast-glob": "^3.2.11", - "fastest-levenshtein": "^1.0.12", - "file-entry-cache": "^6.0.1", - "get-stdin": "^8.0.0", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.0", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.25.0", - "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.14", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.10", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", - "supports-hyperlinks": "^2.2.0", - "svg-tags": "^1.0.0", - "table": "^6.8.0", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.1" - }, - "bin": { - "stylelint": "bin/stylelint.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - } - }, - "node_modules/stylelint-config-recommended": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", - "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", - "dev": true, - "peerDependencies": { - "stylelint": "^14.4.0" - } - }, - "node_modules/stylelint-config-recommended-scss": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-6.0.0.tgz", - "integrity": "sha512-6QOe2/OzXV2AP5FE12A7+qtKdZik7Saf42SMMl84ksVBBPpTdrV+9HaCbPYiRMiwELY9hXCVdH4wlJ+YJb5eig==", - "dev": true, - "dependencies": { - "postcss-scss": "^4.0.2", - "stylelint-config-recommended": "^7.0.0", - "stylelint-scss": "^4.0.0" - }, - "peerDependencies": { - "stylelint": "^14.4.0" - } - }, - "node_modules/stylelint-config-standard": { - "version": "25.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", - "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", - "dev": true, - "dependencies": { - "stylelint-config-recommended": "^7.0.0" - }, - "peerDependencies": { - "stylelint": "^14.4.0" - } - }, - "node_modules/stylelint-config-standard-scss": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-4.0.0.tgz", - "integrity": "sha512-xizu8PTEyB6zYXBiVg6VtvUYn9m57x+6ZtaOdaxsfpbe5eagLPGNlbYnKfm/CfN69ArUpnwR6LjgsTHzlGbtXQ==", - "dev": true, - "dependencies": { - "stylelint-config-recommended-scss": "^6.0.0", - "stylelint-config-standard": "^25.0.0" - }, - "peerDependencies": { - "stylelint": "^14.4.0" - } - }, - "node_modules/stylelint-scss": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.3.0.tgz", - "integrity": "sha512-GvSaKCA3tipzZHoz+nNO7S02ZqOsdBzMiCx9poSmLlb3tdJlGddEX/8QzCOD8O7GQan9bjsvLMsO5xiw6IhhIQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0" - }, - "peerDependencies": { - "stylelint": "^14.5.1" - } - }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true - }, - "node_modules/stylelint/node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", - "dev": true - }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "dependencies": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/thenby": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", - "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", - "dev": true - }, - "node_modules/to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tunnel-agent": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz", - "integrity": "sha512-jlGqHGoKzyyjhwv/c9omAgohntThMcGtw8RV/RDLlkbbc08kni/akVxO62N8HaXMVbVsK1NCnpSK3N2xCt22ww==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "node_modules/uglify-js": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.2.tgz", - "integrity": "sha512-AaQNokTNgExWrkEYA24BTNMSjyqEXPSfhqoS0AxmHkCJ4U+Dyy5AvbGV/sqxuxficEfGGoX3zWw9R7QpLFfEsg==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", - "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/cli": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.18.6.tgz", - "integrity": "sha512-jXNHoYCbxZ8rKy+2lyy0VjcaGxS4NPbN0qc95DjIiGZQL/mTNx3o2/yI0TG+X0VrrTuwmO7zH52T9NcNdbF9Uw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.8", - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", - "dev": true - }, - "@babel/core": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", - "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", - "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", - "dev": true, - "requires": { - "@babel/types": "^7.18.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz", - "integrity": "sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", - "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz", - "integrity": "sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", - "dev": true - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", - "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz", - "integrity": "sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz", - "integrity": "sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.8", - "@babel/types": "^7.18.8" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz", - "integrity": "sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-wrap-function": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-replace-supers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz", - "integrity": "sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz", - "integrity": "sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz", - "integrity": "sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/helpers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", - "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.8.tgz", - "integrity": "sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz", - "integrity": "sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz", - "integrity": "sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz", - "integrity": "sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz", - "integrity": "sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz", - "integrity": "sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.6" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz", - "integrity": "sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz", - "integrity": "sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.8.tgz", - "integrity": "sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz", - "integrity": "sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz", - "integrity": "sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz", - "integrity": "sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz", - "integrity": "sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz", - "integrity": "sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz", - "integrity": "sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz", - "integrity": "sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz", - "integrity": "sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz", - "integrity": "sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz", - "integrity": "sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/preset-env": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.6.tgz", - "integrity": "sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.6", - "@babel/plugin-proposal-async-generator-functions": "^7.18.6", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.6", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.6", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.6", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.6", - "@babel/plugin-transform-classes": "^7.18.6", - "@babel/plugin-transform-computed-properties": "^7.18.6", - "@babel/plugin-transform-destructuring": "^7.18.6", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.6", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.6", - "@babel/plugin-transform-function-name": "^7.18.6", - "@babel/plugin-transform-literals": "^7.18.6", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.6", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.6", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.6", - "@babel/plugin-transform-typeof-symbol": "^7.18.6", - "@babel/plugin-transform-unicode-escapes": "^7.18.6", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.6", - "babel-plugin-polyfill-corejs2": "^0.3.1", - "babel-plugin-polyfill-corejs3": "^0.5.2", - "babel-plugin-polyfill-regenerator": "^0.3.1", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/traverse": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.8.tgz", - "integrity": "sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.7", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.8", - "@babel/types": "^7.18.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.8.tgz", - "integrity": "sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@csstools/selector-specificity": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", - "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", - "dev": true, - "requires": {} - }, - "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "@fullhuman/postcss-purgecss": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-4.1.3.tgz", - "integrity": "sha512-jqcsyfvq09VOsMXxJMPLRF6Fhg/NNltzWKnC9qtzva+QKTxerCO4esG6je7hbnmkpZtaDyPTwMBj9bzfWorsrw==", - "dev": true, - "requires": { - "purgecss": "^4.1.3" - } - }, - "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@hyas/doks": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@hyas/doks/-/doks-0.5.0.tgz", - "integrity": "sha512-fOft8l14zzWfvWRtvRHGfWFVC2G8IebibllU48YorTWAIcN3LlYuFM6qhasq/Qw5jC5Id7QohT46JBQmNhRZPg==", - "dev": true - }, - "@hyas/images": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@hyas/images/-/images-0.2.1.tgz", - "integrity": "sha512-OESrxH316UeTbgpDJsRS1fnoZzOIGh2+evhaaXUBrDXhg+5YT1myR7SKf00bzi1fSbQlw5+JyOmNLll/JNHxoQ==", - "dev": true - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", - "dev": true, - "optional": true - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@popperjs/core": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", - "dev": true, - "peer": true - }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==", - "dev": true - }, - "@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "@types/node": { - "version": "18.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.3.tgz", - "integrity": "sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true - }, - "asn1": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", - "integrity": "sha512-Fh9zh3G2mZ8qM/kwsiKwL2U2FmXxVsboP4x1mXjnhKHv3SmzaBZoYvxEQJz/YS2gnCgd8xlAVWcZnQyC9qZBsA==", - "dev": true - }, - "assert-plus": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", - "integrity": "sha512-brU24g7ryhRwGCI2y+1dGQmQXiZF7TtIj583S96y0jjdajIe6wn8BuXyELYhvD22dtIxDQVFk04YTJwwdwOYJw==", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==", - "dev": true - }, - "auto-changelog": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/auto-changelog/-/auto-changelog-2.4.0.tgz", - "integrity": "sha512-vh17hko1c0ItsEcw6m7qPRf3m45u+XK5QyCrrBFViElZ8jnKrPC1roSznrd1fIB/0vR/zawdECCRJtTuqIXaJw==", - "dev": true, - "requires": { - "commander": "^7.2.0", - "handlebars": "^4.7.7", - "node-fetch": "^2.6.1", - "parse-github-url": "^1.0.2", - "semver": "^7.3.5" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "autoprefixer": { - "version": "10.4.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", - "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", - "dev": true, - "requires": { - "browserslist": "^4.20.3", - "caniuse-lite": "^1.0.30001335", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "aws-sign": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.3.0.tgz", - "integrity": "sha512-pEMJAknifcXqXqYVXzGPIu8mJvxtJxIdpVpAs8HNS+paT+9srRUDMQn+3hULS7WbLmttcmvgMvnDcFujqXJyPw==", - "dev": true - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "boom": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz", - "integrity": "sha512-OvfN8y1oAxxphzkl2SnCS+ztV/uVKTATtgLjWYg/7KwcNyf3rzpHxNQJZCKtsZd4+MteKczhWbSjtEX4bGgU9g==", - "dev": true, - "requires": { - "hoek": "0.9.x" - } - }, - "bootstrap": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", - "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", - "dev": true, - "requires": {} - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", - "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001359", - "electron-to-chromium": "^1.4.172", - "node-releases": "^2.0.5", - "update-browserslist-db": "^1.0.4" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "dev": true - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "dependencies": { - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true - } - } - }, - "caniuse-lite": { - "version": "1.0.30001363", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", - "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "clipboard": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", - "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", - "dev": true, - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "clone-regexp": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", - "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", - "dev": true, - "requires": { - "is-regexp": "^2.0.0" - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "color": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/color/-/color-0.4.4.tgz", - "integrity": "sha512-Wa2mQ2xBzUsWuaADkn2hW4byONQ+ccYAntGg1OT0ZaULyf8vBgybV49dl60092xYOiFZaPIgZOAowxMqaKesQA==", - "dev": true, - "requires": { - "color-convert": "0.2.x", - "color-string": "0.1.x" - }, - "dependencies": { - "color-convert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.2.1.tgz", - "integrity": "sha512-FWbwpCgyRV41Vml0iKU9UmL0dVTKORnm7ZC8h8cdfvutk2bU7ZcMLtSleggScK/IpUVXILg9Pw86LhPUQyTaVg==", - "dev": true - } - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "color-string": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.1.3.tgz", - "integrity": "sha512-ERkoOp/s/VSrQ5OyH1Gs9LCgFWnTlQXUqAaGNBJzV2gjuunWuxISth8lOaDqfPfDIjiR9MI7WrzH1hDNRVOCfQ==", - "dev": true, - "requires": { - "color-convert": "0.2.x" - }, - "dependencies": { - "color-convert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.2.1.tgz", - "integrity": "sha512-FWbwpCgyRV41Vml0iKU9UmL0dVTKORnm7ZC8h8cdfvutk2bU7ZcMLtSleggScK/IpUVXILg9Pw86LhPUQyTaVg==", - "dev": true - } - } - }, - "colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", - "dev": true - }, - "combined-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", - "integrity": "sha512-qfexlmLp9MyrkajQVyjEDb0Vj+KhRgR/rxLiVhaihlT+ZkX0lReqtH6Ack40CvMDERR4b5eFp3CreskpBs1Pig==", - "dev": true, - "requires": { - "delayed-stream": "0.0.5" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "compress-brotli": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", - "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", - "dev": true, - "requires": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie-jar": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.3.0.tgz", - "integrity": "sha512-dX1400pzPULr+ZovkIsDEqe7XH8xCAYGT5Dege4Eot44Qs2mS2iJmnh45TxTO5MIsCfrV/JGZVloLhm46AHxNw==", - "dev": true - }, - "core-js-compat": { - "version": "3.23.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.3.tgz", - "integrity": "sha512-WSzUs2h2vvmKsacLHNTdpyOC9k43AEhcGoFlVgCY4L7aw98oSBKtPL6vD0/TqZjRWRQYdDSLkzZIni4Crbbiqw==", - "dev": true, - "requires": { - "browserslist": "^4.21.0", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "cryptiles": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz", - "integrity": "sha512-gvWSbgqP+569DdslUiCelxIv3IYK5Lgmq1UrRnk+s1WxQOQ16j3GPDcjdtgL5Au65DU/xQi6q3xPtf5Kta+3IQ==", - "dev": true, - "requires": { - "boom": "0.4.x" - } - }, - "css-functions-list": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", - "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "ctype": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", - "integrity": "sha512-T6CEkoSV4q50zW3TlTHMbzy1E5+zlnNcY+yb7tWVYlTwPhx9LpnfAkd4wecpWknDyptp4k97LUZeInlf6jdzBg==", - "dev": true - }, - "data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true - } - } - }, - "decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dev": true, - "requires": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - }, - "dependencies": { - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - } - } - } - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - } - } - }, - "decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "requires": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - } - }, - "decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "dependencies": { - "file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true - } - } - }, - "decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - } - }, - "decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", - "dev": true, - "requires": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "dependencies": { - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", - "dev": true - } - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dev": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "delayed-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", - "integrity": "sha512-v+7uBd1pqe5YtgPacIIbZ8HuHeLFVNe4mUEyFDXL6KiqzEykjbw+5mXZXpGFgNVasdL4jWKgaKIXrEHiynN1LA==", - "dev": true - }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", - "dev": true - }, - "dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "electron-to-chromium": { - "version": "1.4.185", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.185.tgz", - "integrity": "sha512-9kV/isoOGpKkBt04yYNaSWIBn3187Q5VZRtoReq8oz5NY/A4XmU6cAoqgQlDp7kKJCZMRjWZ8nsQyxfpFHvfyw==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "eslint": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", - "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, - "requires": { - "acorn": "^8.7.1", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "exec-bin": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/exec-bin/-/exec-bin-1.0.0.tgz", - "integrity": "sha512-p8f8h8b6op2nR7U5rsd+zACUMfsfB+jW8HNIBD2njOQ/gF2WvBfQRo/OU6Q6f/b34WLAyePZcwMJyrDdEjB/fw==", - "dev": true - }, - "execall": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", - "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", - "dev": true, - "requires": { - "clone-regexp": "^2.1.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "dev": true, - "requires": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", - "dev": true - }, - "flexsearch": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.21.tgz", - "integrity": "sha512-W7cHV7Hrwjid6lWmy0IhsWDFQboWSng25U3VVywpHOTJnnAZNPScog67G+cVpeX9f7yDD21ih0WDrMMT+JoaYg==", - "dev": true - }, - "forever-agent": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", - "integrity": "sha512-PDG5Ef0Dob/JsZUxUltJOhm/Y9mlteAE+46y3M9RBz/Rd3QVENJ75aGRhN56yekTUboaBIkd8KVWX2NjF6+91A==", - "dev": true - }, - "form-data": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", - "integrity": "sha512-x8eE+nzFtAMA0YYlSxf/Qhq6vP1f8wSoZ7Aw1GuctBcmudCNuTUmmx45TfEplyb6cjsZO/jvh6+1VpZn24ez+w==", - "dev": true, - "requires": { - "async": "~0.9.0", - "combined-stream": "~0.0.4", - "mime": "~1.2.11" - }, - "dependencies": { - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw==", - "dev": true - } - } - }, - "formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dev": true, - "requires": { - "fetch-blob": "^3.1.2" - } - }, - "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "dev": true - }, - "get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-all": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.3.0.tgz", - "integrity": "sha512-30gCh9beSb+YSAh0vsoIlBRm4bSlyMa+5nayax1EJhjwYrCohX0aDxcxvWVe3heOrJikbHgRs75Af6kPLcumew==", - "dev": true, - "requires": { - "glob": "^7.1.2", - "yargs": "^15.3.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", - "dev": true - }, - "gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", - "dev": true, - "requires": { - "delegate": "^3.1.2" - } - }, - "got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "dev": true, - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "hawk": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz", - "integrity": "sha512-Sg+VzrI7TjUomO0rjD6UXawsj50ykn5sB/xKNW/IenxzRVyw/wt9A2FLzYpGL/r0QG5hyXY8nLx/2m8UutoDcg==", - "dev": true, - "requires": { - "boom": "0.4.x", - "cryptiles": "0.2.x", - "hoek": "0.9.x", - "sntp": "0.2.x" - } - }, - "highlight.js": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", - "integrity": "sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==", - "dev": true - }, - "hoek": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz", - "integrity": "sha512-ZZ6eGyzGjyMTmpSPYVECXy9uNfqBR7x5CavhUaLOeD6W0vWK1mp/b7O3f86XE0Mtfo9rZ6Bh3fnuw9Xr8MF9zA==", - "dev": true - }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "hpagent": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-0.1.2.tgz", - "integrity": "sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==", - "dev": true - }, - "html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "http-signature": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", - "integrity": "sha512-coK8uR5rq2IMj+Hen+sKPA5ldgbCc1/spPdKCL1Fw6h+D0s/2LzMcRK0Cqufs1h0ryx/niwBHGFu8HC3hwU+lA==", - "dev": true, - "requires": { - "asn1": "0.1.11", - "assert-plus": "^0.1.5", - "ctype": "0.5.3" - } - }, - "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, - "hugo": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hugo/-/hugo-0.0.3.tgz", - "integrity": "sha512-CWJ5p8w0v6M3Z8FUbLOYUtlCZNcC3PYUQuu6rpu1yj61IIIt6qgc4weAMiu0jsoJQAUlFiXgMH4fCo4geEdvbA==", - "dev": true, - "requires": { - "async": "~0.2.9", - "color": "~0.4.4", - "debug": "~0.7.2", - "lodash": "~2.2.1", - "request": "~2.27.0" - }, - "dependencies": { - "debug": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", - "integrity": "sha512-EohAb3+DSHSGx8carOSKJe8G0ayV5/i609OD0J2orCkuyae7SyZSz2aoLmQF2s0Pj5gITDebwPH7GFBlqOUQ1Q==", - "dev": true - }, - "lodash": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.2.1.tgz", - "integrity": "sha512-rGaKzxe4Biu8YdCPD/tUkBF4/fnAqgj63A6PeAyQnH/NEKNUHgppGZUgYBYOmAZsBKwwAb343Q1Zew0RDB2jIg==", - "dev": true - } - } - }, - "hugo-installer": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hugo-installer/-/hugo-installer-3.1.0.tgz", - "integrity": "sha512-E3yc8m1NRZBROOx0tx5WtUfAa9EcBbjbM4YSfy3KLGXQfHXIpbfD3oQ5YIKvih8aKuyyRtKzBZIdiOHfWAvvtg==", - "dev": true, - "requires": { - "decompress": "4.2.x", - "del": "6.0.x", - "got": "11.8.x", - "hpagent": "0.1.x", - "object-path": "0.11.x", - "semver": "7.3.x", - "yargs": "16.2.x" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "instant.page": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/instant.page/-/instant.page-5.1.1.tgz", - "integrity": "sha512-7FhcXQ+FSUjN8pqBFVDbwJwcXsV6mPLmQosdb1FYbZGaL9TWUPg08yHaK2RdmgnkJ6lPzEp4T3Opx/HcFDUbRQ==", - "dev": true - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha512-FUiAFCOgp7bBzHfa/fK+Uc/vqywvdN9Wg3CiTprLcE630mrhxjDS5MlBkHzeI6+bC/6bq9VX/hxBt05fPAT5WA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, - "is-regexp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", - "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "katex": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.0.tgz", - "integrity": "sha512-wPRB4iUPysfH97wTgG5/tRLYxmKVq6Q4jRAWRVOUxXB1dsiv4cvcNjqabHkrOvJHM1Bpk3WrgmllSO1vIvP24w==", - "dev": true, - "requires": { - "commander": "^8.0.0" - }, - "dependencies": { - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true - } - } - }, - "keyv": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.2.tgz", - "integrity": "sha512-kn8WmodVBe12lmHpA6W8OY7SNh6wVR+Z+wZESF4iF5FCazaVXGWOtnbnvX0tMQ1bO+/TmOD9LziuYMvrIIs0xw==", - "dev": true, - "requires": { - "compress-brotli": "^1.3.8", - "json-buffer": "3.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "known-css-properties": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", - "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", - "dev": true - }, - "lazysizes": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/lazysizes/-/lazysizes-5.3.2.tgz", - "integrity": "sha512-22UzWP+Vedi/sMeOr8O7FWimRVtiNJV2HCa+V8+peZOw6QbswN9k58VUhd7i6iK5bw5QkYrF01LJbeJe0PV8jg==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", - "dev": true - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true - }, - "markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, - "requires": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdownlint": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.25.1.tgz", - "integrity": "sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==", - "dev": true, - "requires": { - "markdown-it": "12.3.2" - } - }, - "markdownlint-cli2": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.4.0.tgz", - "integrity": "sha512-EcwP5tAbyzzL3ACI0L16LqbNctmh8wNX56T+aVvIxWyTAkwbYNx2V7IheRkXS3mE7R/pnaApZ/RSXcXuzRVPjg==", - "dev": true, - "requires": { - "globby": "12.1.0", - "markdownlint": "0.25.1", - "markdownlint-cli2-formatter-default": "0.0.3", - "markdownlint-rule-helpers": "0.16.0", - "micromatch": "4.0.4", - "strip-json-comments": "4.0.0", - "yaml": "1.10.2" - }, - "dependencies": { - "array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true - }, - "globby": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.1.0.tgz", - "integrity": "sha512-YULDaNwsoUZkRy9TWSY/M7Obh0abamTKoKzTfOI3uU+hfpX2FZqOq8LFDxsjYheF1RH7ITdArgbQnsNBFgcdBA==", - "dev": true, - "requires": { - "array-union": "^3.0.1", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - }, - "strip-json-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-4.0.0.tgz", - "integrity": "sha512-LzWcbfMbAsEDTRmhjWIioe8GcDRl0fa35YMXFoJKDdiD/quGFmjJjdgPjFJJNwCMaLyQqFIDqCdHD2V4HfLgYA==", - "dev": true - } - } - }, - "markdownlint-cli2-formatter-default": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-default/-/markdownlint-cli2-formatter-default-0.0.3.tgz", - "integrity": "sha512-QEAJitT5eqX1SNboOD+SO/LNBpu4P4je8JlR02ug2cLQAqmIhh8IJnSK7AcaHBHhNADqdGydnPpQOpsNcEEqCw==", - "dev": true, - "requires": {} - }, - "markdownlint-rule-helpers": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.16.0.tgz", - "integrity": "sha512-oEacRUVeTJ5D5hW1UYd2qExYI0oELdYK72k1TKGvIeYJIbqQWAz476NAc7LNixSySUhcNl++d02DvX0ccDk9/w==", - "dev": true - }, - "mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, - "meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - } - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", - "integrity": "sha512-Ysa2F/nqTNGHhhm9MV8ure4+Hc+Y8AWiqUdHxsO7xu8zc92ND9f3kpALHjaP026Ft17UfxrMt95c50PLUeynBw==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "netlify-plugin-submit-sitemap": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/netlify-plugin-submit-sitemap/-/netlify-plugin-submit-sitemap-0.4.0.tgz", - "integrity": "sha512-5ntDtSKZRHaCDrDXh4sH4V7lNEEsoi01lsmSUuqJ/ikPHf0XEErjsKba8TsM3iaZRYEHI9bQse3BWgguwuwIIQ==", - "dev": true, - "requires": { - "node-fetch": "^3.2.3" - }, - "dependencies": { - "node-fetch": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.6.tgz", - "integrity": "sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw==", - "dev": true, - "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - } - } - } - }, - "node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "node-uuid": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", - "integrity": "sha512-TkCET/3rr9mUuRp+CpO7qfgT++aAxfDRaalQhwPFzI9BY/2rCDn6OfpZOVggi1AXfTPpfkTrg5f5WQx5G1uLxA==", - "dev": true - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "oauth-sign": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz", - "integrity": "sha512-Tr31Sh5FnK9YKm7xTUPyDMsNOvMqkVDND0zvK/Wgj7/H9q8mpye0qG2nVzrnsvLhcsX5DtqXD0la0ks6rkPCGQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-path": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", - "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-github-url": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", - "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", - "dev": true - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-cli": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.0.0.tgz", - "integrity": "sha512-Wjy/00wBBEgQqnSToznxLWDnATznokFGXsHtF/3G8glRZpz5KYlfHcBW/VMJmWAeF2x49zjgy4izjM3/Wx1dKA==", - "dev": true, - "requires": { - "chokidar": "^3.3.0", - "dependency-graph": "^0.11.0", - "fs-extra": "^10.0.0", - "get-stdin": "^9.0.0", - "globby": "^13.0.0", - "picocolors": "^1.0.0", - "postcss-load-config": "^4.0.0", - "postcss-reporter": "^7.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "slash": "^4.0.0", - "yargs": "^17.0.0" - }, - "dependencies": { - "globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true - } - } - }, - "postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dev": true, - "requires": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "dependencies": { - "yaml": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", - "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", - "dev": true - } - } - }, - "postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true - }, - "postcss-reporter": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", - "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", - "dev": true, - "requires": { - "picocolors": "^1.0.0", - "thenby": "^1.3.4" - } - }, - "postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", - "dev": true - }, - "postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", - "dev": true, - "requires": {} - }, - "postcss-scss": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.4.tgz", - "integrity": "sha512-aBBbVyzA8b3hUL0MGrpydxxXKXFZc5Eqva0Q3V9qsBOLEMsjb6w49WfpsoWzpEgcqJGW4t7Rio8WXVU9Gd8vWg==", - "dev": true, - "requires": {} - }, - "postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "purgecss": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.1.3.tgz", - "integrity": "sha512-99cKy4s+VZoXnPxaoM23e5ABcP851nC2y2GROkkjS8eJaJtlciGavd7iYAw2V84WeBqggZ12l8ef44G99HmTaw==", - "dev": true, - "requires": { - "commander": "^8.0.0", - "glob": "^7.1.7", - "postcss": "^8.3.5", - "postcss-selector-parser": "^6.0.6" - }, - "dependencies": { - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true - } - } - }, - "purgecss-whitelister": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/purgecss-whitelister/-/purgecss-whitelister-2.4.0.tgz", - "integrity": "sha512-O0jBUDtY9dU9tUT0vA1FvwFdkKDerxzteYaBV49JCbm+QJLFKMlIsf5Kp5cdbLatHQNjJtV8VB8eXtISoZL2Dg==", - "dev": true, - "requires": { - "glob-all": "^3.1.0", - "gonzales-pe": "^4.2.4", - "scss-parser": "1.0.3" - } - }, - "qs": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", - "integrity": "sha512-kN+yNdAf29Jgp+AYHUmC7X4QdJPR8czuMWLNLc0aRxkQ7tB3vJQEONKKT9ou/rW7EbqVec11srC9q9BiVbcnHA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "requires": { - "pify": "^2.3.0" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "regexpu-core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", - "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true - } - } - }, - "request": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.27.0.tgz", - "integrity": "sha512-V4AYOEmdUrf0X+CVF2hndyMzIeQ8G7LB45HER/rXZYEwNVI3QFGgLPLafQLHjqtG/ggzHEMb66Ng5IemksixsQ==", - "dev": true, - "requires": { - "aws-sign": "~0.3.0", - "cookie-jar": "~0.3.0", - "forever-agent": "~0.5.0", - "form-data": "~0.1.0", - "hawk": "~1.0.0", - "http-signature": "~0.10.0", - "json-stringify-safe": "~5.0.0", - "mime": "~1.2.9", - "node-uuid": "~1.4.0", - "oauth-sign": "~0.3.0", - "qs": "~0.6.0", - "tunnel-agent": "~0.3.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dev": true, - "requires": { - "lowercase-keys": "^2.0.0" - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "scss-parser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/scss-parser/-/scss-parser-1.0.3.tgz", - "integrity": "sha512-XQKCfOJERmhn1yoNRUyxv9wgkf4DIv29Jk0m4FiZforeiCmGxrby8K3not7tQ8GK1yvtd9N0OnNimNetJ8V+zQ==", - "dev": true, - "requires": { - "invariant": "2.2.2", - "lodash": "^4.17.4" - } - }, - "seek-bzip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "dev": true, - "requires": { - "commander": "^2.8.1" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "shx": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", - "dev": true, - "requires": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "sntp": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz", - "integrity": "sha512-bDLrKa/ywz65gCl+LmOiIhteP1bhEsAAzhfMedPoiHP3dyYnAevlaJshdqb9Yu0sRifyP/fRqSt8t+5qGIWlGQ==", - "dev": true, - "requires": { - "hoek": "0.9.x" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, - "requires": { - "is-natural-number": "^4.0.1" - } - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", - "dev": true - }, - "stylelint": { - "version": "14.9.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.9.1.tgz", - "integrity": "sha512-RdAkJdPiLqHawCSnu21nE27MjNXaVd4WcOHA4vK5GtIGjScfhNnaOuWR2wWdfKFAvcWQPOYe311iveiVKSmwsA==", - "dev": true, - "requires": { - "@csstools/selector-specificity": "^2.0.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.2", - "cosmiconfig": "^7.0.1", - "css-functions-list": "^3.1.0", - "debug": "^4.3.4", - "execall": "^2.0.0", - "fast-glob": "^3.2.11", - "fastest-levenshtein": "^1.0.12", - "file-entry-cache": "^6.0.1", - "get-stdin": "^8.0.0", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.0", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.25.0", - "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.14", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.10", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", - "supports-hyperlinks": "^2.2.0", - "svg-tags": "^1.0.0", - "table": "^6.8.0", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true - }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "stylelint-config-recommended": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", - "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", - "dev": true, - "requires": {} - }, - "stylelint-config-recommended-scss": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-6.0.0.tgz", - "integrity": "sha512-6QOe2/OzXV2AP5FE12A7+qtKdZik7Saf42SMMl84ksVBBPpTdrV+9HaCbPYiRMiwELY9hXCVdH4wlJ+YJb5eig==", - "dev": true, - "requires": { - "postcss-scss": "^4.0.2", - "stylelint-config-recommended": "^7.0.0", - "stylelint-scss": "^4.0.0" - } - }, - "stylelint-config-standard": { - "version": "25.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", - "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", - "dev": true, - "requires": { - "stylelint-config-recommended": "^7.0.0" - } - }, - "stylelint-config-standard-scss": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-4.0.0.tgz", - "integrity": "sha512-xizu8PTEyB6zYXBiVg6VtvUYn9m57x+6ZtaOdaxsfpbe5eagLPGNlbYnKfm/CfN69ArUpnwR6LjgsTHzlGbtXQ==", - "dev": true, - "requires": { - "stylelint-config-recommended-scss": "^6.0.0", - "stylelint-config-standard": "^25.0.0" - } - }, - "stylelint-scss": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.3.0.tgz", - "integrity": "sha512-GvSaKCA3tipzZHoz+nNO7S02ZqOsdBzMiCx9poSmLlb3tdJlGddEX/8QzCOD8O7GQan9bjsvLMsO5xiw6IhhIQ==", - "dev": true, - "requires": { - "lodash": "^4.17.21", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", - "dev": true - }, - "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "thenby": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", - "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", - "dev": true - }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true - }, - "tunnel-agent": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz", - "integrity": "sha512-jlGqHGoKzyyjhwv/c9omAgohntThMcGtw8RV/RDLlkbbc08kni/akVxO62N8HaXMVbVsK1NCnpSK3N2xCt22ww==", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "uglify-js": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.2.tgz", - "integrity": "sha512-AaQNokTNgExWrkEYA24BTNMSjyqEXPSfhqoS0AxmHkCJ4U+Dyy5AvbGV/sqxuxficEfGGoX3zWw9R7QpLFfEsg==", - "dev": true, - "optional": true - }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", - "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - } -} diff --git a/docs/package.json b/docs/package.json deleted file mode 100644 index fdab5846..00000000 --- a/docs/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "doks-child-theme", - "description": "Doks child theme", - "version": "0.5.0", - "engines": { - "node": ">=16.16.0" - }, - "browserslist": [ - "defaults" - ], - "repository": "https://github.com/h-enk/doks", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "scripts": { - "init": "shx rm -rf .git && git init -b main", - "create": "exec-bin node_modules/.bin/hugo/hugo new", - "prestart": "npm run clean", - "start": "exec-bin node_modules/.bin/hugo/hugo server --bind=0.0.0.0 --disableFastRender", - "prebuild": "npm run clean", - "build": "exec-bin node_modules/.bin/hugo/hugo --gc --minify", - "build:preview": "npm run build -D -F", - "clean": "shx rm -rf public resources", - "clean:install": "shx rm -rf package-lock.json node_modules ", - "lint": "npm run -s lint:scripts && npm run -s lint:styles && npm run -s lint:markdown", - "lint:scripts": "eslint assets/js config functions", - "lint:styles": "stylelint \"assets/scss/**/*.{css,sass,scss,sss,less}\"", - "lint:markdown": "markdownlint-cli2 \"*.md\" \"content/**/*.md\"", - "lint:markdown-fix": "markdownlint-cli2-fix \"*.md\" \"content/**/*.md\"", - "server": "exec-bin node_modules/.bin/hugo/hugo server", - "test": "npm run -s lint", - "env": "env", - "precheck": "npm version", - "check": "exec-bin node_modules/.bin/hugo/hugo version", - "copy:katex-fonts": "shx cp ./node_modules/katex/dist/fonts/* ./static/fonts/", - "postinstall": "hugo-installer --version otherDependencies.hugo --extended --destination node_modules/.bin/hugo", - "version": "auto-changelog -p && git add CHANGELOG.md", - "hugo": "exec-bin node_modules/.bin/hugo/hugo" - }, - "devDependencies": { - "@babel/cli": "^7.18", - "@babel/core": "^7.18", - "@babel/preset-env": "^7.18", - "@fullhuman/postcss-purgecss": "^4.1", - "@hyas/doks": "^0.5", - "@hyas/images": "^0.2.1", - "auto-changelog": "^2.4.0", - "autoprefixer": "^10.4", - "bootstrap": "^5.1", - "clipboard": "^2.0", - "eslint": "^8.19", - "exec-bin": "^1.0.0", - "flexsearch": "^0.7.21", - "highlight.js": "^11.5", - "hugo-installer": "^3.1", - "instant.page": "^5.1", - "katex": "^0.16", - "lazysizes": "^5.3", - "markdownlint-cli2": "^0.4.0", - "netlify-plugin-submit-sitemap": "^0.4.0", - "postcss": "^8.4", - "postcss-cli": "^10.0", - "purgecss-whitelister": "^2.4", - "shx": "^0.3", - "stylelint": "^14.9", - "stylelint-config-standard-scss": "^4.0" - }, - "otherDependencies": { - "hugo": "0.101.0" - } -} diff --git a/docs/syntax.css b/docs/syntax.css deleted file mode 100644 index 182f4c43..00000000 --- a/docs/syntax.css +++ /dev/null @@ -1,89 +0,0 @@ - -> doks-child-theme@0.5.0 hugo -> exec-bin node_modules/.bin/hugo/hugo gen chromastyles --style=monokai - -/* Background */ .bg { color: #f8f8f2; background-color: #272822; } -/* PreWrapper */ .chroma { color: #f8f8f2; background-color: #272822; } -/* Other */ .chroma .x { } -/* Error */ .chroma .err { color: #960050; background-color: #1e0010 } -/* CodeLine */ .chroma .cl { } -/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } -/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } -/* LineHighlight */ .chroma .hl { background-color: #ffffcc } -/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } -/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } -/* Line */ .chroma .line { display: flex; } -/* Keyword */ .chroma .k { color: #66d9ef } -/* KeywordConstant */ .chroma .kc { color: #66d9ef } -/* KeywordDeclaration */ .chroma .kd { color: #66d9ef } -/* KeywordNamespace */ .chroma .kn { color: #f92672 } -/* KeywordPseudo */ .chroma .kp { color: #66d9ef } -/* KeywordReserved */ .chroma .kr { color: #66d9ef } -/* KeywordType */ .chroma .kt { color: #66d9ef } -/* Name */ .chroma .n { } -/* NameAttribute */ .chroma .na { color: #a6e22e } -/* NameBuiltin */ .chroma .nb { } -/* NameBuiltinPseudo */ .chroma .bp { } -/* NameClass */ .chroma .nc { color: #a6e22e } -/* NameConstant */ .chroma .no { color: #66d9ef } -/* NameDecorator */ .chroma .nd { color: #a6e22e } -/* NameEntity */ .chroma .ni { } -/* NameException */ .chroma .ne { color: #a6e22e } -/* NameFunction */ .chroma .nf { color: #a6e22e } -/* NameFunctionMagic */ .chroma .fm { } -/* NameLabel */ .chroma .nl { } -/* NameNamespace */ .chroma .nn { } -/* NameOther */ .chroma .nx { color: #a6e22e } -/* NameProperty */ .chroma .py { } -/* NameTag */ .chroma .nt { color: #f92672 } -/* NameVariable */ .chroma .nv { } -/* NameVariableClass */ .chroma .vc { } -/* NameVariableGlobal */ .chroma .vg { } -/* NameVariableInstance */ .chroma .vi { } -/* NameVariableMagic */ .chroma .vm { } -/* Literal */ .chroma .l { color: #ae81ff } -/* LiteralDate */ .chroma .ld { color: #e6db74 } -/* LiteralString */ .chroma .s { color: #e6db74 } -/* LiteralStringAffix */ .chroma .sa { color: #e6db74 } -/* LiteralStringBacktick */ .chroma .sb { color: #e6db74 } -/* LiteralStringChar */ .chroma .sc { color: #e6db74 } -/* LiteralStringDelimiter */ .chroma .dl { color: #e6db74 } -/* LiteralStringDoc */ .chroma .sd { color: #e6db74 } -/* LiteralStringDouble */ .chroma .s2 { color: #e6db74 } -/* LiteralStringEscape */ .chroma .se { color: #ae81ff } -/* LiteralStringHeredoc */ .chroma .sh { color: #e6db74 } -/* LiteralStringInterpol */ .chroma .si { color: #e6db74 } -/* LiteralStringOther */ .chroma .sx { color: #e6db74 } -/* LiteralStringRegex */ .chroma .sr { color: #e6db74 } -/* LiteralStringSingle */ .chroma .s1 { color: #e6db74 } -/* LiteralStringSymbol */ .chroma .ss { color: #e6db74 } -/* LiteralNumber */ .chroma .m { color: #ae81ff } -/* LiteralNumberBin */ .chroma .mb { color: #ae81ff } -/* LiteralNumberFloat */ .chroma .mf { color: #ae81ff } -/* LiteralNumberHex */ .chroma .mh { color: #ae81ff } -/* LiteralNumberInteger */ .chroma .mi { color: #ae81ff } -/* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff } -/* LiteralNumberOct */ .chroma .mo { color: #ae81ff } -/* Operator */ .chroma .o { color: #f92672 } -/* OperatorWord */ .chroma .ow { color: #f92672 } -/* Punctuation */ .chroma .p { } -/* Comment */ .chroma .c { color: #75715e } -/* CommentHashbang */ .chroma .ch { color: #75715e } -/* CommentMultiline */ .chroma .cm { color: #75715e } -/* CommentSingle */ .chroma .c1 { color: #75715e } -/* CommentSpecial */ .chroma .cs { color: #75715e } -/* CommentPreproc */ .chroma .cp { color: #75715e } -/* CommentPreprocFile */ .chroma .cpf { color: #75715e } -/* Generic */ .chroma .g { } -/* GenericDeleted */ .chroma .gd { color: #f92672 } -/* GenericEmph */ .chroma .ge { font-style: italic } -/* GenericError */ .chroma .gr { } -/* GenericHeading */ .chroma .gh { } -/* GenericInserted */ .chroma .gi { color: #a6e22e } -/* GenericOutput */ .chroma .go { } -/* GenericPrompt */ .chroma .gp { } -/* GenericStrong */ .chroma .gs { font-weight: bold } -/* GenericSubheading */ .chroma .gu { color: #75715e } -/* GenericTraceback */ .chroma .gt { } -/* GenericUnderline */ .chroma .gl { } -/* TextWhitespace */ .chroma .w { } diff --git a/docs/theme.toml b/docs/theme.toml deleted file mode 100644 index dd525df0..00000000 --- a/docs/theme.toml +++ /dev/null @@ -1,14 +0,0 @@ -name = "Doks child theme" -license = "MIT" -licenselink = "https://github.com/h-enk/doks/blob/master/LICENSE" -description = "Hugo theme helping you build modern documentation websites that are secure, fast, and SEO-ready — by default." - -homepage = "https://github.com/h-enk/doks-child-theme" -demosite = "https://doks-child-theme.netlify.app" - -tags = ["landing page", "documentation", "blog", "minimal", "modern", "customizable", "search", "dark mode", "bootstrap"] -features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts", "dark mode"] - -[author] - name = "Henk Verlinde" - homepage = "https://henkverlinde.com" diff --git a/go.mod b/go.mod index b9a60014..65deaeb4 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/lunabrain-ai/lunabrain +module github.com/justshare-io/justshare go 1.21 @@ -46,6 +46,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/protoflow-labs/protoflow v0.0.0-20230908064319-917900059af2 github.com/reactivex/rxgo/v2 v2.5.0 + github.com/samber/go-gpt-3-encoder v0.3.1 github.com/samber/lo v1.38.1 github.com/sashabaranov/go-openai v1.15.2 github.com/slack-go/slack v0.12.3 @@ -222,7 +223,6 @@ require ( github.com/rs/zerolog v1.30.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/saintfish/chardet v0.0.0-20230101081208-5e3ef4b5456d // indirect - github.com/samber/go-gpt-3-encoder v0.3.1 // indirect github.com/sergi/go-diff v1.3.1 // indirect github.com/shopspring/decimal v1.2.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect diff --git a/js/dist/extension/background.js b/js/dist/extension/background.js index 44a53e25..335983f7 100644 --- a/js/dist/extension/background.js +++ b/js/dist/extension/background.js @@ -1,3 +1,3 @@ "use strict";(()=>{function x(n,e){if(!n)throw new Error(e)}var Bs=34028234663852886e22,vs=-34028234663852886e22,qs=4294967295,Cs=2147483647,Ls=-2147483648;function K(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>Cs||nqs||n<0)throw new Error("invalid uint 32: "+n)}function ut(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>Bs||n({no:r.no,name:r.name,localName:n[r.no]})),s)}function Zn(n,e,t){let s=Object.create(null),r=Object.create(null),o=[];for(let i of e){let l=ga(i);o.push(l),s[i.name]=l,r[i.no]=l}return{typeName:n,values:o,findName(i){return s[i]},findNumber(i){return r[i]}}}function pa(n,e,t){let s={};for(let r of e){let o=ga(r);s[o.localName]=o.no,s[o.no]=o.localName}return Qn(s,n,e,t),s}function ga(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}var c=class{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,t){let s=this.getType(),r=s.runtime.bin,o=r.makeReadOptions(t);return r.readMessage(this,o.readerFactory(e),e.byteLength,o),this}fromJson(e,t){let s=this.getType(),r=s.runtime.json,o=r.makeReadOptions(t);return r.readMessage(s,e,o,this),this}fromJsonString(e,t){let s;try{s=JSON.parse(e)}catch(r){throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${r instanceof Error?r.message:String(r)}`)}return this.fromJson(s,t)}toBinary(e){let t=this.getType(),s=t.runtime.bin,r=s.makeWriteOptions(e),o=r.writerFactory();return s.writeMessage(this,o,r),o.finish()}toJson(e){let t=this.getType(),s=t.runtime.json,r=s.makeWriteOptions(e);return s.writeMessage(this,r)}toJsonString(e){var t;let s=this.toJson(e);return JSON.stringify(s,null,(t=e?.prettySpaces)!==null&&t!==void 0?t:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}};function ya(n,e,t,s){var r;let o=(r=s?.localName)!==null&&r!==void 0?r:e.substring(e.lastIndexOf(".")+1),i={[o]:function(l){n.util.initFields(this),n.util.initPartial(l,this)}}[o];return Object.setPrototypeOf(i.prototype,new c),Object.assign(i,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(l,u){return new i().fromBinary(l,u)},fromJson(l,u){return new i().fromJson(l,u)},fromJsonString(l,u){return new i().fromJsonString(l,u)},equals(l,u){return n.util.equals(i,l,u)}}),i}function ct(n,e,t,s){return{syntax:n,json:e,bin:t,util:s,makeMessageType(r,o,i){return ya(this,r,o,i)},makeEnum:pa,makeEnumType:Zn,getEnumType:ma}}var m;(function(n){n[n.DOUBLE=1]="DOUBLE",n[n.FLOAT=2]="FLOAT",n[n.INT64=3]="INT64",n[n.UINT64=4]="UINT64",n[n.INT32=5]="INT32",n[n.FIXED64=6]="FIXED64",n[n.FIXED32=7]="FIXED32",n[n.BOOL=8]="BOOL",n[n.STRING=9]="STRING",n[n.BYTES=12]="BYTES",n[n.UINT32=13]="UINT32",n[n.SFIXED32=15]="SFIXED32",n[n.SFIXED64=16]="SFIXED64",n[n.SINT32=17]="SINT32",n[n.SINT64=18]="SINT64"})(m||(m={}));var v;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(v||(v={}));function Ta(){let n=0,e=0;for(let s=0;s<28;s+=7){let r=this.buf[this.pos++];if(n|=(r&127)<>4,!(t&128))return this.assertBounds(),[n,e];for(let s=3;s<=31;s+=7){let r=this.buf[this.pos++];if(e|=(r&127)<>>o,l=!(!(i>>>7)&&e==0),u=(l?i|128:i)&255;if(t.push(u),!l)return}let s=n>>>28&15|(e&7)<<4,r=!!(e>>3);if(t.push((r?s|128:s)&255),!!r){for(let o=3;o<31;o=o+7){let i=e>>>o,l=!!(i>>>7),u=(l?i|128:i)&255;if(t.push(u),!l)return}t.push(e>>>31&1)}}var dt=4294967296;function _n(n){let e=n[0]==="-";e&&(n=n.slice(1));let t=1e6,s=0,r=0;function o(i,l){let u=Number(n.slice(i,l));r*=t,s=s*t+u,s>=dt&&(r=r+(s/dt|0),s=s%dt)}return o(-24,-18),o(-18,-12),o(-12,-6),o(-6),e?Pa(s,r):tr(s,r)}function wa(n,e){let t=tr(n,e),s=t.hi&2147483648;s&&(t=Pa(t.lo,t.hi));let r=er(t.lo,t.hi);return s?"-"+r:r}function er(n,e){if({lo:n,hi:e}=Fs(n,e),e<=2097151)return String(dt*e+n);let t=n&16777215,s=(n>>>24|e<<8)&16777215,r=e>>16&65535,o=t+s*6777216+r*6710656,i=s+r*8147497,l=r*2,u=1e7;return o>=u&&(i+=Math.floor(o/u),o%=u),i>=u&&(l+=Math.floor(i/u),i%=u),l.toString()+ha(i)+ha(o)}function Fs(n,e){return{lo:n>>>0,hi:e>>>0}}function tr(n,e){return{lo:n|0,hi:e|0}}function Pa(n,e){return e=~e,n?n=~n+1:e+=1,tr(n,e)}var ha=n=>{let e=String(n);return"0000000".slice(e.length)+e};function nr(n,e){if(n>=0){for(;n>127;)e.push(n&127|128),n=n>>>7;e.push(n)}else{for(let t=0;t<9;t++)e.push(n&127|128),n=n>>7;e.push(1)}}function Ra(){let n=this.buf[this.pos++],e=n&127;if(!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,!(n&128))return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;n&128&&t<10;t++)n=this.buf[this.pos++];if(n&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function Us(){let n=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){let r=BigInt("-9223372036854775808"),o=BigInt("9223372036854775807"),i=BigInt("0"),l=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(u){let f=typeof u=="bigint"?u:BigInt(u);if(f>o||fl||fx(/^-?[0-9]+$/.test(r),`int64 invalid: ${r}`),s=r=>x(/^[0-9]+$/.test(r),`uint64 invalid: ${r}`);return{zero:"0",supported:!1,parse(r){return typeof r!="string"&&(r=r.toString()),t(r),r},uParse(r){return typeof r!="string"&&(r=r.toString()),s(r),r},enc(r){return typeof r!="string"&&(r=r.toString()),t(r),_n(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),s(r),_n(r)},dec(r,o){return wa(r,o)},uDec(r,o){return er(r,o)}}}var J=Us();var k;(function(n){n[n.Varint=0]="Varint",n[n.Bit64=1]="Bit64",n[n.LengthDelimited=2]="LengthDelimited",n[n.StartGroup=3]="StartGroup",n[n.EndGroup=4]="EndGroup",n[n.Bit32=5]="Bit32"})(k||(k={}));var mt=class{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let r=0;r>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(Ee(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return K(e),nr(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){ut(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){Ee(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){K(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return K(e),e=(e<<1^e>>31)>>>0,nr(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),s=new DataView(t.buffer),r=J.enc(e);return s.setInt32(0,r.lo,!0),s.setInt32(4,r.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),s=new DataView(t.buffer),r=J.uEnc(e);return s.setInt32(0,r.lo,!0),s.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=J.enc(e);return ft(t.lo,t.hi,this.buf),this}sint64(e){let t=J.enc(e),s=t.hi>>31,r=t.lo<<1^s,o=(t.hi<<1|t.lo>>>31)^s;return ft(r,o,this.buf),this}uint64(e){let t=J.uEnc(e);return ft(t.lo,t.hi,this.buf),this}},pt=class{constructor(e,t){this.varint64=Ta,this.uint32=Ra,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder}tag(){let e=this.uint32(),t=e>>>3,s=e&7;if(t<=0||s<0||s>5)throw new Error("illegal tag: field no "+t+" wire type "+s);return[t,s]}skip(e){let t=this.pos;switch(e){case k.Varint:for(;this.buf[this.pos++]&128;);break;case k.Bit64:this.pos+=4;case k.Bit32:this.pos+=4;break;case k.LengthDelimited:let s=this.uint32();this.pos+=s;break;case k.StartGroup:let r;for(;(r=this.tag()[1])!==k.EndGroup;)this.skip(r);break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(t,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return J.dec(...this.varint64())}uint64(){return J.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),s=-(e&1);return e=(e>>>1|(t&1)<<31)^s,t=t>>>1^s,J.dec(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return J.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return J.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}};function z(n,e){return e instanceof c||!n.fieldWrapper?e:n.fieldWrapper.wrapField(e)}var Co={"google.protobuf.DoubleValue":m.DOUBLE,"google.protobuf.FloatValue":m.FLOAT,"google.protobuf.Int64Value":m.INT64,"google.protobuf.UInt64Value":m.UINT64,"google.protobuf.Int32Value":m.INT32,"google.protobuf.UInt32Value":m.UINT32,"google.protobuf.BoolValue":m.BOOL,"google.protobuf.StringValue":m.STRING,"google.protobuf.BytesValue":m.BYTES};function L(n,e,t){if(e===t)return!0;if(n==m.BYTES){if(!(e instanceof Uint8Array)||!(t instanceof Uint8Array)||e.length!==t.length)return!1;for(let s=0;snew pt(n)},Sa={writeUnknownFields:!0,writerFactory:()=>new mt};function As(n){return n?Object.assign(Object.assign({},Ja),n):Ja}function Vs(n){return n?Object.assign(Object.assign({},Sa),n):Sa}function ht(){return{makeReadOptions:As,makeWriteOptions:Vs,listUnknownFields(n){var e;return(e=n[X])!==null&&e!==void 0?e:[]},discardUnknownFields(n){delete n[X]},writeUnknownFields(n,e){let s=n[X];if(s)for(let r of s)e.tag(r.no,r.wireType).raw(r.data)},onUnknownField(n,e,t,s){let r=n;Array.isArray(r[X])||(r[X]=[]),r[X].push({no:e,wireType:t,data:s})},readMessage(n,e,t,s,r){let o=n.getType(),i=r?e.len:e.pos+t,l,u;for(;e.pos0&&(y=Ds),P){let O=g[h];if(u==k.LengthDelimited&&p!=m.STRING&&p!=m.BYTES){let G=e.uint32()+e.pos;for(;e.pos>4,i=o,r=2;break;case 2:t[s++]=(i&15)<<4|(o&60)>>2,i=o,r=3;break;case 3:t[s++]=(i&3)<<6|o,r=0;break}}if(r==1)throw Error("invalid base64 string.");return t.subarray(0,s)},enc(n){let e="",t=0,s,r=0;for(let o=0;o>2],r=(s&3)<<4,t=1;break;case 1:e+=U[r|s>>4],r=(s&15)<<2,t=2;break;case 2:e+=U[r|s>>6],e+=U[s&63],t=0;break}return t&&(e+=U[r],e+="=",t==1&&(e+="=")),e}};var xa={ignoreUnknownFields:!1},ba={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function Hs(n){return n?Object.assign(Object.assign({},xa),n):xa}function Ys(n){return n?Object.assign(Object.assign({},ba),n):ba}function Rt(n){let e=n(js,Ia);return{makeReadOptions:Hs,makeWriteOptions:Ys,readMessage(t,s,r,o){if(s==null||Array.isArray(s)||typeof s!="object")throw new Error(`cannot decode message ${t.typeName} from JSON: ${this.debug(s)}`);o=o??new t;let i={};for(let[l,u]of Object.entries(s)){let f=t.fields.findJsonName(l);if(!f){if(!r.ignoreUnknownFields)throw new Error(`cannot decode message ${t.typeName} from JSON: key "${l}" is unknown`);continue}let g=f.localName,P=o;if(f.oneof){if(u===null&&f.kind=="scalar")continue;let h=i[f.oneof.localName];if(h)throw new Error(`cannot decode message ${t.typeName} from JSON: multiple keys for oneof "${f.oneof.name}" present: "${h}", "${l}"`);i[f.oneof.localName]=l,P=P[f.oneof.localName]={case:g},g="value"}if(f.repeated){if(u===null)continue;if(!Array.isArray(u))throw new Error(`cannot decode field ${t.typeName}.${f.name} from JSON: ${this.debug(u)}`);let h=P[g];for(let p of u){if(p===null)throw new Error(`cannot decode field ${t.typeName}.${f.name} from JSON: ${this.debug(p)}`);let y;switch(f.kind){case"message":y=f.T.fromJson(p,r);break;case"enum":if(y=ar(f.T,p,r.ignoreUnknownFields),y===void 0)continue;break;case"scalar":try{y=Be(f.T,p,f.L)}catch(w){let S=`cannot decode field ${t.typeName}.${f.name} from JSON: ${this.debug(p)}`;throw w instanceof Error&&w.message.length>0&&(S+=`: ${w.message}`),new Error(S)}break}h.push(y)}}else if(f.kind=="map"){if(u===null)continue;if(Array.isArray(u)||typeof u!="object")throw new Error(`cannot decode field ${t.typeName}.${f.name} from JSON: ${this.debug(u)}`);let h=P[g];for(let[p,y]of Object.entries(u)){if(y===null)throw new Error(`cannot decode field ${t.typeName}.${f.name} from JSON: map value null`);let w;switch(f.V.kind){case"message":w=f.V.T.fromJson(y,r);break;case"enum":if(w=ar(f.V.T,y,r.ignoreUnknownFields),w===void 0)continue;break;case"scalar":try{w=Be(f.V.T,y,v.BIGINT)}catch(S){let E=`cannot decode map value for field ${t.typeName}.${f.name} from JSON: ${this.debug(u)}`;throw S instanceof Error&&S.message.length>0&&(E+=`: ${S.message}`),new Error(E)}break}try{h[Be(f.K,f.K==m.BOOL?p=="true"?!0:p=="false"?!1:p:p,v.BIGINT).toString()]=w}catch(S){let E=`cannot decode map key for field ${t.typeName}.${f.name} from JSON: ${this.debug(u)}`;throw S instanceof Error&&S.message.length>0&&(E+=`: ${S.message}`),new Error(E)}}}else switch(f.kind){case"message":let h=f.T;if(u===null&&h.typeName!="google.protobuf.Value"){if(f.oneof)throw new Error(`cannot decode field ${t.typeName}.${f.name} from JSON: null is invalid for oneof field "${l}"`);continue}P[g]instanceof c?P[g].fromJson(u,r):(P[g]=h.fromJson(u,r),h.fieldWrapper&&!f.oneof&&(P[g]=h.fieldWrapper.unwrapField(P[g])));break;case"enum":let p=ar(f.T,u,r.ignoreUnknownFields);p!==void 0&&(P[g]=p);break;case"scalar":try{P[g]=Be(f.T,u,f.L)}catch(y){let w=`cannot decode field ${t.typeName}.${f.name} from JSON: ${this.debug(u)}`;throw y instanceof Error&&y.message.length>0&&(w+=`: ${y.message}`),new Error(w)}break}}return o},writeMessage(t,s){let r=t.getType(),o={},i;try{for(let l of r.fields.byMember()){let u;if(l.kind=="oneof"){let f=t[l.localName];if(f.value===void 0)continue;if(i=l.findField(f.case),!i)throw"oneof case not found: "+f.case;u=e(i,f.value,s)}else i=l,u=e(i,t[i.localName],s);u!==void 0&&(o[s.useProtoFieldName?i.name:i.jsonName]=u)}}catch(l){let u=i?`cannot encode field ${r.typeName}.${i.name} to JSON`:`cannot encode message ${r.typeName} to JSON`,f=l instanceof Error?l.message:String(l);throw new Error(u+(f.length>0?`: ${f}`:""))}return o},readScalar:Be,writeScalar:Ia,debug:Oa}}function Oa(n){if(n===null)return"null";switch(typeof n){case"object":return Array.isArray(n)?"array":"object";case"string":return n.length>100?"string":`"${n.split('"').join('\\"')}"`;default:return String(n)}}function Be(n,e,t){switch(n){case m.DOUBLE:case m.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""||typeof e=="string"&&e.trim().length!==e.length||typeof e!="string"&&typeof e!="number")break;let s=Number(e);if(Number.isNaN(s)||!Number.isFinite(s))break;return n==m.FLOAT&&ut(s),s;case m.INT32:case m.FIXED32:case m.SFIXED32:case m.SINT32:case m.UINT32:if(e===null)return 0;let r;if(typeof e=="number"?r=e:typeof e=="string"&&e.length>0&&e.trim().length===e.length&&(r=Number(e)),r===void 0)break;return n==m.UINT32?Ee(r):K(r),r;case m.INT64:case m.SFIXED64:case m.SINT64:if(e===null)return J.zero;if(typeof e!="number"&&typeof e!="string")break;let o=J.parse(e);return t?o.toString():o;case m.FIXED64:case m.UINT64:if(e===null)return J.zero;if(typeof e!="number"&&typeof e!="string")break;let i=J.uParse(e);return t?i.toString():i;case m.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case m.STRING:if(e===null)return"";if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case m.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return D.dec(e)}throw new Error}function ar(n,e,t){if(e===null)return 0;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":let s=n.findName(e);if(s||t)return s?.no;break}throw new Error(`cannot decode enum ${n.typeName} from JSON: ${Oa(e)}`)}function js(n,e,t,s){var r;if(e===void 0)return e;if(e===0&&!t)return;if(s)return e;if(n.typeName=="google.protobuf.NullValue")return null;let o=n.findNumber(e);return(r=o?.name)!==null&&r!==void 0?r:e}function Ia(n,e,t){if(e!==void 0)switch(n){case m.INT32:case m.SFIXED32:case m.SINT32:case m.FIXED32:case m.UINT32:return x(typeof e=="number"),e!=0||t?e:void 0;case m.FLOAT:case m.DOUBLE:return x(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e!==0||t?e:void 0;case m.STRING:return x(typeof e=="string"),e.length>0||t?e:void 0;case m.BOOL:return x(typeof e=="boolean"),e||t?e:void 0;case m.UINT64:case m.FIXED64:case m.INT64:case m.SFIXED64:case m.SINT64:return x(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),t||e!=0?e.toString(10):void 0;case m.BYTES:return x(e instanceof Uint8Array),t||e.byteLength>0?D.enc(e):void 0}}function Na(){return Rt((n,e)=>function(s,r,o){if(s.kind=="map"){let i={};switch(s.V.kind){case"scalar":for(let[u,f]of Object.entries(r)){let g=e(s.V.T,f,!0);x(g!==void 0),i[u.toString()]=g}break;case"message":for(let[u,f]of Object.entries(r))i[u.toString()]=f.toJson(o);break;case"enum":let l=s.V.T;for(let[u,f]of Object.entries(r)){x(f===void 0||typeof f=="number");let g=n(l,f,!0,o.enumAsInteger);x(g!==void 0),i[u.toString()]=g}break}return o.emitDefaultValues||Object.keys(i).length>0?i:void 0}else if(s.repeated){let i=[];switch(s.kind){case"scalar":for(let l=0;l0?i:void 0}else switch(s.kind){case"scalar":return e(s.T,r,!!s.oneof||s.opt||o.emitDefaultValues);case"enum":return n(s.T,r,!!s.oneof||s.opt||o.emitDefaultValues,o.enumAsInteger);case"message":return r!==void 0?z(s.T,r).toJson(o):void 0}})}function St(){return{setEnumType:Qn,initPartial(n,e){if(n===void 0)return;let t=e.getType();for(let s of t.fields.byMember()){let r=s.localName,o=e,i=n;if(i[r]!==void 0)switch(s.kind){case"oneof":let l=i[r].case;if(l===void 0)continue;let u=s.findField(l),f=i[r].value;u&&u.kind=="message"&&!(f instanceof u.T)?f=new u.T(f):u&&u.kind==="scalar"&&u.T===m.BYTES&&(f=ve(f)),o[r]={case:l,value:f};break;case"scalar":case"enum":let g=i[r];s.T===m.BYTES&&(g=s.repeated?g.map(ve):ve(g)),o[r]=g;break;case"map":switch(s.V.kind){case"scalar":case"enum":if(s.V.T===m.BYTES)for(let[p,y]of Object.entries(i[r]))o[r][p]=ve(y);else Object.assign(o[r],i[r]);break;case"message":let h=s.V.T;for(let p of Object.keys(i[r])){let y=i[r][p];h.fieldWrapper||(y=new h(y)),o[r][p]=y}break}break;case"message":let P=s.T;if(s.repeated)o[r]=i[r].map(h=>h instanceof P?h:new P(h));else if(i[r]!==void 0){let h=i[r];P.fieldWrapper?P.typeName==="google.protobuf.BytesValue"?o[r]=ve(h):o[r]=h:o[r]=h instanceof P?h:new P(h)}break}}},equals(n,e,t){return e===t?!0:!e||!t?!1:n.fields.byMember().every(s=>{let r=e[s.localName],o=t[s.localName];if(s.repeated){if(r.length!==o.length)return!1;switch(s.kind){case"message":return r.every((i,l)=>s.T.equals(i,o[l]));case"scalar":return r.every((i,l)=>L(s.T,i,o[l]));case"enum":return r.every((i,l)=>L(m.INT32,i,o[l]))}throw new Error(`repeated cannot contain ${s.kind}`)}switch(s.kind){case"message":return s.T.equals(r,o);case"enum":return L(m.INT32,r,o);case"scalar":return L(s.T,r,o);case"oneof":if(r.case!==o.case)return!1;let i=s.findField(r.case);if(i===void 0)return!0;switch(i.kind){case"message":return i.T.equals(r.value,o.value);case"enum":return L(m.INT32,r.value,o.value);case"scalar":return L(i.T,r.value,o.value)}throw new Error(`oneof cannot contain ${i.kind}`);case"map":let l=Object.keys(r).concat(Object.keys(o));switch(s.V.kind){case"message":let u=s.V.T;return l.every(g=>u.equals(r[g],o[g]));case"enum":return l.every(g=>L(m.INT32,r[g],o[g]));case"scalar":let f=s.V.T;return l.every(g=>L(f,r[g],o[g]))}break}})},clone(n){let e=n.getType(),t=new e,s=t;for(let r of e.fields.byMember()){let o=n[r.localName],i;if(r.repeated)i=o.map(Jt);else if(r.kind=="map"){i=s[r.localName];for(let[l,u]of Object.entries(o))i[l]=Jt(u)}else r.kind=="oneof"?i=r.findField(o.case)?{case:o.case,value:Jt(o.value)}:{case:void 0}:i=Jt(o);s[r.localName]=i}return t}}}function Jt(n){if(n===void 0)return n;if(n instanceof c)return n.clone();if(n instanceof Uint8Array){let e=new Uint8Array(n.byteLength);return e.set(n),e}return n}function ve(n){return n instanceof Uint8Array?n:new Uint8Array(n)}var Z=class{constructor(e,t){this._fields=e,this._normalizer=t}findJsonName(e){if(!this.jsonNames){let t={};for(let s of this.list())t[s.jsonName]=t[s.name]=s;this.jsonNames=t}return this.jsonNames[e]}find(e){if(!this.numbers){let t={};for(let s of this.list())t[s.no]=s;this.numbers=t}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,t)=>e.no-t.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];let e=this.members,t;for(let s of this.list())s.oneof?s.oneof!==t&&(t=s.oneof,e.push(t)):e.push(s)}return this.members}};function qe(n,e){let t=Ma(n);return e?t:Ks(Ws(t))}function Ea(n){return qe(n,!1)}var kt=Ma;function Ma(n){let e=!1,t=[];for(let s=0;s`${n}$`,Ws=n=>$s.has(n)?Ba(n):n,Ks=n=>zs.has(n)?Ba(n):n;var _=class{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=Ea(e)}addField(e){x(e.oneof===this,`field ${e.name} not one of ${this.name}`),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let t=0;t0?`: ${l}`:""))}return t.writeUnknownFields&&this.writeUnknownFields(n,e),e}})}function qa(){return Rt((n,e)=>function(s,r,o){if(s.kind=="map"){let i={};switch(s.V.kind){case"scalar":for(let[u,f]of Object.entries(r)){let g=e(s.V.T,f,!0);x(g!==void 0),i[u.toString()]=g}break;case"message":for(let[u,f]of Object.entries(r))i[u.toString()]=f.toJson(o);break;case"enum":let l=s.V.T;for(let[u,f]of Object.entries(r)){x(f===void 0||typeof f=="number");let g=n(l,f,!0,o.enumAsInteger);x(g!==void 0),i[u.toString()]=g}break}return o.emitDefaultValues||Object.keys(i).length>0?i:void 0}else if(s.repeated){let i=[];switch(s.kind){case"scalar":for(let l=0;l0?i:void 0}else{if(r===void 0){if(!s.oneof&&!s.opt)throw"required field not set";return}switch(s.kind){case"scalar":return e(s.T,r,!0);case"enum":return n(s.T,r,!0,o.enumAsInteger);case"message":return z(s.T,r).toJson(o)}}})}var d=ct("proto2",qa(),va(),Object.assign(Object.assign({},St()),{newFieldList(n){return new Z(n,Qs)},initFields(n){for(let e of n.getType().fields.byMember()){let t=e.localName,s=n;if(e.repeated){s[t]=[];continue}switch(e.kind){case"oneof":s[t]={case:void 0};break;case"map":s[t]={};break;case"scalar":case"enum":case"message":break}}}}));function Qs(n){var e,t,s,r,o;let i=[],l;for(let u of typeof n=="function"?n():n){let f=u;if(f.localName=qe(u.name,u.oneof!==void 0),f.jsonName=(e=u.jsonName)!==null&&e!==void 0?e:kt(u.name),f.repeated=(t=u.repeated)!==null&&t!==void 0?t:!1,u.kind=="scalar"&&(f.L=(s=u.L)!==null&&s!==void 0?s:v.BIGINT),u.oneof!==void 0){let g=typeof u.oneof=="string"?u.oneof:u.oneof.name;(!l||l.name!=g)&&(l=new _(g)),f.oneof=l,l.addField(f)}u.kind=="message"&&(f.delimited=(r=u.delimited)!==null&&r!==void 0?r:!1),f.packed=(o=u.packed)!==null&&o!==void 0?o:!1,i.push(f)}return i}var T;(function(n){n[n.Unary=0]="Unary",n[n.ServerStreaming=1]="ServerStreaming",n[n.ClientStreaming=2]="ClientStreaming",n[n.BiDiStreaming=3]="BiDiStreaming"})(T||(T={}));var Ce;(function(n){n[n.NoSideEffects=1]="NoSideEffects",n[n.Idempotent=2]="Idempotent"})(Ce||(Ce={}));var H;(function(n){n[n.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",n[n.EDITION_PROTO2=998]="EDITION_PROTO2",n[n.EDITION_PROTO3=999]="EDITION_PROTO3",n[n.EDITION_2023=1e3]="EDITION_2023",n[n.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",n[n.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",n[n.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",n[n.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",n[n.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY"})(H||(H={}));d.util.setEnumType(H,"google.protobuf.Edition",[{no:0,name:"EDITION_UNKNOWN"},{no:998,name:"EDITION_PROTO2"},{no:999,name:"EDITION_PROTO3"},{no:1e3,name:"EDITION_2023"},{no:1,name:"EDITION_1_TEST_ONLY"},{no:2,name:"EDITION_2_TEST_ONLY"},{no:99997,name:"EDITION_99997_TEST_ONLY"},{no:99998,name:"EDITION_99998_TEST_ONLY"},{no:99999,name:"EDITION_99999_TEST_ONLY"}]);var Le=class n extends c{constructor(e){super(),this.file=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Le.runtime=d;Le.typeName="google.protobuf.FileDescriptorSet";Le.fields=d.util.newFieldList(()=>[{no:1,name:"file",kind:"message",T:ee,repeated:!0}]);var ee=class n extends c{constructor(e){super(),this.dependency=[],this.publicDependency=[],this.weakDependency=[],this.messageType=[],this.enumType=[],this.service=[],this.extension=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ee.runtime=d;ee.typeName="google.protobuf.FileDescriptorProto";ee.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"package",kind:"scalar",T:9,opt:!0},{no:3,name:"dependency",kind:"scalar",T:9,repeated:!0},{no:10,name:"public_dependency",kind:"scalar",T:5,repeated:!0},{no:11,name:"weak_dependency",kind:"scalar",T:5,repeated:!0},{no:4,name:"message_type",kind:"message",T:q,repeated:!0},{no:5,name:"enum_type",kind:"message",T:A,repeated:!0},{no:6,name:"service",kind:"message",T:le,repeated:!0},{no:7,name:"extension",kind:"message",T:Y,repeated:!0},{no:8,name:"options",kind:"message",T:ce,opt:!0},{no:9,name:"source_code_info",kind:"message",T:Re,opt:!0},{no:12,name:"syntax",kind:"scalar",T:9,opt:!0},{no:14,name:"edition",kind:"enum",T:d.getEnumType(H),opt:!0}]);var q=class n extends c{constructor(e){super(),this.field=[],this.extension=[],this.nestedType=[],this.enumType=[],this.extensionRange=[],this.oneofDecl=[],this.reservedRange=[],this.reservedName=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};q.runtime=d;q.typeName="google.protobuf.DescriptorProto";q.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"field",kind:"message",T:Y,repeated:!0},{no:6,name:"extension",kind:"message",T:Y,repeated:!0},{no:3,name:"nested_type",kind:"message",T:q,repeated:!0},{no:4,name:"enum_type",kind:"message",T:A,repeated:!0},{no:5,name:"extension_range",kind:"message",T:te,repeated:!0},{no:8,name:"oneof_decl",kind:"message",T:se,repeated:!0},{no:7,name:"options",kind:"message",T:de,opt:!0},{no:9,name:"reserved_range",kind:"message",T:ne,repeated:!0},{no:10,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var te=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};te.runtime=d;te.typeName="google.protobuf.DescriptorProto.ExtensionRange";te.fields=d.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:re,opt:!0}]);var ne=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ne.runtime=d;ne.typeName="google.protobuf.DescriptorProto.ReservedRange";ne.fields=d.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var re=class n extends c{constructor(e){super(),this.uninterpretedOption=[],this.declaration=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};re.runtime=d;re.typeName="google.protobuf.ExtensionRangeOptions";re.fields=d.util.newFieldList(()=>[{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0},{no:2,name:"declaration",kind:"message",T:ae,repeated:!0},{no:50,name:"features",kind:"message",T:M,opt:!0},{no:3,name:"verification",kind:"enum",T:d.getEnumType(Fe),opt:!0,default:Fe.UNVERIFIED}]);var Fe;(function(n){n[n.DECLARATION=0]="DECLARATION",n[n.UNVERIFIED=1]="UNVERIFIED"})(Fe||(Fe={}));d.util.setEnumType(Fe,"google.protobuf.ExtensionRangeOptions.VerificationState",[{no:0,name:"DECLARATION"},{no:1,name:"UNVERIFIED"}]);var ae=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ae.runtime=d;ae.typeName="google.protobuf.ExtensionRangeOptions.Declaration";ae.fields=d.util.newFieldList(()=>[{no:1,name:"number",kind:"scalar",T:5,opt:!0},{no:2,name:"full_name",kind:"scalar",T:9,opt:!0},{no:3,name:"type",kind:"scalar",T:9,opt:!0},{no:5,name:"reserved",kind:"scalar",T:8,opt:!0},{no:6,name:"repeated",kind:"scalar",T:8,opt:!0}]);var Y=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Y.runtime=d;Y.typeName="google.protobuf.FieldDescriptorProto";Y.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:3,name:"number",kind:"scalar",T:5,opt:!0},{no:4,name:"label",kind:"enum",T:d.getEnumType(bt),opt:!0},{no:5,name:"type",kind:"enum",T:d.getEnumType(xt),opt:!0},{no:6,name:"type_name",kind:"scalar",T:9,opt:!0},{no:2,name:"extendee",kind:"scalar",T:9,opt:!0},{no:7,name:"default_value",kind:"scalar",T:9,opt:!0},{no:9,name:"oneof_index",kind:"scalar",T:5,opt:!0},{no:10,name:"json_name",kind:"scalar",T:9,opt:!0},{no:8,name:"options",kind:"message",T:fe,opt:!0},{no:17,name:"proto3_optional",kind:"scalar",T:8,opt:!0}]);var xt;(function(n){n[n.DOUBLE=1]="DOUBLE",n[n.FLOAT=2]="FLOAT",n[n.INT64=3]="INT64",n[n.UINT64=4]="UINT64",n[n.INT32=5]="INT32",n[n.FIXED64=6]="FIXED64",n[n.FIXED32=7]="FIXED32",n[n.BOOL=8]="BOOL",n[n.STRING=9]="STRING",n[n.GROUP=10]="GROUP",n[n.MESSAGE=11]="MESSAGE",n[n.BYTES=12]="BYTES",n[n.UINT32=13]="UINT32",n[n.ENUM=14]="ENUM",n[n.SFIXED32=15]="SFIXED32",n[n.SFIXED64=16]="SFIXED64",n[n.SINT32=17]="SINT32",n[n.SINT64=18]="SINT64"})(xt||(xt={}));d.util.setEnumType(xt,"google.protobuf.FieldDescriptorProto.Type",[{no:1,name:"TYPE_DOUBLE"},{no:2,name:"TYPE_FLOAT"},{no:3,name:"TYPE_INT64"},{no:4,name:"TYPE_UINT64"},{no:5,name:"TYPE_INT32"},{no:6,name:"TYPE_FIXED64"},{no:7,name:"TYPE_FIXED32"},{no:8,name:"TYPE_BOOL"},{no:9,name:"TYPE_STRING"},{no:10,name:"TYPE_GROUP"},{no:11,name:"TYPE_MESSAGE"},{no:12,name:"TYPE_BYTES"},{no:13,name:"TYPE_UINT32"},{no:14,name:"TYPE_ENUM"},{no:15,name:"TYPE_SFIXED32"},{no:16,name:"TYPE_SFIXED64"},{no:17,name:"TYPE_SINT32"},{no:18,name:"TYPE_SINT64"}]);var bt;(function(n){n[n.OPTIONAL=1]="OPTIONAL",n[n.REPEATED=3]="REPEATED",n[n.REQUIRED=2]="REQUIRED"})(bt||(bt={}));d.util.setEnumType(bt,"google.protobuf.FieldDescriptorProto.Label",[{no:1,name:"LABEL_OPTIONAL"},{no:3,name:"LABEL_REPEATED"},{no:2,name:"LABEL_REQUIRED"}]);var se=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};se.runtime=d;se.typeName="google.protobuf.OneofDescriptorProto";se.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"options",kind:"message",T:pe,opt:!0}]);var A=class n extends c{constructor(e){super(),this.value=[],this.reservedRange=[],this.reservedName=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};A.runtime=d;A.typeName="google.protobuf.EnumDescriptorProto";A.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"value",kind:"message",T:ie,repeated:!0},{no:3,name:"options",kind:"message",T:ge,opt:!0},{no:4,name:"reserved_range",kind:"message",T:oe,repeated:!0},{no:5,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var oe=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};oe.runtime=d;oe.typeName="google.protobuf.EnumDescriptorProto.EnumReservedRange";oe.fields=d.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var ie=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ie.runtime=d;ie.typeName="google.protobuf.EnumValueDescriptorProto";ie.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"number",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:ye,opt:!0}]);var le=class n extends c{constructor(e){super(),this.method=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};le.runtime=d;le.typeName="google.protobuf.ServiceDescriptorProto";le.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"method",kind:"message",T:ue,repeated:!0},{no:3,name:"options",kind:"message",T:he,opt:!0}]);var ue=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ue.runtime=d;ue.typeName="google.protobuf.MethodDescriptorProto";ue.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"input_type",kind:"scalar",T:9,opt:!0},{no:3,name:"output_type",kind:"scalar",T:9,opt:!0},{no:4,name:"options",kind:"message",T:Te,opt:!0},{no:5,name:"client_streaming",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"server_streaming",kind:"scalar",T:8,opt:!0,default:!1}]);var ce=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ce.runtime=d;ce.typeName="google.protobuf.FileOptions";ce.fields=d.util.newFieldList(()=>[{no:1,name:"java_package",kind:"scalar",T:9,opt:!0},{no:8,name:"java_outer_classname",kind:"scalar",T:9,opt:!0},{no:10,name:"java_multiple_files",kind:"scalar",T:8,opt:!0,default:!1},{no:20,name:"java_generate_equals_and_hash",kind:"scalar",T:8,opt:!0},{no:27,name:"java_string_check_utf8",kind:"scalar",T:8,opt:!0,default:!1},{no:9,name:"optimize_for",kind:"enum",T:d.getEnumType(Ue),opt:!0,default:Ue.SPEED},{no:11,name:"go_package",kind:"scalar",T:9,opt:!0},{no:16,name:"cc_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"java_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:18,name:"py_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:42,name:"php_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:23,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:31,name:"cc_enable_arenas",kind:"scalar",T:8,opt:!0,default:!0},{no:36,name:"objc_class_prefix",kind:"scalar",T:9,opt:!0},{no:37,name:"csharp_namespace",kind:"scalar",T:9,opt:!0},{no:39,name:"swift_prefix",kind:"scalar",T:9,opt:!0},{no:40,name:"php_class_prefix",kind:"scalar",T:9,opt:!0},{no:41,name:"php_namespace",kind:"scalar",T:9,opt:!0},{no:44,name:"php_metadata_namespace",kind:"scalar",T:9,opt:!0},{no:45,name:"ruby_package",kind:"scalar",T:9,opt:!0},{no:50,name:"features",kind:"message",T:M,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var Ue;(function(n){n[n.SPEED=1]="SPEED",n[n.CODE_SIZE=2]="CODE_SIZE",n[n.LITE_RUNTIME=3]="LITE_RUNTIME"})(Ue||(Ue={}));d.util.setEnumType(Ue,"google.protobuf.FileOptions.OptimizeMode",[{no:1,name:"SPEED"},{no:2,name:"CODE_SIZE"},{no:3,name:"LITE_RUNTIME"}]);var de=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};de.runtime=d;de.typeName="google.protobuf.MessageOptions";de.fields=d.util.newFieldList(()=>[{no:1,name:"message_set_wire_format",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"no_standard_descriptor_accessor",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:7,name:"map_entry",kind:"scalar",T:8,opt:!0},{no:11,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:12,name:"features",kind:"message",T:M,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var fe=class n extends c{constructor(e){super(),this.targets=[],this.editionDefaults=[],this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};fe.runtime=d;fe.typeName="google.protobuf.FieldOptions";fe.fields=d.util.newFieldList(()=>[{no:1,name:"ctype",kind:"enum",T:d.getEnumType(Ae),opt:!0,default:Ae.STRING},{no:2,name:"packed",kind:"scalar",T:8,opt:!0},{no:6,name:"jstype",kind:"enum",T:d.getEnumType(Ve),opt:!0,default:Ve.JS_NORMAL},{no:5,name:"lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:15,name:"unverified_lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:10,name:"weak",kind:"scalar",T:8,opt:!0,default:!1},{no:16,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"retention",kind:"enum",T:d.getEnumType(It),opt:!0},{no:19,name:"targets",kind:"enum",T:d.getEnumType(Ot),repeated:!0},{no:20,name:"edition_defaults",kind:"message",T:me,repeated:!0},{no:21,name:"features",kind:"message",T:M,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var Ae;(function(n){n[n.STRING=0]="STRING",n[n.CORD=1]="CORD",n[n.STRING_PIECE=2]="STRING_PIECE"})(Ae||(Ae={}));d.util.setEnumType(Ae,"google.protobuf.FieldOptions.CType",[{no:0,name:"STRING"},{no:1,name:"CORD"},{no:2,name:"STRING_PIECE"}]);var Ve;(function(n){n[n.JS_NORMAL=0]="JS_NORMAL",n[n.JS_STRING=1]="JS_STRING",n[n.JS_NUMBER=2]="JS_NUMBER"})(Ve||(Ve={}));d.util.setEnumType(Ve,"google.protobuf.FieldOptions.JSType",[{no:0,name:"JS_NORMAL"},{no:1,name:"JS_STRING"},{no:2,name:"JS_NUMBER"}]);var It;(function(n){n[n.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",n[n.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",n[n.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(It||(It={}));d.util.setEnumType(It,"google.protobuf.FieldOptions.OptionRetention",[{no:0,name:"RETENTION_UNKNOWN"},{no:1,name:"RETENTION_RUNTIME"},{no:2,name:"RETENTION_SOURCE"}]);var Ot;(function(n){n[n.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",n[n.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",n[n.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",n[n.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",n[n.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",n[n.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",n[n.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",n[n.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",n[n.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",n[n.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(Ot||(Ot={}));d.util.setEnumType(Ot,"google.protobuf.FieldOptions.OptionTargetType",[{no:0,name:"TARGET_TYPE_UNKNOWN"},{no:1,name:"TARGET_TYPE_FILE"},{no:2,name:"TARGET_TYPE_EXTENSION_RANGE"},{no:3,name:"TARGET_TYPE_MESSAGE"},{no:4,name:"TARGET_TYPE_FIELD"},{no:5,name:"TARGET_TYPE_ONEOF"},{no:6,name:"TARGET_TYPE_ENUM"},{no:7,name:"TARGET_TYPE_ENUM_ENTRY"},{no:8,name:"TARGET_TYPE_SERVICE"},{no:9,name:"TARGET_TYPE_METHOD"}]);var me=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};me.runtime=d;me.typeName="google.protobuf.FieldOptions.EditionDefault";me.fields=d.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:d.getEnumType(H),opt:!0},{no:2,name:"value",kind:"scalar",T:9,opt:!0}]);var pe=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};pe.runtime=d;pe.typeName="google.protobuf.OneofOptions";pe.fields=d.util.newFieldList(()=>[{no:1,name:"features",kind:"message",T:M,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var ge=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ge.runtime=d;ge.typeName="google.protobuf.EnumOptions";ge.fields=d.util.newFieldList(()=>[{no:2,name:"allow_alias",kind:"scalar",T:8,opt:!0},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:7,name:"features",kind:"message",T:M,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var ye=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ye.runtime=d;ye.typeName="google.protobuf.EnumValueOptions";ye.fields=d.util.newFieldList(()=>[{no:1,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"features",kind:"message",T:M,opt:!0},{no:3,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var he=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};he.runtime=d;he.typeName="google.protobuf.ServiceOptions";he.fields=d.util.newFieldList(()=>[{no:34,name:"features",kind:"message",T:M,opt:!0},{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var Te=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Te.runtime=d;Te.typeName="google.protobuf.MethodOptions";Te.fields=d.util.newFieldList(()=>[{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:34,name:"idempotency_level",kind:"enum",T:d.getEnumType(Ge),opt:!0,default:Ge.IDEMPOTENCY_UNKNOWN},{no:35,name:"features",kind:"message",T:M,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var Ge;(function(n){n[n.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",n[n.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",n[n.IDEMPOTENT=2]="IDEMPOTENT"})(Ge||(Ge={}));d.util.setEnumType(Ge,"google.protobuf.MethodOptions.IdempotencyLevel",[{no:0,name:"IDEMPOTENCY_UNKNOWN"},{no:1,name:"NO_SIDE_EFFECTS"},{no:2,name:"IDEMPOTENT"}]);var B=class n extends c{constructor(e){super(),this.name=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};B.runtime=d;B.typeName="google.protobuf.UninterpretedOption";B.fields=d.util.newFieldList(()=>[{no:2,name:"name",kind:"message",T:we,repeated:!0},{no:3,name:"identifier_value",kind:"scalar",T:9,opt:!0},{no:4,name:"positive_int_value",kind:"scalar",T:4,opt:!0},{no:5,name:"negative_int_value",kind:"scalar",T:3,opt:!0},{no:6,name:"double_value",kind:"scalar",T:1,opt:!0},{no:7,name:"string_value",kind:"scalar",T:12,opt:!0},{no:8,name:"aggregate_value",kind:"scalar",T:9,opt:!0}]);var we=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};we.runtime=d;we.typeName="google.protobuf.UninterpretedOption.NamePart";we.fields=d.util.newFieldList(()=>[{no:1,name:"name_part",kind:"scalar",T:9},{no:2,name:"is_extension",kind:"scalar",T:8}]);var M=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};M.runtime=d;M.typeName="google.protobuf.FeatureSet";M.fields=d.util.newFieldList(()=>[{no:1,name:"field_presence",kind:"enum",T:d.getEnumType(Nt),opt:!0},{no:2,name:"enum_type",kind:"enum",T:d.getEnumType(Et),opt:!0},{no:3,name:"repeated_field_encoding",kind:"enum",T:d.getEnumType(Mt),opt:!0},{no:4,name:"utf8_validation",kind:"enum",T:d.getEnumType(Bt),opt:!0},{no:5,name:"message_encoding",kind:"enum",T:d.getEnumType(vt),opt:!0},{no:6,name:"json_format",kind:"enum",T:d.getEnumType(qt),opt:!0}]);var Nt;(function(n){n[n.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",n[n.EXPLICIT=1]="EXPLICIT",n[n.IMPLICIT=2]="IMPLICIT",n[n.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Nt||(Nt={}));d.util.setEnumType(Nt,"google.protobuf.FeatureSet.FieldPresence",[{no:0,name:"FIELD_PRESENCE_UNKNOWN"},{no:1,name:"EXPLICIT"},{no:2,name:"IMPLICIT"},{no:3,name:"LEGACY_REQUIRED"}]);var Et;(function(n){n[n.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",n[n.OPEN=1]="OPEN",n[n.CLOSED=2]="CLOSED"})(Et||(Et={}));d.util.setEnumType(Et,"google.protobuf.FeatureSet.EnumType",[{no:0,name:"ENUM_TYPE_UNKNOWN"},{no:1,name:"OPEN"},{no:2,name:"CLOSED"}]);var Mt;(function(n){n[n.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",n[n.PACKED=1]="PACKED",n[n.EXPANDED=2]="EXPANDED"})(Mt||(Mt={}));d.util.setEnumType(Mt,"google.protobuf.FeatureSet.RepeatedFieldEncoding",[{no:0,name:"REPEATED_FIELD_ENCODING_UNKNOWN"},{no:1,name:"PACKED"},{no:2,name:"EXPANDED"}]);var Bt;(function(n){n[n.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",n[n.NONE=1]="NONE",n[n.VERIFY=2]="VERIFY"})(Bt||(Bt={}));d.util.setEnumType(Bt,"google.protobuf.FeatureSet.Utf8Validation",[{no:0,name:"UTF8_VALIDATION_UNKNOWN"},{no:1,name:"NONE"},{no:2,name:"VERIFY"}]);var vt;(function(n){n[n.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",n[n.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",n[n.DELIMITED=2]="DELIMITED"})(vt||(vt={}));d.util.setEnumType(vt,"google.protobuf.FeatureSet.MessageEncoding",[{no:0,name:"MESSAGE_ENCODING_UNKNOWN"},{no:1,name:"LENGTH_PREFIXED"},{no:2,name:"DELIMITED"}]);var qt;(function(n){n[n.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",n[n.ALLOW=1]="ALLOW",n[n.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(qt||(qt={}));d.util.setEnumType(qt,"google.protobuf.FeatureSet.JsonFormat",[{no:0,name:"JSON_FORMAT_UNKNOWN"},{no:1,name:"ALLOW"},{no:2,name:"LEGACY_BEST_EFFORT"}]);var De=class n extends c{constructor(e){super(),this.defaults=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};De.runtime=d;De.typeName="google.protobuf.FeatureSetDefaults";De.fields=d.util.newFieldList(()=>[{no:1,name:"defaults",kind:"message",T:Pe,repeated:!0},{no:4,name:"minimum_edition",kind:"enum",T:d.getEnumType(H),opt:!0},{no:5,name:"maximum_edition",kind:"enum",T:d.getEnumType(H),opt:!0}]);var Pe=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Pe.runtime=d;Pe.typeName="google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault";Pe.fields=d.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:d.getEnumType(H),opt:!0},{no:2,name:"features",kind:"message",T:M,opt:!0}]);var Re=class n extends c{constructor(e){super(),this.location=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Re.runtime=d;Re.typeName="google.protobuf.SourceCodeInfo";Re.fields=d.util.newFieldList(()=>[{no:1,name:"location",kind:"message",T:Je,repeated:!0}]);var Je=class n extends c{constructor(e){super(),this.path=[],this.span=[],this.leadingDetachedComments=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Je.runtime=d;Je.typeName="google.protobuf.SourceCodeInfo.Location";Je.fields=d.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"span",kind:"scalar",T:5,repeated:!0,packed:!0},{no:3,name:"leading_comments",kind:"scalar",T:9,opt:!0},{no:4,name:"trailing_comments",kind:"scalar",T:9,opt:!0},{no:6,name:"leading_detached_comments",kind:"scalar",T:9,repeated:!0}]);var He=class n extends c{constructor(e){super(),this.annotation=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};He.runtime=d;He.typeName="google.protobuf.GeneratedCodeInfo";He.fields=d.util.newFieldList(()=>[{no:1,name:"annotation",kind:"message",T:Se,repeated:!0}]);var Se=class n extends c{constructor(e){super(),this.path=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Se.runtime=d;Se.typeName="google.protobuf.GeneratedCodeInfo.Annotation";Se.fields=d.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"source_file",kind:"scalar",T:9,opt:!0},{no:3,name:"begin",kind:"scalar",T:5,opt:!0},{no:4,name:"end",kind:"scalar",T:5,opt:!0},{no:5,name:"semantic",kind:"enum",T:d.getEnumType(Ct),opt:!0}]);var Ct;(function(n){n[n.NONE=0]="NONE",n[n.SET=1]="SET",n[n.ALIAS=2]="ALIAS"})(Ct||(Ct={}));d.util.setEnumType(Ct,"google.protobuf.GeneratedCodeInfo.Annotation.Semantic",[{no:0,name:"NONE"},{no:1,name:"SET"},{no:2,name:"ALIAS"}]);var I=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};I.runtime=a;I.typeName="google.protobuf.Empty";I.fields=a.util.newFieldList(()=>[]);var Lt=class n extends c{secret="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.VerifyUserRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ft=class n extends c{secret="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.GroupInfoRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ut=class n extends c{groupId="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.GroupID";static fields=a.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},At=class n extends c{contentId="";groupId="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.ShareRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ye=class n extends c{secret="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.GroupInvite";static fields=a.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Vt=class n extends c{groups=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.Groups";static fields=a.util.newFieldList(()=>[{no:1,name:"groups",kind:"message",T:V,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ca=class n extends c{text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.AnalyzeConversationRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},C=class n extends c{email="";password="";username="";config;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.User";static fields=a.util.newFieldList(()=>[{no:1,name:"email",kind:"scalar",T:9},{no:2,name:"password",kind:"scalar",T:9},{no:3,name:"username",kind:"scalar",T:9},{no:4,name:"config",kind:"message",T:je}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},V=class n extends c{id="";name="";users=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.Group";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"users",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},je=class n extends c{domainWhitelist=[];offlineVoice=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.Config";static fields=a.util.newFieldList(()=>[{no:1,name:"domain_whitelist",kind:"scalar",T:9,repeated:!0},{no:2,name:"offline_voice",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Gt=class n extends c{user;success=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.LoginResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"user",kind:"message",T:C},{no:2,name:"success",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var ke=class n extends c{title="";createTime=0;updateTime=0;mapping={};conversationId="";conversationTemplateId="";currentNode="";gizmoId="";isArchived=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Conversation";static fields=a.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"create_time",kind:"scalar",T:1},{no:3,name:"update_time",kind:"scalar",T:1},{no:4,name:"mapping",kind:"map",K:9,V:{kind:"message",T:sr}},{no:5,name:"conversation_id",kind:"scalar",T:9},{no:6,name:"conversation_template_id",kind:"scalar",T:9},{no:7,name:"current_node",kind:"scalar",T:9},{no:8,name:"gizmo_id",kind:"scalar",T:9},{no:9,name:"is_archived",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},sr=class n extends c{id="";message;parent="";children=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Node";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"message",kind:"message",T:or},{no:3,name:"parent",kind:"scalar",T:9},{no:4,name:"children",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},or=class n extends c{id="";author;createTime=0;content;status="";endTurn=!1;weight=0;metadata;recipient="";updateTime=0;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Message";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"author",kind:"message",T:lr},{no:3,name:"create_time",kind:"scalar",T:1},{no:4,name:"content",kind:"message",T:ze},{no:5,name:"status",kind:"scalar",T:9},{no:6,name:"end_turn",kind:"scalar",T:8},{no:7,name:"weight",kind:"scalar",T:5},{no:8,name:"metadata",kind:"message",T:ir},{no:9,name:"recipient",kind:"scalar",T:9},{no:10,name:"update_time",kind:"scalar",T:1}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},ir=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.MessageMetadata";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},lr=class n extends c{role="";metadata;name="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Author";static fields=a.util.newFieldList(()=>[{no:1,name:"role",kind:"scalar",T:9},{no:2,name:"metadata",kind:"message",T:dr},{no:3,name:"name",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},ze=class n extends c{contentType="";textParts=[];imageParts=[];text="";parts=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Content";static fields=a.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"text_parts",kind:"scalar",T:9,repeated:!0},{no:3,name:"image_parts",kind:"message",T:$e,repeated:!0},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"parts",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},$e=class n extends c{contentType="";assetPointer="";sizeBytes=J.zero;width=0;height=0;fovea=0;metadata;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.ImageAsset";static fields=a.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"asset_pointer",kind:"scalar",T:9},{no:3,name:"size_bytes",kind:"scalar",T:3},{no:4,name:"width",kind:"scalar",T:5},{no:5,name:"height",kind:"scalar",T:5},{no:6,name:"fovea",kind:"scalar",T:5},{no:7,name:"metadata",kind:"message",T:ur}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},ur=class n extends c{dalle;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Metadata";static fields=a.util.newFieldList(()=>[{no:1,name:"dalle",kind:"message",T:cr}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},cr=class n extends c{genId="";prompt="";seed=0;serializationTitle="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.DalleMetadata";static fields=a.util.newFieldList(()=>[{no:1,name:"gen_id",kind:"scalar",T:9},{no:2,name:"prompt",kind:"scalar",T:9},{no:3,name:"seed",kind:"scalar",T:13},{no:4,name:"serialization_title",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},dr=class n extends c{attachments=[];timestamp="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.AuthorMetadata";static fields=a.util.newFieldList(()=>[{no:1,name:"attachments",kind:"message",T:fr,repeated:!0},{no:2,name:"timestamp_",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},fr=class n extends c{id="";name="";mimeType="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Attachment";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"mimeType",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var $=class n extends c{nodes=[];edges=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="browser.History";static fields=a.util.newFieldList(()=>[{no:1,name:"nodes",kind:"message",T:xe,repeated:!0},{no:2,name:"edges",kind:"message",T:We,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},xe=class n extends c{id="";url="";title="";open=0;close=0;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="browser.Node";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"open",kind:"scalar",T:1},{no:5,name:"close",kind:"scalar",T:1}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},We=class n extends c{from="";to="";tab="";visitTime=0;visitDuration=0;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="browser.Edge";static fields=a.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9},{no:3,name:"tab",kind:"scalar",T:9},{no:4,name:"visit_time",kind:"scalar",T:1},{no:5,name:"visit_duration",kind:"scalar",T:1}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var Dt=class n extends c{publishDir="";baseUrl="";title="";paginate=0;theme=[];enableInlineShortcodes=!1;enableRobotsTxt=!1;buildDrafts=!1;buildFuture=!1;buildExpired=!1;enableEmoji=!1;pygmentsUseClasses=!1;mainSections=[];minify;languages={};outputs={};params;markup;services;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.HugoConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"publish_dir",kind:"scalar",T:9},{no:2,name:"base_url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"paginate",kind:"scalar",T:5},{no:5,name:"theme",kind:"scalar",T:9,repeated:!0},{no:6,name:"enable_inline_shortcodes",kind:"scalar",T:8},{no:7,name:"enable_robots_txt",kind:"scalar",T:8},{no:8,name:"build_drafts",kind:"scalar",T:8},{no:9,name:"build_future",kind:"scalar",T:8},{no:10,name:"build_expired",kind:"scalar",T:8},{no:11,name:"enable_emoji",kind:"scalar",T:8},{no:12,name:"pygments_use_classes",kind:"scalar",T:8},{no:13,name:"main_sections",kind:"scalar",T:9,repeated:!0},{no:14,name:"minify",kind:"message",T:mr},{no:15,name:"languages",kind:"map",K:9,V:{kind:"message",T:pr}},{no:16,name:"outputs",kind:"map",K:9,V:{kind:"message",T:Jr}},{no:17,name:"params",kind:"message",T:kr},{no:18,name:"markup",kind:"message",T:hr},{no:19,name:"services",kind:"message",T:Rr}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},mr=class n extends c{disableXml=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.MinifyConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"disable_xml",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},pr=class n extends c{languageName="";weight=0;title="";taxonomies={};menu={};params={};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.LanguageConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"language_name",kind:"scalar",T:9},{no:2,name:"weight",kind:"scalar",T:5},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"taxonomies",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"menu",kind:"map",K:9,V:{kind:"message",T:Sr}},{no:6,name:"params",kind:"map",K:9,V:{kind:"scalar",T:9}}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ke=class n extends c{name="";url="";weight=0;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.MenuItem";static fields=a.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"weight",kind:"scalar",T:5}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},gr=class n extends c{url="";text="";appendFilePath=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.EditPostConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"append_file_path",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},yr=class n extends c{disableHljs=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.AssetsConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"disable_hljs",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},hr=class n extends c{goldmark;highlight;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.MarkupConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"goldmark",kind:"message",T:Tr},{no:2,name:"highlight",kind:"message",T:Pr}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Tr=class n extends c{renderer;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.GoldmarkConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"renderer",kind:"message",T:wr}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},wr=class n extends c{unsafe=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.RendererConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"unsafe",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Pr=class n extends c{noClasses=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.HighlightConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"no_classes",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Rr=class n extends c{instagram;twitter;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ServicesConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"instagram",kind:"message",T:Ht},{no:2,name:"twitter",kind:"message",T:Ht}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ht=class n extends c{disableInlineCss=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ServiceConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"disable_inline_css",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Jr=class n extends c{values=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.RepeatedString";static fields=a.util.newFieldList(()=>[{no:1,name:"values",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Sr=class n extends c{items=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.RepeatedMenuItem";static fields=a.util.newFieldList(()=>[{no:1,name:"items",kind:"message",T:Ke,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},kr=class n extends c{env="";description="";author="";defaultTheme="";showShareButtons=!1;showReadingTime=!1;displayFullLangName=!1;showPostNavLinks=!1;showBreadCrumbs=!1;showCodeCopyButtons=!1;showRssButtonInSectionTermList=!1;showAllPagesInArchive=!1;showPageNums=!1;showToc=!1;images=[];profileMode;homeInfoParams;socialIcons=[];editPost;assets;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ParamsConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"env",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"author",kind:"scalar",T:9},{no:4,name:"default_theme",kind:"scalar",T:9},{no:5,name:"show_share_buttons",kind:"scalar",T:8},{no:6,name:"show_reading_time",kind:"scalar",T:8},{no:7,name:"display_full_lang_name",kind:"scalar",T:8},{no:8,name:"show_post_nav_links",kind:"scalar",T:8},{no:9,name:"show_bread_crumbs",kind:"scalar",T:8},{no:10,name:"show_code_copy_buttons",kind:"scalar",T:8},{no:11,name:"show_rss_button_in_section_term_list",kind:"scalar",T:8},{no:12,name:"show_all_pages_in_archive",kind:"scalar",T:8},{no:13,name:"show_page_nums",kind:"scalar",T:8},{no:14,name:"show_toc",kind:"scalar",T:8},{no:15,name:"images",kind:"scalar",T:9,repeated:!0},{no:16,name:"profile_mode",kind:"message",T:xr},{no:17,name:"home_info_params",kind:"message",T:Ir},{no:18,name:"social_icons",kind:"message",T:Or,repeated:!0},{no:19,name:"edit_post",kind:"message",T:gr},{no:20,name:"assets",kind:"message",T:yr}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},xr=class n extends c{enabled=!1;title="";imageUrl="";imageTitle="";buttons=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ProfileModeConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"image_url",kind:"scalar",T:9},{no:4,name:"image_title",kind:"scalar",T:9},{no:5,name:"buttons",kind:"message",T:br,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},br=class n extends c{name="";url="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ButtonConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ir=class n extends c{title="";content="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.HomeInfoParamsConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"content",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Or=class n extends c{name="";title="";url="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.SocialIconConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var Yt=class n extends c{prompt="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.InferRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},jt=class n extends c{text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.InferResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},zt=class n extends c{content;site;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.TypesResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:on},{no:2,name:"site",kind:"message",T:on}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},$t=class n extends c{contentTypes=[];tags=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.GetSourcesRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"content_types",kind:"scalar",T:9,repeated:!0},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Wt=class n extends c{captureDevice=0;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.VoiceInputRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Kt=class n extends c{segment;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.VoiceInputResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:be}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Xt=class n extends c{parent="";children=[];connect=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.RelateRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"parent",kind:"scalar",T:9},{no:2,name:"children",kind:"scalar",T:9,repeated:!0},{no:3,name:"connect",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Qt=class n extends c{sources=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Sources";static fields=a.util.newFieldList(()=>[{no:1,name:"sources",kind:"message",T:Nr,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Nr=class n extends c{source;displayContent=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.EnumeratedSource";static fields=a.util.newFieldList(()=>[{no:1,name:"source",kind:"message",T:Mr},{no:2,name:"display_content",kind:"message",T:Er,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Er=class n extends c{title="";description="";type="";content;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.DisplayContent";static fields=a.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"type",kind:"scalar",T:9},{no:4,name:"content",kind:"message",T:N}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Mr=class n extends c{name="";type={case:void 0};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Source";static fields=a.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"server",kind:"message",T:Br,oneof:"type"},{no:3,name:"folder",kind:"message",T:vr,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Br=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Server";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},vr=class n extends c{path="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Folder";static fields=a.util.newFieldList(()=>[{no:2,name:"path",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Zt=class n extends c{contentId="";tags=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.SetTagsRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},_t=class n extends c{groupId="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.TagRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},en=class n extends c{tags=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Tags";static fields=a.util.newFieldList(()=>[{no:1,name:"tags",kind:"message",T:tn,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},tn=class n extends c{name="";subTags=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Tag";static fields=a.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"sub_tags",kind:"message",T:n,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},j=class n extends c{contentIds=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ContentIDs";static fields=a.util.newFieldList(()=>[{no:1,name:"content_ids",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Xe=class n extends c{content;tags=[];related=[];parents=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Contents";static fields=a.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:N},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0},{no:3,name:"related",kind:"message",T:N,repeated:!0},{no:4,name:"parents",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},nn=class n extends c{query="";page=0;contentID="";groupID="";tags=[];contentTypes=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Query";static fields=a.util.newFieldList(()=>[{no:1,name:"query",kind:"scalar",T:9},{no:2,name:"page",kind:"scalar",T:13},{no:3,name:"contentID",kind:"scalar",T:9},{no:4,name:"groupID",kind:"scalar",T:9},{no:5,name:"tags",kind:"scalar",T:9,repeated:!0},{no:6,name:"content_types",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},rn=class n extends c{storedContent=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Results";static fields=a.util.newFieldList(()=>[{no:1,name:"storedContent",kind:"message",T:qr,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},qr=class n extends c{content;id="";related=[];title="";description="";image="";url="";user;tags=[];preview="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.StoredContent";static fields=a.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:N},{no:2,name:"id",kind:"scalar",T:9},{no:3,name:"related",kind:"message",T:N,repeated:!0},{no:4,name:"title",kind:"scalar",T:9},{no:5,name:"description",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"url",kind:"scalar",T:9},{no:9,name:"user",kind:"message",T:C},{no:10,name:"tags",kind:"message",T:tn,repeated:!0},{no:11,name:"preview",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},La=class n extends c{from="";to="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Edge";static fields=a.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},N=class n extends c{tags=[];createdAt="";uri="";id="";type={case:void 0};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Content";static fields=a.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"created_at",kind:"scalar",T:9},{no:3,name:"uri",kind:"scalar",T:9},{no:4,name:"id",kind:"scalar",T:9},{no:6,name:"data",kind:"message",T:sn,oneof:"type"},{no:7,name:"normalized",kind:"message",T:Cr,oneof:"type"},{no:8,name:"transformed",kind:"message",T:Lr,oneof:"type"},{no:9,name:"post",kind:"message",T:an,oneof:"type"},{no:10,name:"site",kind:"message",T:$r,oneof:"type"},{no:11,name:"chatgpt_conversation",kind:"message",T:ke,oneof:"type"},{no:12,name:"browser_history",kind:"message",T:$,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},an=class n extends c{title="";summary="";content="";authors=[];draft=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Post";static fields=a.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"content",kind:"scalar",T:9},{no:4,name:"authors",kind:"scalar",T:9,repeated:!0},{no:6,name:"draft",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Fa=class n extends c{url="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.GitRepo";static fields=a.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},sn=class n extends c{type={case:void 0};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Data";static fields=a.util.newFieldList(()=>[{no:4,name:"text",kind:"message",T:Hr,oneof:"type"},{no:5,name:"file",kind:"message",T:Dr,oneof:"type"},{no:6,name:"url",kind:"message",T:Yr,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Cr=class n extends c{type={case:void 0};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Normalized";static fields=a.util.newFieldList(()=>[{no:3,name:"article",kind:"message",T:Fr,oneof:"type"},{no:4,name:"html",kind:"message",T:Ur,oneof:"type"},{no:6,name:"transcript",kind:"message",T:zr,oneof:"type"},{no:7,name:"readme",kind:"message",T:Ar,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Lr=class n extends c{type={case:void 0};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Transformed";static fields=a.util.newFieldList(()=>[{no:1,name:"summary",kind:"message",T:Vr,oneof:"type"},{no:2,name:"categories",kind:"message",T:Gr,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Fr=class n extends c{title="";author="";length=0;excerpt="";siteName="";image="";favicon="";text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Article";static fields=a.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"author",kind:"scalar",T:9},{no:3,name:"length",kind:"scalar",T:5},{no:4,name:"excerpt",kind:"scalar",T:9},{no:5,name:"site_name",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"favicon",kind:"scalar",T:9},{no:8,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ur=class n extends c{html="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.HTML";static fields=a.util.newFieldList(()=>[{no:1,name:"html",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ar=class n extends c{data="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ReadMe";static fields=a.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Vr=class n extends c{summary="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Summary";static fields=a.util.newFieldList(()=>[{no:1,name:"summary",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Gr=class n extends c{categories=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Categories";static fields=a.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Dr=class n extends c{file="";data=new Uint8Array(0);url="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.File";static fields=a.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9},{no:2,name:"data",kind:"scalar",T:12},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Hr=class n extends c{data="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Text";static fields=a.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Yr=class n extends c{url="";crawl=!1;title="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.URL";static fields=a.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"crawl",kind:"scalar",T:8},{no:3,name:"title",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},jr=class n extends c{id=0;startTime=J.zero;endTime=J.zero;text="";p="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Token";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},be=class n extends c{num=0;tokens=[];text="";startTime=J.zero;endTime=J.zero;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Segment";static fields=a.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:jr,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},zr=class n extends c{id="";name="";segments=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Transcript";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:be,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},on=class n extends c{msg;descLookup={};enumLookup={};packageName="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.GRPCTypeInfo";static fields=a.util.newFieldList(()=>[{no:1,name:"msg",kind:"message",T:q},{no:3,name:"desc_lookup",kind:"map",K:9,V:{kind:"message",T:q}},{no:4,name:"enum_lookup",kind:"map",K:9,V:{kind:"message",T:A}},{no:6,name:"package_name",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},$r=class n extends c{sections=[];hugoConfig;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Site";static fields=a.util.newFieldList(()=>[{no:1,name:"sections",kind:"message",T:Wr,repeated:!0},{no:2,name:"hugo_config",kind:"message",T:Dt}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Wr=class n extends c{tags=[];menu;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Section";static fields=a.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"menu",kind:"message",T:Ke}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var ln=class n extends c{text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.AnalyzeConversationRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},un=class n extends c{prompt="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GenerateImagesRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},cn=class n extends c{images=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GenerateImagesResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"images",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},dn=class n extends c{id="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.DeleteSessionRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ie=class n extends c{id="";text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.Prompt";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},fn=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GetPromptsRequest";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},mn=class n extends c{prompts=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GetPromptsResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"prompts",kind:"message",T:Ie,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},pn=class n extends c{prompt="";text=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.InferRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},gn=class n extends c{text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.InferResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},yn=class n extends c{content;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.UploadContentRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:N}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ua=class n extends c{id="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.UploadContentResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},hn=class n extends c{id="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GetSessionRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Tn=class n extends c{session;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GetSessionResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"session",kind:"message",T:Jn}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},wn=class n extends c{page=J.zero;limit=J.zero;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GetSessionsRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"page",kind:"scalar",T:4},{no:2,name:"limit",kind:"scalar",T:4}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Pn=class n extends c{sessions=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GetSessionsResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"sessions",kind:"message",T:Jn,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Kr=class n extends c{id=0;startTime=J.zero;endTime=J.zero;text="";p="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.Token";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Rn=class n extends c{num=0;tokens=[];text="";startTime=J.zero;endTime=J.zero;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.Segment";static fields=a.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:Kr,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Jn=class n extends c{id="";name="";segments=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.Session";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:Rn,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Aa=class n extends c{filePath="";model="";language="";translate=!1;offset=J.zero;duration=J.zero;threads=0;speedup=!1;maxLen=0;maxTokens=0;wordThreshold=0;tokens=!1;colorize=!1;out="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.TranscriptionRequest";static fields=a.util.newFieldList(()=>[{no:14,name:"file_path",kind:"scalar",T:9},{no:1,name:"model",kind:"scalar",T:9},{no:2,name:"language",kind:"scalar",T:9},{no:3,name:"translate",kind:"scalar",T:8},{no:4,name:"offset",kind:"scalar",T:3},{no:5,name:"duration",kind:"scalar",T:3},{no:6,name:"threads",kind:"scalar",T:13},{no:7,name:"speedup",kind:"scalar",T:8},{no:8,name:"max_len",kind:"scalar",T:13},{no:9,name:"max_tokens",kind:"scalar",T:13},{no:10,name:"word_threshold",kind:"scalar",T:1},{no:11,name:"tokens",kind:"scalar",T:8},{no:12,name:"colorize",kind:"scalar",T:8},{no:13,name:"out",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Va=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.RegisterFlags";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ga=class n extends c{text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.OCRText";static fields=a.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Da=class n extends c{image=new Uint8Array(0);constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.Image";static fields=a.util.newFieldList(()=>[{no:1,name:"image",kind:"scalar",T:12}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Sn=class n extends c{from="";to="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.ConvertFileRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},kn=class n extends c{captureDevice=0;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.ChatRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Qe=class n extends c{segment;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.ChatResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:Rn}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},xn=class n extends c{id="";file="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.YouTubeVideo";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"file",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ze=class n extends c{file="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.FilePath";static fields=a.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},bn=class n extends c{title="";filePath;transcript=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.YouTubeVideoResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"file_path",kind:"message",T:Ze},{no:3,name:"transcript",kind:"message",T:be,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var In=class n extends c{phoneNumbers=[];summary="";questions=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="ai.AnalyzeConversationResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"phone_numbers",kind:"scalar",T:9,repeated:!0},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"questions",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ha=class n extends c{categories=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="ai.AnalyzeContent";static fields=a.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var Ya={typeName:"protoflow.ProtoflowService",methods:{downloadYouTubeVideo:{name:"DownloadYouTubeVideo",I:xn,O:bn,kind:T.Unary},getSessions:{name:"GetSessions",I:wn,O:Pn,kind:T.Unary},getSession:{name:"GetSession",I:hn,O:Tn,kind:T.Unary},deleteSession:{name:"DeleteSession",I:dn,O:I,kind:T.Unary},getPrompts:{name:"GetPrompts",I:fn,O:mn,kind:T.Unary},newPrompt:{name:"NewPrompt",I:Ie,O:Ie,kind:T.Unary},uploadContent:{name:"UploadContent",I:yn,O:Qe,kind:T.ServerStreaming},infer:{name:"Infer",I:pn,O:gn,kind:T.ServerStreaming},chat:{name:"Chat",I:kn,O:Qe,kind:T.ServerStreaming},convertFile:{name:"ConvertFile",I:Sn,O:Ze,kind:T.Unary},generateImages:{name:"GenerateImages",I:un,O:cn,kind:T.Unary},analyzeConversation:{name:"AnalyzeConversation",I:ln,O:In,kind:T.Unary}}};var ja={typeName:"content.ContentService",methods:{save:{name:"Save",I:Xe,O:j,kind:T.Unary},search:{name:"Search",I:nn,O:rn,kind:T.Unary},relate:{name:"Relate",I:Xt,O:I,kind:T.Unary},analyze:{name:"Analyze",I:N,O:Xe,kind:T.Unary},delete:{name:"Delete",I:j,O:j,kind:T.Unary},getTags:{name:"GetTags",I:_t,O:en,kind:T.Unary},setTags:{name:"SetTags",I:Zt,O:I,kind:T.Unary},publish:{name:"Publish",I:j,O:j,kind:T.Unary},getSources:{name:"GetSources",I:$t,O:Qt,kind:T.Unary},infer:{name:"Infer",I:Yt,O:jt,kind:T.ServerStreaming},types:{name:"Types",I,O:zt,kind:T.Unary},voiceInput:{name:"VoiceInput",I:Wt,O:Kt,kind:T.ServerStreaming}}};var za={typeName:"user.UserService",methods:{register:{name:"Register",I:C,O:C,kind:T.Unary},login:{name:"Login",I:C,O:Gt,kind:T.Unary},logout:{name:"Logout",I,O:I,kind:T.Unary},resetPassword:{name:"ResetPassword",I:C,O:I,kind:T.Unary},verifyUser:{name:"VerifyUser",I:Lt,O:I,kind:T.Unary},updateConfig:{name:"UpdateConfig",I:je,O:I,kind:T.Unary},createGroupInvite:{name:"CreateGroupInvite",I:Ut,O:Ye,kind:T.Unary},joinGroup:{name:"JoinGroup",I:Ye,O:V,kind:T.Unary},groupInfo:{name:"GroupInfo",I:Ft,O:V,kind:T.Unary},createGroup:{name:"CreateGroup",I:V,O:V,kind:T.Unary},getGroups:{name:"GetGroups",I,O:Vt,kind:T.Unary},deleteGroup:{name:"DeleteGroup",I:V,O:I,kind:T.Unary},share:{name:"Share",I:At,O:I,kind:T.Unary}}};var On=class n extends c{user="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chat.BanUserRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Nn=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chat.BanUserResponse";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},En=class n extends c{message="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chat.SendMessageRequest";static fields=a.util.newFieldList(()=>[{no:2,name:"message",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Mn=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chat.SendMessageResponse";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Bn=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chat.ReceiveMessagesRequest";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},vn=class n extends c{user="";text="";timestamp=J.zero;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chat.Message";static fields=a.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"timestamp",kind:"scalar",T:3}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var $a={typeName:"chat.ChatService",methods:{sendMessage:{name:"SendMessage",I:En,O:Mn,kind:T.Unary},receiveMessages:{name:"ReceiveMessages",I:Bn,O:vn,kind:T.ServerStreaming},banUser:{name:"BanUser",I:On,O:Nn,kind:T.Unary}}};var qn=class n extends c{type={case:void 0};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="event.Metric";static fields=a.util.newFieldList(()=>[{no:1,name:"http",kind:"message",T:Xr,oneof:"type"},{no:2,name:"rrweb",kind:"message",T:Qr,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Xr=class n extends c{method="";path="";query="";headers={};host="";remoteAddr="";userAgent="";referer="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="event.HTTPRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"method",kind:"scalar",T:9},{no:2,name:"path",kind:"scalar",T:9},{no:3,name:"query",kind:"scalar",T:9},{no:4,name:"headers",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"host",kind:"scalar",T:9},{no:6,name:"remoteAddr",kind:"scalar",T:9},{no:7,name:"userAgent",kind:"scalar",T:9},{no:8,name:"referer",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Qr=class n extends c{events="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="event.RRWeb";static fields=a.util.newFieldList(()=>[{no:1,name:"events",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Cn=class n extends c{id="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="event.SendResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var Wa={typeName:"event.EventService",methods:{send:{name:"Send",I:qn,O:Cn,kind:T.Unary}}};var R;(function(n){n[n.Canceled=1]="Canceled",n[n.Unknown=2]="Unknown",n[n.InvalidArgument=3]="InvalidArgument",n[n.DeadlineExceeded=4]="DeadlineExceeded",n[n.NotFound=5]="NotFound",n[n.AlreadyExists=6]="AlreadyExists",n[n.PermissionDenied=7]="PermissionDenied",n[n.ResourceExhausted=8]="ResourceExhausted",n[n.FailedPrecondition=9]="FailedPrecondition",n[n.Aborted=10]="Aborted",n[n.OutOfRange=11]="OutOfRange",n[n.Unimplemented=12]="Unimplemented",n[n.Internal=13]="Internal",n[n.Unavailable=14]="Unavailable",n[n.DataLoss=15]="DataLoss",n[n.Unauthenticated=16]="Unauthenticated"})(R||(R={}));function _e(n){let e=R[n];return typeof e!="string"?n.toString():e[0].toLowerCase()+e.substring(1).replace(/[A-Z]/g,t=>"_"+t.toLowerCase())}var Ln;function Ka(n){if(!Ln){Ln={};for(let e of Object.values(R))typeof e!="string"&&(Ln[_e(e)]=e)}return Ln[n]}var b=class n extends Error{constructor(e,t=R.Unknown,s,r,o){super(Zs(e,t)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=e,this.code=t,this.metadata=new Headers(s??{}),this.details=r??[],this.cause=o}static from(e,t=R.Unknown){return e instanceof n?e:e instanceof Error?e.name=="AbortError"?new n(e.message,R.Canceled):new n(e.message,t,void 0,void 0,e):new n(String(e),t,void 0,void 0,e)}static[Symbol.hasInstance](e){return e instanceof Error?Object.getPrototypeOf(e)===n.prototype?!0:e.name==="ConnectError"&&"code"in e&&typeof e.code=="number"&&"metadata"in e&&"details"in e&&Array.isArray(e.details)&&"rawMessage"in e&&typeof e.rawMessage=="string"&&"cause"in e:!1}findDetails(e){let t="typeName"in e?{findMessage:r=>r===e.typeName?e:void 0}:e,s=[];for(let r of this.details){if(r instanceof c){t.findMessage(r.getType().typeName)&&s.push(r);continue}let o=t.findMessage(r.type);if(o)try{s.push(o.fromBinary(r.value))}catch{}}return s}};function Zs(n,e){return n.length?`[${_e(e)}] ${n}`:`[${_e(e)}]`}function Zr(...n){let e=new Headers;for(let t of n)t.forEach((s,r)=>{e.append(r,s)});return e}function Xa(n,e){let t={};for(let[s,r]of Object.entries(n.methods)){let o=e(Object.assign(Object.assign({},r),{localName:s,service:n}));o!=null&&(t[s]=o)}return t}function _r(n){let e,t=new Uint8Array(0);function s(r){let o=new Uint8Array(t.length+r.length);o.set(t),o.set(r,t.length),t=o}return new ReadableStream({start(){e=n.getReader()},async pull(r){let o;for(;;){if(o===void 0&&t.byteLength>=5){let u=0;for(let f=1;f<5;f++)u=(u<<8)+t[f];o={flags:t[0],length:u}}if(o!==void 0&&t.byteLength>=o.length+5)break;let l=await e.read();if(l.done)break;s(l.value)}if(o===void 0){if(t.byteLength==0){r.close();return}r.error(new b("premature end of stream",R.DataLoss));return}let i=t.subarray(5,5+o.length);t=t.subarray(5+o.length),r.enqueue({flags:o.flags,data:i})}})}function ea(n,e){let t=new Uint8Array(e.length+5);t.set(e,5);let s=new DataView(t.buffer,t.byteOffset,t.byteLength);return s.setUint8(0,n),s.setUint32(1,e.length),t}var _s=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof __values=="function"?__values(n):n[Symbol.iterator](),t={},s("next"),s("throw"),s("return"),t[Symbol.asyncIterator]=function(){return this},t);function s(o){t[o]=n[o]&&function(i){return new Promise(function(l,u){i=n[o](i),r(l,u,i.done,i.value)})}}function r(o,i,l,u){Promise.resolve(u).then(function(f){o({value:f,done:l})},i)}},et=function(n){return this instanceof et?(this.v=n,this):new et(n)},eo=function(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s=t.apply(n,e||[]),r,o=[];return r={},l("next"),l("throw"),l("return",i),r[Symbol.asyncIterator]=function(){return this},r;function i(p){return function(y){return Promise.resolve(y).then(p,P)}}function l(p,y){s[p]&&(r[p]=function(w){return new Promise(function(S,E){o.push([p,w,S,E])>1||u(p,w)})},y&&(r[p]=y(r[p])))}function u(p,y){try{f(s[p](y))}catch(w){h(o[0][3],w)}}function f(p){p.value instanceof et?Promise.resolve(p.value.v).then(g,P):h(o[0][2],p)}function g(p){u("next",p)}function P(p){u("throw",p)}function h(p,y){p(y),o.shift(),o.length&&u(o[0][0],o[0][1])}},to=function(n){var e,t;return e={},s("next"),s("throw",function(r){throw r}),s("return"),e[Symbol.iterator]=function(){return this},e;function s(r,o){e[r]=n[r]?function(i){return(t=!t)?{value:et(n[r](i)),done:!1}:o?o(i):i}:o}};function Qa(n){return eo(this,arguments,function*(){yield et(yield*to(_s(n)))})}var Za=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof __values=="function"?__values(n):n[Symbol.iterator](),t={},s("next"),s("throw"),s("return"),t[Symbol.asyncIterator]=function(){return this},t);function s(o){t[o]=n[o]&&function(i){return new Promise(function(l,u){i=n[o](i),r(l,u,i.done,i.value)})}}function r(o,i,l,u){Promise.resolve(u).then(function(f){o({value:f,done:l})},i)}},Oe=function(n){return this instanceof Oe?(this.v=n,this):new Oe(n)},no=function(n){var e,t;return e={},s("next"),s("throw",function(r){throw r}),s("return"),e[Symbol.iterator]=function(){return this},e;function s(r,o){e[r]=n[r]?function(i){return(t=!t)?{value:Oe(n[r](i)),done:!1}:o?o(i):i}:o}},ro=function(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s=t.apply(n,e||[]),r,o=[];return r={},l("next"),l("throw"),l("return",i),r[Symbol.asyncIterator]=function(){return this},r;function i(p){return function(y){return Promise.resolve(y).then(p,P)}}function l(p,y){s[p]&&(r[p]=function(w){return new Promise(function(S,E){o.push([p,w,S,E])>1||u(p,w)})},y&&(r[p]=y(r[p])))}function u(p,y){try{f(s[p](y))}catch(w){h(o[0][3],w)}}function f(p){p.value instanceof Oe?Promise.resolve(p.value.v).then(g,P):h(o[0][2],p)}function g(p){u("next",p)}function P(p){u("throw",p)}function h(p,y){p(y),o.shift(),o.length&&u(o[0][0],o[0][1])}};function W(n,e){return Xa(n,t=>{switch(t.kind){case T.Unary:return ao(e,n,t);case T.ServerStreaming:return so(e,n,t);case T.ClientStreaming:return oo(e,n,t);case T.BiDiStreaming:return io(e,n,t);default:return null}})}function ao(n,e,t){return async function(s,r){var o,i;let l=await n.unary(e,t,r?.signal,r?.timeoutMs,r?.headers,s,r?.contextValues);return(o=r?.onHeader)===null||o===void 0||o.call(r,l.header),(i=r?.onTrailer)===null||i===void 0||i.call(r,l.trailer),l.message}}function so(n,e,t){return function(s,r){return _a(n.stream(e,t,r?.signal,r?.timeoutMs,r?.headers,Qa([s]),r?.contextValues),r)}}function oo(n,e,t){return async function(s,r){var o,i,l,u,f,g;let P=await n.stream(e,t,r?.signal,r?.timeoutMs,r?.headers,s,r?.contextValues);(f=r?.onHeader)===null||f===void 0||f.call(r,P.header);let h;try{for(var p=!0,y=Za(P.message),w;w=await y.next(),o=w.done,!o;p=!0)u=w.value,p=!1,h=u}catch(S){i={error:S}}finally{try{!p&&!o&&(l=y.return)&&await l.call(y)}finally{if(i)throw i.error}}if(!h)throw new b("protocol error: missing response message",R.Internal);return(g=r?.onTrailer)===null||g===void 0||g.call(r,P.trailer),h}}function io(n,e,t){return function(s,r){return _a(n.stream(e,t,r?.signal,r?.timeoutMs,r?.headers,s,r?.contextValues),r)}}function _a(n,e){let t=function(){var s,r;return ro(this,arguments,function*(){let o=yield Oe(n);(s=e?.onHeader)===null||s===void 0||s.call(e,o.header),yield Oe(yield*no(Za(o.message))),(r=e?.onTrailer)===null||r===void 0||r.call(e,o.trailer)})}()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>t.next()})}}function es(...n){let e=new AbortController,t=n.filter(r=>r!==void 0).concat(e.signal);for(let r of t){if(r.aborted){s.apply(r);break}r.addEventListener("abort",s)}function s(){e.signal.aborted||e.abort(ta(this));for(let r of t)r.removeEventListener("abort",s)}return e}function ts(n){let e=new AbortController,t=()=>{e.abort(new b("the operation timed out",R.DeadlineExceeded))},s;return n!==void 0&&(n<=0?t():s=setTimeout(t,n)),{signal:e.signal,cleanup:()=>clearTimeout(s)}}function ta(n){if(!n.aborted)return;if(n.reason!==void 0)return n.reason;let e=new Error("This operation was aborted");return e.name="AbortError",e}function Fn(){return{get(n){return n.id in this?this[n.id]:n.defaultValue},set(n,e){return this[n.id]=e,this},delete(n){return delete this[n.id],this}}}function Un(n,e,t){let s=typeof e=="string"?e:e.typeName,r=typeof t=="string"?t:t.name;return n.toString().replace(/\/?$/,`/${s}/${r}`)}function na(n,e){return e instanceof n?e:new n(e)}function ns(n,e){function t(s){return s.done===!0?s:{done:s.done,value:na(n,s.value)}}return{[Symbol.asyncIterator](){let s=e[Symbol.asyncIterator](),r={next:()=>s.next().then(t)};return s.throw!==void 0&&(r.throw=o=>s.throw(o).then(t)),s.return!==void 0&&(r.return=o=>s.return(o).then(t)),r}}}function An(n){var e;let t=Object.assign({},n);return(e=t.ignoreUnknownFields)!==null&&e!==void 0||(t.ignoreUnknownFields=!0),t}function Vn(n,e,t,s){let r=e?rs(n.I,s):as(n.I,t);return{parse:(e?rs(n.O,s):as(n.O,t)).parse,serialize:r.serialize}}function rs(n,e){return{parse(t){try{return n.fromBinary(t,e)}catch(s){let r=s instanceof Error?s.message:String(s);throw new b(`parse binary: ${r}`,R.InvalidArgument)}},serialize(t){try{return t.toBinary(e)}catch(s){let r=s instanceof Error?s.message:String(s);throw new b(`serialize binary: ${r}`,R.Internal)}}}}function as(n,e){var t,s;let r=(t=e?.textEncoder)!==null&&t!==void 0?t:new TextEncoder,o=(s=e?.textDecoder)!==null&&s!==void 0?s:new TextDecoder,i=An(e);return{parse(l){try{let u=o.decode(l);return n.fromJsonString(u,i)}catch(u){throw b.from(u,R.InvalidArgument)}},serialize(l){try{let u=l.toJsonString(i);return r.encode(u)}catch(u){throw b.from(u,R.Internal)}}}}var lo=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var ss="application/proto",os="application/json",is="application/connect+proto",ls="application/connect+json";function us(n){let e=n?.match(lo);if(!e)return;let t=!!e[1],s=!!e[3];return{stream:t,binary:s}}function tt(n,e,t){if(e&&new Headers(e).forEach((i,l)=>t.metadata.append(l,i)),typeof n!="object"||n==null||Array.isArray(n)||!("code"in n)||typeof n.code!="string")throw t;let s=Ka(n.code);if(s===void 0)throw t;let r=n.message;if(r!=null&&typeof r!="string")throw t;let o=new b(r??"",s,e);if("details"in n&&Array.isArray(n.details))for(let i of n.details){if(i===null||typeof i!="object"||Array.isArray(i)||typeof i.type!="string"||typeof i.value!="string"||"debug"in i&&typeof i.debug!="object")throw t;try{o.details.push({type:i.type,value:D.dec(i.value),debug:i.debug})}catch{throw t}}return o}var Gn=2;function ra(n){let e=new b("invalid end stream",R.InvalidArgument),t;try{t=JSON.parse(typeof n=="string"?n:new TextDecoder().decode(n))}catch{throw e}if(typeof t!="object"||t==null||Array.isArray(t))throw e;let s=new Headers;if("metadata"in t){if(typeof t.metadata!="object"||t.metadata==null||Array.isArray(t.metadata))throw e;for(let[o,i]of Object.entries(t.metadata)){if(!Array.isArray(i)||i.some(l=>typeof l!="string"))throw e;for(let l of i)s.append(o,l)}}let r="error"in t?tt(t.error,s,e):void 0;return{metadata:s,error:r}}var nt="Content-Type",cs="Content-Length",Dn="Content-Encoding";var aa="Accept-Encoding";var ds="Connect-Timeout-Ms",Hn="Connect-Protocol-Version",fs="User-Agent";function ms(n){switch(n){case 400:return R.InvalidArgument;case 401:return R.Unauthenticated;case 403:return R.PermissionDenied;case 404:return R.Unimplemented;case 408:return R.DeadlineExceeded;case 409:return R.Aborted;case 412:return R.FailedPrecondition;case 413:return R.ResourceExhausted;case 415:return R.Internal;case 429:return R.Unavailable;case 431:return R.ResourceExhausted;case 502:return R.Unavailable;case 503:return R.Unavailable;case 504:return R.Unavailable;default:return R.Unknown}}function Yn(n){let e=new Headers,t=new Headers;return n.forEach((s,r)=>{r.toLowerCase().startsWith("trailer-")?t.set(r.substring(8),s):e.set(r,s)}),[e,t]}var jn="1";function zn(n,e,t,s,r){let o=new Headers(s??{});return t!==void 0&&o.set(ds,`${t}`),o.set(nt,n==T.Unary?e?ss:os:e?is:ls),o.set(Hn,jn),r&&o.set(fs,"connect-es/1.3.0"),o}function $n(n,e,t){let s=t.get("Content-Type"),r=us(s);if(e!==200){let o=new b(`HTTP ${e}`,ms(e),t);if(n==T.Unary&&r&&!r.binary)return{isUnaryError:!0,unaryError:o};throw o}return{isUnaryError:!1}}var ps="application/";function co(n,e){return e?D.enc(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):encodeURIComponent(new TextDecoder().decode(n))}function sa(n,e,t){let s=`?connect=v${jn}`,r=n.header.get(nt);r?.indexOf(ps)===0&&(s+="&encoding="+encodeURIComponent(r.slice(ps.length)));let o=n.header.get(Dn);o!==null&&o!=="identity"&&(s+="&compression="+encodeURIComponent(o),t=!0),t&&(s+="&base64=1"),s+="&message="+co(e,t);let i=n.url+s,l=new Headers(n.header);return[Hn,nt,cs,Dn,aa].forEach(u=>l.delete(u)),Object.assign(Object.assign({},n),{init:Object.assign(Object.assign({},n.init),{method:"GET"}),url:i,header:l})}function oa(n){let e=ys(n.next,n.interceptors),[t,s,r]=gs(n),o=Object.assign(Object.assign({},n.req),{message:na(n.req.method.I,n.req.message),signal:t});return e(o).then(i=>(r(),i),s)}function ia(n){let e=ys(n.next,n.interceptors),[t,s,r]=gs(n),o=Object.assign(Object.assign({},n.req),{message:ns(n.req.method.I,n.req.message),signal:t}),i=!1;return t.addEventListener("abort",function(){var l,u;let f=n.req.message[Symbol.asyncIterator]();i||(l=f.throw)===null||l===void 0||l.call(f,this.reason).catch(()=>{}),(u=f.return)===null||u===void 0||u.call(f).catch(()=>{})}),e(o).then(l=>Object.assign(Object.assign({},l),{message:{[Symbol.asyncIterator](){let u=l.message[Symbol.asyncIterator]();return{next(){return u.next().then(f=>(f.done==!0&&(i=!0,r()),f),s)}}}}}),s)}function gs(n){let{signal:e,cleanup:t}=ts(n.timeoutMs),s=es(n.signal,e);return[s.signal,function(o){let i=b.from(e.aborted?ta(e):o);return s.abort(i),t(),Promise.reject(i)},function(){t(),s.abort()}]}function ys(n,e){var t;return(t=e?.concat().reverse().reduce((s,r)=>r(s),n))!==null&&t!==void 0?t:n}function hs(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var rt=function(n){return this instanceof rt?(this.v=n,this):new rt(n)},fo=function(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s=t.apply(n,e||[]),r,o=[];return r={},l("next"),l("throw"),l("return",i),r[Symbol.asyncIterator]=function(){return this},r;function i(p){return function(y){return Promise.resolve(y).then(p,P)}}function l(p,y){s[p]&&(r[p]=function(w){return new Promise(function(S,E){o.push([p,w,S,E])>1||u(p,w)})},y&&(r[p]=y(r[p])))}function u(p,y){try{f(s[p](y))}catch(w){h(o[0][3],w)}}function f(p){p.value instanceof rt?Promise.resolve(p.value.v).then(g,P):h(o[0][2],p)}function g(p){u("next",p)}function P(p){u("throw",p)}function h(p,y){p(y),o.shift(),o.length&&u(o[0][0],o[0][1])}};function la(n){var e;hs();let t=(e=n.useBinaryFormat)!==null&&e!==void 0?e:!1;return{async unary(s,r,o,i,l,u,f){var g;let{serialize:P,parse:h}=Vn(r,t,n.jsonOptions,n.binaryOptions);return i=i===void 0?n.defaultTimeoutMs:i<=0?void 0:i,await oa({interceptors:n.interceptors,signal:o,timeoutMs:i,req:{stream:!1,service:s,method:r,url:Un(n.baseUrl,s,r),init:{method:"POST",credentials:(g=n.credentials)!==null&&g!==void 0?g:"same-origin",redirect:"error",mode:"cors"},header:zn(r.kind,t,i,l,!1),contextValues:f??Fn(),message:u},next:async p=>{var y;let w=n.useHttpGet===!0&&r.idempotency===Ce.NoSideEffects,S=null;w?p=sa(p,P(p.message),t):S=P(p.message);let O=await((y=n.fetch)!==null&&y!==void 0?y:globalThis.fetch)(p.url,Object.assign(Object.assign({},p.init),{headers:p.header,signal:p.signal,body:S})),{isUnaryError:G,unaryError:Ne}=$n(r.kind,O.status,O.headers);if(G)throw tt(await O.json(),Zr(...Yn(O.headers)),Ne);let[it,Wn]=Yn(O.headers);return{stream:!1,service:s,method:r,header:it,message:t?h(new Uint8Array(await O.arrayBuffer())):r.O.fromJson(await O.json(),An(n.jsonOptions)),trailer:Wn}}})},async stream(s,r,o,i,l,u,f){var g;let{serialize:P,parse:h}=Vn(r,t,n.jsonOptions,n.binaryOptions);function p(w,S,E){return fo(this,arguments,function*(){let G=_r(w).getReader(),Ne=!1;for(;;){let it=yield rt(G.read());if(it.done)break;let{flags:Wn,data:da}=it.value;if((Wn&Gn)===Gn){Ne=!0;let Kn=ra(da);if(Kn.error){let lt=Kn.error;throw E.forEach((Xn,Ms)=>{lt.metadata.append(Ms,Xn)}),lt}Kn.metadata.forEach((lt,Xn)=>S.set(Xn,lt));continue}yield yield rt(h(da))}if(!Ne)throw"missing EndStreamResponse"})}async function y(w){if(r.kind!=T.ServerStreaming)throw"The fetch API does not support streaming request bodies";let S=await w[Symbol.asyncIterator]().next();if(S.done==!0)throw"missing request message";return ea(0,P(S.value))}return i=i===void 0?n.defaultTimeoutMs:i<=0?void 0:i,await ia({interceptors:n.interceptors,timeoutMs:i,signal:o,req:{stream:!0,service:s,method:r,url:Un(n.baseUrl,s,r),init:{method:"POST",credentials:(g=n.credentials)!==null&&g!==void 0?g:"same-origin",redirect:"error",mode:"cors"},header:zn(r.kind,t,i,l,!1),contextValues:f??Fn(),message:u},next:async w=>{var S;let O=await((S=n.fetch)!==null&&S!==void 0?S:globalThis.fetch)(w.url,Object.assign(Object.assign({},w.init),{headers:w.header,signal:w.signal,body:await y(w.message)}));if($n(r.kind,O.status,O.headers),O.body===null)throw"missing response body";let G=new Headers;return Object.assign(Object.assign({},w),{header:O.headers,trailer:G,message:p(O.body,G,O.headers)})}})}}}var mo="https://demo.lunabrain.com",at=la({baseUrl:`${mo}/api`||"error"}),od=W(Ya,at),Ts=W(ja,at),ws=W(za,at),id=W($a,at),ld=W(Wa,at);var Ps="content/get",Rs="content/save",Js="history/get",Ss="history/delete";function ua(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){var e=Math.random()*16|0,t=n==="x"?e:e&3|8;return t.toString(16)})}function ks(n,e){return new Promise((t,s)=>{chrome.storage.local.set({[n]:e},()=>{chrome.runtime.lastError?s(chrome.runtime.lastError):t(void 0)})})}function xs(n){return new Promise((e,t)=>{chrome.storage.local.get([n],s=>{chrome.runtime.lastError?t(chrome.runtime.lastError):e(s[n])})})}var ca,ot,Es=async()=>{if(ot)return ot;try{let n=await xs("history");if(n)return ot=N.fromJson(JSON.parse(n)),ot}catch(n){console.warn("failed to load history from localstorage",n)}return new N({id:ua(),type:{case:"browserHistory",value:new $},tags:[]})},bs=async()=>(await Es()).type.value,Is=async n=>{let e=await Es(),t=new N({id:e.id,type:{case:"browserHistory",value:n},tags:e.tags});ks("history",t.toJsonString()),ot=t};async function Os(n){try{let e=await Ts.save({content:n,related:[]});console.log(e)}catch(e){console.error("failed to save",e)}}var st=new Map;function Ns(n){let e=/^https:\/\/chat\.openai\.com\/backend-api\/conversation\/([0-9a-fA-F\-]+)$/,t=n.match(e);return t?t[1]:null}var po=()=>{(async()=>{let s=await ws.login({},{});console.log(s)})(),chrome.runtime.onInstalled.addListener(function(){console.log("Extension Installed")}),chrome.runtime.onStartup.addListener(function(){console.log("Extension Started")}),chrome.history.onVisited.addListener(s=>{console.log("onVisited",s.url)}),chrome.webNavigation.onCommitted.addListener(s=>{console.log("onCommitted",s.url)});function n(s){return new Promise((r,o)=>{chrome.tabs.get(s,i=>{chrome.runtime.lastError?r(void 0):r(i)})})}chrome.runtime.onMessage.addListener((s,r,o)=>(s.action===Ps&&(o({data:ca}),ca=void 0),s.action===Js&&(async()=>{let i=await bs();o({data:i.toJsonString(),status:!0})})(),s.action===Ss&&(async()=>(await Is(new $),o({data:{},status:!0})))(),s.action===Rs&&(async()=>{let i=N.fromJson(s.data);try{await Os(i)}catch(l){o({data:{error:l}});return}o({data:{}})})(),!0)),chrome.tabs.onUpdated.addListener(async(s,r,o)=>{if(!s)return;let i=await n(s);if(i){let l=st.get(s);if(l&&(st.set(s,{...l,tab:i,prev:l.tab}),r.status==="complete")){console.log("onUpdated:complete",s,i.url,i);let u=await bs();if(i.url){let f=new xe({id:ua(),url:i.url,title:i.title||"",open:Date.now(),close:-1}),g=u.nodes.find(p=>p.url===i.url);g||u.nodes.push(f);let P=g||f,h=u.nodes.find(p=>p.url===l?.prev?.url);console.log("prev",h,l),h&&(u.nodes[u.nodes.findIndex(p=>p.id===h.id)]=new xe({...h,close:Date.now()}),u.edges.push(new We({from:h.id,to:P.id,visitTime:Date.now(),tab:s.toString()})))}Is(u)}}}),chrome.tabs.onCreated.addListener(async s=>{if(!s.id)return;let r=await n(s.id);r&&st.set(s.id,{created:Date.now(),closed:-1,tab:r,prev:void 0})}),chrome.tabs.onRemoved.addListener(async(s,r)=>{let o=st.get(s);if(o){let i={...o,closed:Date.now()};st.set(s,i),console.log("tab was opened for",(i.closed-i.created)/1e3,"seconds")}}),chrome.webRequest.onBeforeRequest.addListener(s=>{if(!s.initiator||s.type!=="main_frame")return;let r=new URL(s.initiator),o=new URL(s.url);r.host!==o.host&&(r.host==="news.ycombinator.com"&&(ca={from:s.initiator,to:s.url}),console.log("onBeforeRequest",s.url,s))},{urls:[""]},[]);let e={},t={};chrome.webRequest.onCompleted.addListener(s=>{let r=t[s.url.toString()]||0;if(Ns(s.url)&&r<2){let o=e[s.url.toString()];fetch(s.url,{headers:o.map(i=>[i.name,i.value||""])}).then(i=>i.json()).then(i=>{console.log("json",i);let l=ke.fromJson(i,{ignoreUnknownFields:!0});Object.keys(i.mapping).map(f=>{let P=i.mapping[f].message?.content;if(!P)return;let h=[],p=[],y="";switch(P.content_type){case"text":h=P.parts;break;case"multimodal_text":p=P.parts.map(w=>$e.fromJson(w,{ignoreUnknownFields:!0}));break;case"code":y=P.text;break}l.mapping[f].message!==void 0&&(l.mapping[f].message.content=new ze({contentType:P.content_type,textParts:h,imageParts:p,text:y}))}),console.log(l);let u=new N({id:l.conversationId,type:{case:"chatgptConversation",value:l},tags:["chatgpt"]});Os(u)}).catch(i=>{console.error("failed to fetch",i)})}},{urls:[""]},[]),chrome.webRequest.onBeforeSendHeaders.addListener(s=>{let r="";if(!s.requestHeaders)return;let o=t[s.url.toString()]||0;Ns(s.url)&&(t[s.url.toString()]=o+1,e[s.url.toString()]=s.requestHeaders);for(let i of s.requestHeaders)if(i.name.toLowerCase()==="referer"&&i.value){r=i.value;break}},{urls:[""]},["requestHeaders"])};po();})(); +`:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(r){case 0:i=o,r=1;break;case 1:t[s++]=i<<2|(o&48)>>4,i=o,r=2;break;case 2:t[s++]=(i&15)<<4|(o&60)>>2,i=o,r=3;break;case 3:t[s++]=(i&3)<<6|o,r=0;break}}if(r==1)throw Error("invalid base64 string.");return t.subarray(0,s)},enc(n){let e="",t=0,s,r=0;for(let o=0;o>2],r=(s&3)<<4,t=1;break;case 1:e+=U[r|s>>4],r=(s&15)<<2,t=2;break;case 2:e+=U[r|s>>6],e+=U[s&63],t=0;break}return t&&(e+=U[r],e+="=",t==1&&(e+="=")),e}};var xa={ignoreUnknownFields:!1},ba={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function Hs(n){return n?Object.assign(Object.assign({},xa),n):xa}function Ys(n){return n?Object.assign(Object.assign({},ba),n):ba}function Rt(n){let e=n(js,Ia);return{makeReadOptions:Hs,makeWriteOptions:Ys,readMessage(t,s,r,o){if(s==null||Array.isArray(s)||typeof s!="object")throw new Error(`cannot decode message ${t.typeName} from JSON: ${this.debug(s)}`);o=o??new t;let i={};for(let[l,u]of Object.entries(s)){let f=t.fields.findJsonName(l);if(!f){if(!r.ignoreUnknownFields)throw new Error(`cannot decode message ${t.typeName} from JSON: key "${l}" is unknown`);continue}let g=f.localName,P=o;if(f.oneof){if(u===null&&f.kind=="scalar")continue;let h=i[f.oneof.localName];if(h)throw new Error(`cannot decode message ${t.typeName} from JSON: multiple keys for oneof "${f.oneof.name}" present: "${h}", "${l}"`);i[f.oneof.localName]=l,P=P[f.oneof.localName]={case:g},g="value"}if(f.repeated){if(u===null)continue;if(!Array.isArray(u))throw new Error(`cannot decode field ${t.typeName}.${f.name} from JSON: ${this.debug(u)}`);let h=P[g];for(let p of u){if(p===null)throw new Error(`cannot decode field ${t.typeName}.${f.name} from JSON: ${this.debug(p)}`);let y;switch(f.kind){case"message":y=f.T.fromJson(p,r);break;case"enum":if(y=ar(f.T,p,r.ignoreUnknownFields),y===void 0)continue;break;case"scalar":try{y=Be(f.T,p,f.L)}catch(w){let S=`cannot decode field ${t.typeName}.${f.name} from JSON: ${this.debug(p)}`;throw w instanceof Error&&w.message.length>0&&(S+=`: ${w.message}`),new Error(S)}break}h.push(y)}}else if(f.kind=="map"){if(u===null)continue;if(Array.isArray(u)||typeof u!="object")throw new Error(`cannot decode field ${t.typeName}.${f.name} from JSON: ${this.debug(u)}`);let h=P[g];for(let[p,y]of Object.entries(u)){if(y===null)throw new Error(`cannot decode field ${t.typeName}.${f.name} from JSON: map value null`);let w;switch(f.V.kind){case"message":w=f.V.T.fromJson(y,r);break;case"enum":if(w=ar(f.V.T,y,r.ignoreUnknownFields),w===void 0)continue;break;case"scalar":try{w=Be(f.V.T,y,v.BIGINT)}catch(S){let E=`cannot decode map value for field ${t.typeName}.${f.name} from JSON: ${this.debug(u)}`;throw S instanceof Error&&S.message.length>0&&(E+=`: ${S.message}`),new Error(E)}break}try{h[Be(f.K,f.K==m.BOOL?p=="true"?!0:p=="false"?!1:p:p,v.BIGINT).toString()]=w}catch(S){let E=`cannot decode map key for field ${t.typeName}.${f.name} from JSON: ${this.debug(u)}`;throw S instanceof Error&&S.message.length>0&&(E+=`: ${S.message}`),new Error(E)}}}else switch(f.kind){case"message":let h=f.T;if(u===null&&h.typeName!="google.protobuf.Value"){if(f.oneof)throw new Error(`cannot decode field ${t.typeName}.${f.name} from JSON: null is invalid for oneof field "${l}"`);continue}P[g]instanceof c?P[g].fromJson(u,r):(P[g]=h.fromJson(u,r),h.fieldWrapper&&!f.oneof&&(P[g]=h.fieldWrapper.unwrapField(P[g])));break;case"enum":let p=ar(f.T,u,r.ignoreUnknownFields);p!==void 0&&(P[g]=p);break;case"scalar":try{P[g]=Be(f.T,u,f.L)}catch(y){let w=`cannot decode field ${t.typeName}.${f.name} from JSON: ${this.debug(u)}`;throw y instanceof Error&&y.message.length>0&&(w+=`: ${y.message}`),new Error(w)}break}}return o},writeMessage(t,s){let r=t.getType(),o={},i;try{for(let l of r.fields.byMember()){let u;if(l.kind=="oneof"){let f=t[l.localName];if(f.value===void 0)continue;if(i=l.findField(f.case),!i)throw"oneof case not found: "+f.case;u=e(i,f.value,s)}else i=l,u=e(i,t[i.localName],s);u!==void 0&&(o[s.useProtoFieldName?i.name:i.jsonName]=u)}}catch(l){let u=i?`cannot encode field ${r.typeName}.${i.name} to JSON`:`cannot encode message ${r.typeName} to JSON`,f=l instanceof Error?l.message:String(l);throw new Error(u+(f.length>0?`: ${f}`:""))}return o},readScalar:Be,writeScalar:Ia,debug:Oa}}function Oa(n){if(n===null)return"null";switch(typeof n){case"object":return Array.isArray(n)?"array":"object";case"string":return n.length>100?"string":`"${n.split('"').join('\\"')}"`;default:return String(n)}}function Be(n,e,t){switch(n){case m.DOUBLE:case m.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""||typeof e=="string"&&e.trim().length!==e.length||typeof e!="string"&&typeof e!="number")break;let s=Number(e);if(Number.isNaN(s)||!Number.isFinite(s))break;return n==m.FLOAT&&ut(s),s;case m.INT32:case m.FIXED32:case m.SFIXED32:case m.SINT32:case m.UINT32:if(e===null)return 0;let r;if(typeof e=="number"?r=e:typeof e=="string"&&e.length>0&&e.trim().length===e.length&&(r=Number(e)),r===void 0)break;return n==m.UINT32?Ee(r):K(r),r;case m.INT64:case m.SFIXED64:case m.SINT64:if(e===null)return J.zero;if(typeof e!="number"&&typeof e!="string")break;let o=J.parse(e);return t?o.toString():o;case m.FIXED64:case m.UINT64:if(e===null)return J.zero;if(typeof e!="number"&&typeof e!="string")break;let i=J.uParse(e);return t?i.toString():i;case m.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case m.STRING:if(e===null)return"";if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case m.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return D.dec(e)}throw new Error}function ar(n,e,t){if(e===null)return 0;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":let s=n.findName(e);if(s||t)return s?.no;break}throw new Error(`cannot decode enum ${n.typeName} from JSON: ${Oa(e)}`)}function js(n,e,t,s){var r;if(e===void 0)return e;if(e===0&&!t)return;if(s)return e;if(n.typeName=="google.protobuf.NullValue")return null;let o=n.findNumber(e);return(r=o?.name)!==null&&r!==void 0?r:e}function Ia(n,e,t){if(e!==void 0)switch(n){case m.INT32:case m.SFIXED32:case m.SINT32:case m.FIXED32:case m.UINT32:return x(typeof e=="number"),e!=0||t?e:void 0;case m.FLOAT:case m.DOUBLE:return x(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e!==0||t?e:void 0;case m.STRING:return x(typeof e=="string"),e.length>0||t?e:void 0;case m.BOOL:return x(typeof e=="boolean"),e||t?e:void 0;case m.UINT64:case m.FIXED64:case m.INT64:case m.SFIXED64:case m.SINT64:return x(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),t||e!=0?e.toString(10):void 0;case m.BYTES:return x(e instanceof Uint8Array),t||e.byteLength>0?D.enc(e):void 0}}function Na(){return Rt((n,e)=>function(s,r,o){if(s.kind=="map"){let i={};switch(s.V.kind){case"scalar":for(let[u,f]of Object.entries(r)){let g=e(s.V.T,f,!0);x(g!==void 0),i[u.toString()]=g}break;case"message":for(let[u,f]of Object.entries(r))i[u.toString()]=f.toJson(o);break;case"enum":let l=s.V.T;for(let[u,f]of Object.entries(r)){x(f===void 0||typeof f=="number");let g=n(l,f,!0,o.enumAsInteger);x(g!==void 0),i[u.toString()]=g}break}return o.emitDefaultValues||Object.keys(i).length>0?i:void 0}else if(s.repeated){let i=[];switch(s.kind){case"scalar":for(let l=0;l0?i:void 0}else switch(s.kind){case"scalar":return e(s.T,r,!!s.oneof||s.opt||o.emitDefaultValues);case"enum":return n(s.T,r,!!s.oneof||s.opt||o.emitDefaultValues,o.enumAsInteger);case"message":return r!==void 0?z(s.T,r).toJson(o):void 0}})}function St(){return{setEnumType:Qn,initPartial(n,e){if(n===void 0)return;let t=e.getType();for(let s of t.fields.byMember()){let r=s.localName,o=e,i=n;if(i[r]!==void 0)switch(s.kind){case"oneof":let l=i[r].case;if(l===void 0)continue;let u=s.findField(l),f=i[r].value;u&&u.kind=="message"&&!(f instanceof u.T)?f=new u.T(f):u&&u.kind==="scalar"&&u.T===m.BYTES&&(f=ve(f)),o[r]={case:l,value:f};break;case"scalar":case"enum":let g=i[r];s.T===m.BYTES&&(g=s.repeated?g.map(ve):ve(g)),o[r]=g;break;case"map":switch(s.V.kind){case"scalar":case"enum":if(s.V.T===m.BYTES)for(let[p,y]of Object.entries(i[r]))o[r][p]=ve(y);else Object.assign(o[r],i[r]);break;case"message":let h=s.V.T;for(let p of Object.keys(i[r])){let y=i[r][p];h.fieldWrapper||(y=new h(y)),o[r][p]=y}break}break;case"message":let P=s.T;if(s.repeated)o[r]=i[r].map(h=>h instanceof P?h:new P(h));else if(i[r]!==void 0){let h=i[r];P.fieldWrapper?P.typeName==="google.protobuf.BytesValue"?o[r]=ve(h):o[r]=h:o[r]=h instanceof P?h:new P(h)}break}}},equals(n,e,t){return e===t?!0:!e||!t?!1:n.fields.byMember().every(s=>{let r=e[s.localName],o=t[s.localName];if(s.repeated){if(r.length!==o.length)return!1;switch(s.kind){case"message":return r.every((i,l)=>s.T.equals(i,o[l]));case"scalar":return r.every((i,l)=>L(s.T,i,o[l]));case"enum":return r.every((i,l)=>L(m.INT32,i,o[l]))}throw new Error(`repeated cannot contain ${s.kind}`)}switch(s.kind){case"message":return s.T.equals(r,o);case"enum":return L(m.INT32,r,o);case"scalar":return L(s.T,r,o);case"oneof":if(r.case!==o.case)return!1;let i=s.findField(r.case);if(i===void 0)return!0;switch(i.kind){case"message":return i.T.equals(r.value,o.value);case"enum":return L(m.INT32,r.value,o.value);case"scalar":return L(i.T,r.value,o.value)}throw new Error(`oneof cannot contain ${i.kind}`);case"map":let l=Object.keys(r).concat(Object.keys(o));switch(s.V.kind){case"message":let u=s.V.T;return l.every(g=>u.equals(r[g],o[g]));case"enum":return l.every(g=>L(m.INT32,r[g],o[g]));case"scalar":let f=s.V.T;return l.every(g=>L(f,r[g],o[g]))}break}})},clone(n){let e=n.getType(),t=new e,s=t;for(let r of e.fields.byMember()){let o=n[r.localName],i;if(r.repeated)i=o.map(Jt);else if(r.kind=="map"){i=s[r.localName];for(let[l,u]of Object.entries(o))i[l]=Jt(u)}else r.kind=="oneof"?i=r.findField(o.case)?{case:o.case,value:Jt(o.value)}:{case:void 0}:i=Jt(o);s[r.localName]=i}return t}}}function Jt(n){if(n===void 0)return n;if(n instanceof c)return n.clone();if(n instanceof Uint8Array){let e=new Uint8Array(n.byteLength);return e.set(n),e}return n}function ve(n){return n instanceof Uint8Array?n:new Uint8Array(n)}var Z=class{constructor(e,t){this._fields=e,this._normalizer=t}findJsonName(e){if(!this.jsonNames){let t={};for(let s of this.list())t[s.jsonName]=t[s.name]=s;this.jsonNames=t}return this.jsonNames[e]}find(e){if(!this.numbers){let t={};for(let s of this.list())t[s.no]=s;this.numbers=t}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,t)=>e.no-t.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];let e=this.members,t;for(let s of this.list())s.oneof?s.oneof!==t&&(t=s.oneof,e.push(t)):e.push(s)}return this.members}};function qe(n,e){let t=Ma(n);return e?t:Ks(Ws(t))}function Ea(n){return qe(n,!1)}var kt=Ma;function Ma(n){let e=!1,t=[];for(let s=0;s`${n}$`,Ws=n=>$s.has(n)?Ba(n):n,Ks=n=>zs.has(n)?Ba(n):n;var _=class{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=Ea(e)}addField(e){x(e.oneof===this,`field ${e.name} not one of ${this.name}`),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let t=0;t0?`: ${l}`:""))}return t.writeUnknownFields&&this.writeUnknownFields(n,e),e}})}function qa(){return Rt((n,e)=>function(s,r,o){if(s.kind=="map"){let i={};switch(s.V.kind){case"scalar":for(let[u,f]of Object.entries(r)){let g=e(s.V.T,f,!0);x(g!==void 0),i[u.toString()]=g}break;case"message":for(let[u,f]of Object.entries(r))i[u.toString()]=f.toJson(o);break;case"enum":let l=s.V.T;for(let[u,f]of Object.entries(r)){x(f===void 0||typeof f=="number");let g=n(l,f,!0,o.enumAsInteger);x(g!==void 0),i[u.toString()]=g}break}return o.emitDefaultValues||Object.keys(i).length>0?i:void 0}else if(s.repeated){let i=[];switch(s.kind){case"scalar":for(let l=0;l0?i:void 0}else{if(r===void 0){if(!s.oneof&&!s.opt)throw"required field not set";return}switch(s.kind){case"scalar":return e(s.T,r,!0);case"enum":return n(s.T,r,!0,o.enumAsInteger);case"message":return z(s.T,r).toJson(o)}}})}var d=ct("proto2",qa(),va(),Object.assign(Object.assign({},St()),{newFieldList(n){return new Z(n,Qs)},initFields(n){for(let e of n.getType().fields.byMember()){let t=e.localName,s=n;if(e.repeated){s[t]=[];continue}switch(e.kind){case"oneof":s[t]={case:void 0};break;case"map":s[t]={};break;case"scalar":case"enum":case"message":break}}}}));function Qs(n){var e,t,s,r,o;let i=[],l;for(let u of typeof n=="function"?n():n){let f=u;if(f.localName=qe(u.name,u.oneof!==void 0),f.jsonName=(e=u.jsonName)!==null&&e!==void 0?e:kt(u.name),f.repeated=(t=u.repeated)!==null&&t!==void 0?t:!1,u.kind=="scalar"&&(f.L=(s=u.L)!==null&&s!==void 0?s:v.BIGINT),u.oneof!==void 0){let g=typeof u.oneof=="string"?u.oneof:u.oneof.name;(!l||l.name!=g)&&(l=new _(g)),f.oneof=l,l.addField(f)}u.kind=="message"&&(f.delimited=(r=u.delimited)!==null&&r!==void 0?r:!1),f.packed=(o=u.packed)!==null&&o!==void 0?o:!1,i.push(f)}return i}var T;(function(n){n[n.Unary=0]="Unary",n[n.ServerStreaming=1]="ServerStreaming",n[n.ClientStreaming=2]="ClientStreaming",n[n.BiDiStreaming=3]="BiDiStreaming"})(T||(T={}));var Ce;(function(n){n[n.NoSideEffects=1]="NoSideEffects",n[n.Idempotent=2]="Idempotent"})(Ce||(Ce={}));var H;(function(n){n[n.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",n[n.EDITION_PROTO2=998]="EDITION_PROTO2",n[n.EDITION_PROTO3=999]="EDITION_PROTO3",n[n.EDITION_2023=1e3]="EDITION_2023",n[n.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",n[n.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",n[n.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",n[n.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",n[n.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY"})(H||(H={}));d.util.setEnumType(H,"google.protobuf.Edition",[{no:0,name:"EDITION_UNKNOWN"},{no:998,name:"EDITION_PROTO2"},{no:999,name:"EDITION_PROTO3"},{no:1e3,name:"EDITION_2023"},{no:1,name:"EDITION_1_TEST_ONLY"},{no:2,name:"EDITION_2_TEST_ONLY"},{no:99997,name:"EDITION_99997_TEST_ONLY"},{no:99998,name:"EDITION_99998_TEST_ONLY"},{no:99999,name:"EDITION_99999_TEST_ONLY"}]);var Le=class n extends c{constructor(e){super(),this.file=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Le.runtime=d;Le.typeName="google.protobuf.FileDescriptorSet";Le.fields=d.util.newFieldList(()=>[{no:1,name:"file",kind:"message",T:ee,repeated:!0}]);var ee=class n extends c{constructor(e){super(),this.dependency=[],this.publicDependency=[],this.weakDependency=[],this.messageType=[],this.enumType=[],this.service=[],this.extension=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ee.runtime=d;ee.typeName="google.protobuf.FileDescriptorProto";ee.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"package",kind:"scalar",T:9,opt:!0},{no:3,name:"dependency",kind:"scalar",T:9,repeated:!0},{no:10,name:"public_dependency",kind:"scalar",T:5,repeated:!0},{no:11,name:"weak_dependency",kind:"scalar",T:5,repeated:!0},{no:4,name:"message_type",kind:"message",T:q,repeated:!0},{no:5,name:"enum_type",kind:"message",T:A,repeated:!0},{no:6,name:"service",kind:"message",T:le,repeated:!0},{no:7,name:"extension",kind:"message",T:Y,repeated:!0},{no:8,name:"options",kind:"message",T:ce,opt:!0},{no:9,name:"source_code_info",kind:"message",T:Re,opt:!0},{no:12,name:"syntax",kind:"scalar",T:9,opt:!0},{no:14,name:"edition",kind:"enum",T:d.getEnumType(H),opt:!0}]);var q=class n extends c{constructor(e){super(),this.field=[],this.extension=[],this.nestedType=[],this.enumType=[],this.extensionRange=[],this.oneofDecl=[],this.reservedRange=[],this.reservedName=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};q.runtime=d;q.typeName="google.protobuf.DescriptorProto";q.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"field",kind:"message",T:Y,repeated:!0},{no:6,name:"extension",kind:"message",T:Y,repeated:!0},{no:3,name:"nested_type",kind:"message",T:q,repeated:!0},{no:4,name:"enum_type",kind:"message",T:A,repeated:!0},{no:5,name:"extension_range",kind:"message",T:te,repeated:!0},{no:8,name:"oneof_decl",kind:"message",T:se,repeated:!0},{no:7,name:"options",kind:"message",T:de,opt:!0},{no:9,name:"reserved_range",kind:"message",T:ne,repeated:!0},{no:10,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var te=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};te.runtime=d;te.typeName="google.protobuf.DescriptorProto.ExtensionRange";te.fields=d.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:re,opt:!0}]);var ne=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ne.runtime=d;ne.typeName="google.protobuf.DescriptorProto.ReservedRange";ne.fields=d.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var re=class n extends c{constructor(e){super(),this.uninterpretedOption=[],this.declaration=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};re.runtime=d;re.typeName="google.protobuf.ExtensionRangeOptions";re.fields=d.util.newFieldList(()=>[{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0},{no:2,name:"declaration",kind:"message",T:ae,repeated:!0},{no:50,name:"features",kind:"message",T:M,opt:!0},{no:3,name:"verification",kind:"enum",T:d.getEnumType(Fe),opt:!0,default:Fe.UNVERIFIED}]);var Fe;(function(n){n[n.DECLARATION=0]="DECLARATION",n[n.UNVERIFIED=1]="UNVERIFIED"})(Fe||(Fe={}));d.util.setEnumType(Fe,"google.protobuf.ExtensionRangeOptions.VerificationState",[{no:0,name:"DECLARATION"},{no:1,name:"UNVERIFIED"}]);var ae=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ae.runtime=d;ae.typeName="google.protobuf.ExtensionRangeOptions.Declaration";ae.fields=d.util.newFieldList(()=>[{no:1,name:"number",kind:"scalar",T:5,opt:!0},{no:2,name:"full_name",kind:"scalar",T:9,opt:!0},{no:3,name:"type",kind:"scalar",T:9,opt:!0},{no:5,name:"reserved",kind:"scalar",T:8,opt:!0},{no:6,name:"repeated",kind:"scalar",T:8,opt:!0}]);var Y=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Y.runtime=d;Y.typeName="google.protobuf.FieldDescriptorProto";Y.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:3,name:"number",kind:"scalar",T:5,opt:!0},{no:4,name:"label",kind:"enum",T:d.getEnumType(bt),opt:!0},{no:5,name:"type",kind:"enum",T:d.getEnumType(xt),opt:!0},{no:6,name:"type_name",kind:"scalar",T:9,opt:!0},{no:2,name:"extendee",kind:"scalar",T:9,opt:!0},{no:7,name:"default_value",kind:"scalar",T:9,opt:!0},{no:9,name:"oneof_index",kind:"scalar",T:5,opt:!0},{no:10,name:"json_name",kind:"scalar",T:9,opt:!0},{no:8,name:"options",kind:"message",T:fe,opt:!0},{no:17,name:"proto3_optional",kind:"scalar",T:8,opt:!0}]);var xt;(function(n){n[n.DOUBLE=1]="DOUBLE",n[n.FLOAT=2]="FLOAT",n[n.INT64=3]="INT64",n[n.UINT64=4]="UINT64",n[n.INT32=5]="INT32",n[n.FIXED64=6]="FIXED64",n[n.FIXED32=7]="FIXED32",n[n.BOOL=8]="BOOL",n[n.STRING=9]="STRING",n[n.GROUP=10]="GROUP",n[n.MESSAGE=11]="MESSAGE",n[n.BYTES=12]="BYTES",n[n.UINT32=13]="UINT32",n[n.ENUM=14]="ENUM",n[n.SFIXED32=15]="SFIXED32",n[n.SFIXED64=16]="SFIXED64",n[n.SINT32=17]="SINT32",n[n.SINT64=18]="SINT64"})(xt||(xt={}));d.util.setEnumType(xt,"google.protobuf.FieldDescriptorProto.Type",[{no:1,name:"TYPE_DOUBLE"},{no:2,name:"TYPE_FLOAT"},{no:3,name:"TYPE_INT64"},{no:4,name:"TYPE_UINT64"},{no:5,name:"TYPE_INT32"},{no:6,name:"TYPE_FIXED64"},{no:7,name:"TYPE_FIXED32"},{no:8,name:"TYPE_BOOL"},{no:9,name:"TYPE_STRING"},{no:10,name:"TYPE_GROUP"},{no:11,name:"TYPE_MESSAGE"},{no:12,name:"TYPE_BYTES"},{no:13,name:"TYPE_UINT32"},{no:14,name:"TYPE_ENUM"},{no:15,name:"TYPE_SFIXED32"},{no:16,name:"TYPE_SFIXED64"},{no:17,name:"TYPE_SINT32"},{no:18,name:"TYPE_SINT64"}]);var bt;(function(n){n[n.OPTIONAL=1]="OPTIONAL",n[n.REPEATED=3]="REPEATED",n[n.REQUIRED=2]="REQUIRED"})(bt||(bt={}));d.util.setEnumType(bt,"google.protobuf.FieldDescriptorProto.Label",[{no:1,name:"LABEL_OPTIONAL"},{no:3,name:"LABEL_REPEATED"},{no:2,name:"LABEL_REQUIRED"}]);var se=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};se.runtime=d;se.typeName="google.protobuf.OneofDescriptorProto";se.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"options",kind:"message",T:pe,opt:!0}]);var A=class n extends c{constructor(e){super(),this.value=[],this.reservedRange=[],this.reservedName=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};A.runtime=d;A.typeName="google.protobuf.EnumDescriptorProto";A.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"value",kind:"message",T:ie,repeated:!0},{no:3,name:"options",kind:"message",T:ge,opt:!0},{no:4,name:"reserved_range",kind:"message",T:oe,repeated:!0},{no:5,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var oe=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};oe.runtime=d;oe.typeName="google.protobuf.EnumDescriptorProto.EnumReservedRange";oe.fields=d.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var ie=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ie.runtime=d;ie.typeName="google.protobuf.EnumValueDescriptorProto";ie.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"number",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:ye,opt:!0}]);var le=class n extends c{constructor(e){super(),this.method=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};le.runtime=d;le.typeName="google.protobuf.ServiceDescriptorProto";le.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"method",kind:"message",T:ue,repeated:!0},{no:3,name:"options",kind:"message",T:he,opt:!0}]);var ue=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ue.runtime=d;ue.typeName="google.protobuf.MethodDescriptorProto";ue.fields=d.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"input_type",kind:"scalar",T:9,opt:!0},{no:3,name:"output_type",kind:"scalar",T:9,opt:!0},{no:4,name:"options",kind:"message",T:Te,opt:!0},{no:5,name:"client_streaming",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"server_streaming",kind:"scalar",T:8,opt:!0,default:!1}]);var ce=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ce.runtime=d;ce.typeName="google.protobuf.FileOptions";ce.fields=d.util.newFieldList(()=>[{no:1,name:"java_package",kind:"scalar",T:9,opt:!0},{no:8,name:"java_outer_classname",kind:"scalar",T:9,opt:!0},{no:10,name:"java_multiple_files",kind:"scalar",T:8,opt:!0,default:!1},{no:20,name:"java_generate_equals_and_hash",kind:"scalar",T:8,opt:!0},{no:27,name:"java_string_check_utf8",kind:"scalar",T:8,opt:!0,default:!1},{no:9,name:"optimize_for",kind:"enum",T:d.getEnumType(Ue),opt:!0,default:Ue.SPEED},{no:11,name:"go_package",kind:"scalar",T:9,opt:!0},{no:16,name:"cc_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"java_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:18,name:"py_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:42,name:"php_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:23,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:31,name:"cc_enable_arenas",kind:"scalar",T:8,opt:!0,default:!0},{no:36,name:"objc_class_prefix",kind:"scalar",T:9,opt:!0},{no:37,name:"csharp_namespace",kind:"scalar",T:9,opt:!0},{no:39,name:"swift_prefix",kind:"scalar",T:9,opt:!0},{no:40,name:"php_class_prefix",kind:"scalar",T:9,opt:!0},{no:41,name:"php_namespace",kind:"scalar",T:9,opt:!0},{no:44,name:"php_metadata_namespace",kind:"scalar",T:9,opt:!0},{no:45,name:"ruby_package",kind:"scalar",T:9,opt:!0},{no:50,name:"features",kind:"message",T:M,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var Ue;(function(n){n[n.SPEED=1]="SPEED",n[n.CODE_SIZE=2]="CODE_SIZE",n[n.LITE_RUNTIME=3]="LITE_RUNTIME"})(Ue||(Ue={}));d.util.setEnumType(Ue,"google.protobuf.FileOptions.OptimizeMode",[{no:1,name:"SPEED"},{no:2,name:"CODE_SIZE"},{no:3,name:"LITE_RUNTIME"}]);var de=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};de.runtime=d;de.typeName="google.protobuf.MessageOptions";de.fields=d.util.newFieldList(()=>[{no:1,name:"message_set_wire_format",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"no_standard_descriptor_accessor",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:7,name:"map_entry",kind:"scalar",T:8,opt:!0},{no:11,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:12,name:"features",kind:"message",T:M,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var fe=class n extends c{constructor(e){super(),this.targets=[],this.editionDefaults=[],this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};fe.runtime=d;fe.typeName="google.protobuf.FieldOptions";fe.fields=d.util.newFieldList(()=>[{no:1,name:"ctype",kind:"enum",T:d.getEnumType(Ae),opt:!0,default:Ae.STRING},{no:2,name:"packed",kind:"scalar",T:8,opt:!0},{no:6,name:"jstype",kind:"enum",T:d.getEnumType(Ve),opt:!0,default:Ve.JS_NORMAL},{no:5,name:"lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:15,name:"unverified_lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:10,name:"weak",kind:"scalar",T:8,opt:!0,default:!1},{no:16,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"retention",kind:"enum",T:d.getEnumType(It),opt:!0},{no:19,name:"targets",kind:"enum",T:d.getEnumType(Ot),repeated:!0},{no:20,name:"edition_defaults",kind:"message",T:me,repeated:!0},{no:21,name:"features",kind:"message",T:M,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var Ae;(function(n){n[n.STRING=0]="STRING",n[n.CORD=1]="CORD",n[n.STRING_PIECE=2]="STRING_PIECE"})(Ae||(Ae={}));d.util.setEnumType(Ae,"google.protobuf.FieldOptions.CType",[{no:0,name:"STRING"},{no:1,name:"CORD"},{no:2,name:"STRING_PIECE"}]);var Ve;(function(n){n[n.JS_NORMAL=0]="JS_NORMAL",n[n.JS_STRING=1]="JS_STRING",n[n.JS_NUMBER=2]="JS_NUMBER"})(Ve||(Ve={}));d.util.setEnumType(Ve,"google.protobuf.FieldOptions.JSType",[{no:0,name:"JS_NORMAL"},{no:1,name:"JS_STRING"},{no:2,name:"JS_NUMBER"}]);var It;(function(n){n[n.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",n[n.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",n[n.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(It||(It={}));d.util.setEnumType(It,"google.protobuf.FieldOptions.OptionRetention",[{no:0,name:"RETENTION_UNKNOWN"},{no:1,name:"RETENTION_RUNTIME"},{no:2,name:"RETENTION_SOURCE"}]);var Ot;(function(n){n[n.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",n[n.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",n[n.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",n[n.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",n[n.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",n[n.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",n[n.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",n[n.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",n[n.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",n[n.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(Ot||(Ot={}));d.util.setEnumType(Ot,"google.protobuf.FieldOptions.OptionTargetType",[{no:0,name:"TARGET_TYPE_UNKNOWN"},{no:1,name:"TARGET_TYPE_FILE"},{no:2,name:"TARGET_TYPE_EXTENSION_RANGE"},{no:3,name:"TARGET_TYPE_MESSAGE"},{no:4,name:"TARGET_TYPE_FIELD"},{no:5,name:"TARGET_TYPE_ONEOF"},{no:6,name:"TARGET_TYPE_ENUM"},{no:7,name:"TARGET_TYPE_ENUM_ENTRY"},{no:8,name:"TARGET_TYPE_SERVICE"},{no:9,name:"TARGET_TYPE_METHOD"}]);var me=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};me.runtime=d;me.typeName="google.protobuf.FieldOptions.EditionDefault";me.fields=d.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:d.getEnumType(H),opt:!0},{no:2,name:"value",kind:"scalar",T:9,opt:!0}]);var pe=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};pe.runtime=d;pe.typeName="google.protobuf.OneofOptions";pe.fields=d.util.newFieldList(()=>[{no:1,name:"features",kind:"message",T:M,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var ge=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ge.runtime=d;ge.typeName="google.protobuf.EnumOptions";ge.fields=d.util.newFieldList(()=>[{no:2,name:"allow_alias",kind:"scalar",T:8,opt:!0},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:7,name:"features",kind:"message",T:M,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var ye=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};ye.runtime=d;ye.typeName="google.protobuf.EnumValueOptions";ye.fields=d.util.newFieldList(()=>[{no:1,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"features",kind:"message",T:M,opt:!0},{no:3,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var he=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};he.runtime=d;he.typeName="google.protobuf.ServiceOptions";he.fields=d.util.newFieldList(()=>[{no:34,name:"features",kind:"message",T:M,opt:!0},{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var Te=class n extends c{constructor(e){super(),this.uninterpretedOption=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Te.runtime=d;Te.typeName="google.protobuf.MethodOptions";Te.fields=d.util.newFieldList(()=>[{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:34,name:"idempotency_level",kind:"enum",T:d.getEnumType(Ge),opt:!0,default:Ge.IDEMPOTENCY_UNKNOWN},{no:35,name:"features",kind:"message",T:M,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var Ge;(function(n){n[n.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",n[n.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",n[n.IDEMPOTENT=2]="IDEMPOTENT"})(Ge||(Ge={}));d.util.setEnumType(Ge,"google.protobuf.MethodOptions.IdempotencyLevel",[{no:0,name:"IDEMPOTENCY_UNKNOWN"},{no:1,name:"NO_SIDE_EFFECTS"},{no:2,name:"IDEMPOTENT"}]);var B=class n extends c{constructor(e){super(),this.name=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};B.runtime=d;B.typeName="google.protobuf.UninterpretedOption";B.fields=d.util.newFieldList(()=>[{no:2,name:"name",kind:"message",T:we,repeated:!0},{no:3,name:"identifier_value",kind:"scalar",T:9,opt:!0},{no:4,name:"positive_int_value",kind:"scalar",T:4,opt:!0},{no:5,name:"negative_int_value",kind:"scalar",T:3,opt:!0},{no:6,name:"double_value",kind:"scalar",T:1,opt:!0},{no:7,name:"string_value",kind:"scalar",T:12,opt:!0},{no:8,name:"aggregate_value",kind:"scalar",T:9,opt:!0}]);var we=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};we.runtime=d;we.typeName="google.protobuf.UninterpretedOption.NamePart";we.fields=d.util.newFieldList(()=>[{no:1,name:"name_part",kind:"scalar",T:9},{no:2,name:"is_extension",kind:"scalar",T:8}]);var M=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};M.runtime=d;M.typeName="google.protobuf.FeatureSet";M.fields=d.util.newFieldList(()=>[{no:1,name:"field_presence",kind:"enum",T:d.getEnumType(Nt),opt:!0},{no:2,name:"enum_type",kind:"enum",T:d.getEnumType(Et),opt:!0},{no:3,name:"repeated_field_encoding",kind:"enum",T:d.getEnumType(Mt),opt:!0},{no:4,name:"utf8_validation",kind:"enum",T:d.getEnumType(Bt),opt:!0},{no:5,name:"message_encoding",kind:"enum",T:d.getEnumType(vt),opt:!0},{no:6,name:"json_format",kind:"enum",T:d.getEnumType(qt),opt:!0}]);var Nt;(function(n){n[n.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",n[n.EXPLICIT=1]="EXPLICIT",n[n.IMPLICIT=2]="IMPLICIT",n[n.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Nt||(Nt={}));d.util.setEnumType(Nt,"google.protobuf.FeatureSet.FieldPresence",[{no:0,name:"FIELD_PRESENCE_UNKNOWN"},{no:1,name:"EXPLICIT"},{no:2,name:"IMPLICIT"},{no:3,name:"LEGACY_REQUIRED"}]);var Et;(function(n){n[n.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",n[n.OPEN=1]="OPEN",n[n.CLOSED=2]="CLOSED"})(Et||(Et={}));d.util.setEnumType(Et,"google.protobuf.FeatureSet.EnumType",[{no:0,name:"ENUM_TYPE_UNKNOWN"},{no:1,name:"OPEN"},{no:2,name:"CLOSED"}]);var Mt;(function(n){n[n.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",n[n.PACKED=1]="PACKED",n[n.EXPANDED=2]="EXPANDED"})(Mt||(Mt={}));d.util.setEnumType(Mt,"google.protobuf.FeatureSet.RepeatedFieldEncoding",[{no:0,name:"REPEATED_FIELD_ENCODING_UNKNOWN"},{no:1,name:"PACKED"},{no:2,name:"EXPANDED"}]);var Bt;(function(n){n[n.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",n[n.NONE=1]="NONE",n[n.VERIFY=2]="VERIFY"})(Bt||(Bt={}));d.util.setEnumType(Bt,"google.protobuf.FeatureSet.Utf8Validation",[{no:0,name:"UTF8_VALIDATION_UNKNOWN"},{no:1,name:"NONE"},{no:2,name:"VERIFY"}]);var vt;(function(n){n[n.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",n[n.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",n[n.DELIMITED=2]="DELIMITED"})(vt||(vt={}));d.util.setEnumType(vt,"google.protobuf.FeatureSet.MessageEncoding",[{no:0,name:"MESSAGE_ENCODING_UNKNOWN"},{no:1,name:"LENGTH_PREFIXED"},{no:2,name:"DELIMITED"}]);var qt;(function(n){n[n.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",n[n.ALLOW=1]="ALLOW",n[n.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(qt||(qt={}));d.util.setEnumType(qt,"google.protobuf.FeatureSet.JsonFormat",[{no:0,name:"JSON_FORMAT_UNKNOWN"},{no:1,name:"ALLOW"},{no:2,name:"LEGACY_BEST_EFFORT"}]);var De=class n extends c{constructor(e){super(),this.defaults=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};De.runtime=d;De.typeName="google.protobuf.FeatureSetDefaults";De.fields=d.util.newFieldList(()=>[{no:1,name:"defaults",kind:"message",T:Pe,repeated:!0},{no:4,name:"minimum_edition",kind:"enum",T:d.getEnumType(H),opt:!0},{no:5,name:"maximum_edition",kind:"enum",T:d.getEnumType(H),opt:!0}]);var Pe=class n extends c{constructor(e){super(),d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Pe.runtime=d;Pe.typeName="google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault";Pe.fields=d.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:d.getEnumType(H),opt:!0},{no:2,name:"features",kind:"message",T:M,opt:!0}]);var Re=class n extends c{constructor(e){super(),this.location=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Re.runtime=d;Re.typeName="google.protobuf.SourceCodeInfo";Re.fields=d.util.newFieldList(()=>[{no:1,name:"location",kind:"message",T:Je,repeated:!0}]);var Je=class n extends c{constructor(e){super(),this.path=[],this.span=[],this.leadingDetachedComments=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Je.runtime=d;Je.typeName="google.protobuf.SourceCodeInfo.Location";Je.fields=d.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"span",kind:"scalar",T:5,repeated:!0,packed:!0},{no:3,name:"leading_comments",kind:"scalar",T:9,opt:!0},{no:4,name:"trailing_comments",kind:"scalar",T:9,opt:!0},{no:6,name:"leading_detached_comments",kind:"scalar",T:9,repeated:!0}]);var He=class n extends c{constructor(e){super(),this.annotation=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};He.runtime=d;He.typeName="google.protobuf.GeneratedCodeInfo";He.fields=d.util.newFieldList(()=>[{no:1,name:"annotation",kind:"message",T:Se,repeated:!0}]);var Se=class n extends c{constructor(e){super(),this.path=[],d.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return d.util.equals(n,e,t)}};Se.runtime=d;Se.typeName="google.protobuf.GeneratedCodeInfo.Annotation";Se.fields=d.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"source_file",kind:"scalar",T:9,opt:!0},{no:3,name:"begin",kind:"scalar",T:5,opt:!0},{no:4,name:"end",kind:"scalar",T:5,opt:!0},{no:5,name:"semantic",kind:"enum",T:d.getEnumType(Ct),opt:!0}]);var Ct;(function(n){n[n.NONE=0]="NONE",n[n.SET=1]="SET",n[n.ALIAS=2]="ALIAS"})(Ct||(Ct={}));d.util.setEnumType(Ct,"google.protobuf.GeneratedCodeInfo.Annotation.Semantic",[{no:0,name:"NONE"},{no:1,name:"SET"},{no:2,name:"ALIAS"}]);var I=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};I.runtime=a;I.typeName="google.protobuf.Empty";I.fields=a.util.newFieldList(()=>[]);var Lt=class n extends c{secret="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.VerifyUserRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ft=class n extends c{secret="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.GroupInfoRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ut=class n extends c{groupId="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.GroupID";static fields=a.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},At=class n extends c{contentId="";groupId="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.ShareRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ye=class n extends c{secret="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.GroupInvite";static fields=a.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Vt=class n extends c{groups=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.Groups";static fields=a.util.newFieldList(()=>[{no:1,name:"groups",kind:"message",T:V,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ca=class n extends c{text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.AnalyzeConversationRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},C=class n extends c{email="";password="";username="";config;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.User";static fields=a.util.newFieldList(()=>[{no:1,name:"email",kind:"scalar",T:9},{no:2,name:"password",kind:"scalar",T:9},{no:3,name:"username",kind:"scalar",T:9},{no:4,name:"config",kind:"message",T:je}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},V=class n extends c{id="";name="";users=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.Group";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"users",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},je=class n extends c{domainWhitelist=[];offlineVoice=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.Config";static fields=a.util.newFieldList(()=>[{no:1,name:"domain_whitelist",kind:"scalar",T:9,repeated:!0},{no:2,name:"offline_voice",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Gt=class n extends c{user;success=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="user.LoginResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"user",kind:"message",T:C},{no:2,name:"success",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var ke=class n extends c{title="";createTime=0;updateTime=0;mapping={};conversationId="";conversationTemplateId="";currentNode="";gizmoId="";isArchived=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Conversation";static fields=a.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"create_time",kind:"scalar",T:1},{no:3,name:"update_time",kind:"scalar",T:1},{no:4,name:"mapping",kind:"map",K:9,V:{kind:"message",T:sr}},{no:5,name:"conversation_id",kind:"scalar",T:9},{no:6,name:"conversation_template_id",kind:"scalar",T:9},{no:7,name:"current_node",kind:"scalar",T:9},{no:8,name:"gizmo_id",kind:"scalar",T:9},{no:9,name:"is_archived",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},sr=class n extends c{id="";message;parent="";children=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Node";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"message",kind:"message",T:or},{no:3,name:"parent",kind:"scalar",T:9},{no:4,name:"children",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},or=class n extends c{id="";author;createTime=0;content;status="";endTurn=!1;weight=0;metadata;recipient="";updateTime=0;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Message";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"author",kind:"message",T:lr},{no:3,name:"create_time",kind:"scalar",T:1},{no:4,name:"content",kind:"message",T:ze},{no:5,name:"status",kind:"scalar",T:9},{no:6,name:"end_turn",kind:"scalar",T:8},{no:7,name:"weight",kind:"scalar",T:5},{no:8,name:"metadata",kind:"message",T:ir},{no:9,name:"recipient",kind:"scalar",T:9},{no:10,name:"update_time",kind:"scalar",T:1}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},ir=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.MessageMetadata";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},lr=class n extends c{role="";metadata;name="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Author";static fields=a.util.newFieldList(()=>[{no:1,name:"role",kind:"scalar",T:9},{no:2,name:"metadata",kind:"message",T:dr},{no:3,name:"name",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},ze=class n extends c{contentType="";textParts=[];imageParts=[];text="";parts=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Content";static fields=a.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"text_parts",kind:"scalar",T:9,repeated:!0},{no:3,name:"image_parts",kind:"message",T:$e,repeated:!0},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"parts",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},$e=class n extends c{contentType="";assetPointer="";sizeBytes=J.zero;width=0;height=0;fovea=0;metadata;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.ImageAsset";static fields=a.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"asset_pointer",kind:"scalar",T:9},{no:3,name:"size_bytes",kind:"scalar",T:3},{no:4,name:"width",kind:"scalar",T:5},{no:5,name:"height",kind:"scalar",T:5},{no:6,name:"fovea",kind:"scalar",T:5},{no:7,name:"metadata",kind:"message",T:ur}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},ur=class n extends c{dalle;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Metadata";static fields=a.util.newFieldList(()=>[{no:1,name:"dalle",kind:"message",T:cr}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},cr=class n extends c{genId="";prompt="";seed=0;serializationTitle="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.DalleMetadata";static fields=a.util.newFieldList(()=>[{no:1,name:"gen_id",kind:"scalar",T:9},{no:2,name:"prompt",kind:"scalar",T:9},{no:3,name:"seed",kind:"scalar",T:13},{no:4,name:"serialization_title",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},dr=class n extends c{attachments=[];timestamp="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.AuthorMetadata";static fields=a.util.newFieldList(()=>[{no:1,name:"attachments",kind:"message",T:fr,repeated:!0},{no:2,name:"timestamp_",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},fr=class n extends c{id="";name="";mimeType="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chatgpt.Attachment";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"mimeType",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var $=class n extends c{nodes=[];edges=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="browser.History";static fields=a.util.newFieldList(()=>[{no:1,name:"nodes",kind:"message",T:xe,repeated:!0},{no:2,name:"edges",kind:"message",T:We,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},xe=class n extends c{id="";url="";title="";open=0;close=0;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="browser.Node";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"open",kind:"scalar",T:1},{no:5,name:"close",kind:"scalar",T:1}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},We=class n extends c{from="";to="";tab="";visitTime=0;visitDuration=0;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="browser.Edge";static fields=a.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9},{no:3,name:"tab",kind:"scalar",T:9},{no:4,name:"visit_time",kind:"scalar",T:1},{no:5,name:"visit_duration",kind:"scalar",T:1}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var Dt=class n extends c{publishDir="";baseUrl="";title="";paginate=0;theme=[];enableInlineShortcodes=!1;enableRobotsTxt=!1;buildDrafts=!1;buildFuture=!1;buildExpired=!1;enableEmoji=!1;pygmentsUseClasses=!1;mainSections=[];minify;languages={};outputs={};params;markup;services;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.HugoConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"publish_dir",kind:"scalar",T:9},{no:2,name:"base_url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"paginate",kind:"scalar",T:5},{no:5,name:"theme",kind:"scalar",T:9,repeated:!0},{no:6,name:"enable_inline_shortcodes",kind:"scalar",T:8},{no:7,name:"enable_robots_txt",kind:"scalar",T:8},{no:8,name:"build_drafts",kind:"scalar",T:8},{no:9,name:"build_future",kind:"scalar",T:8},{no:10,name:"build_expired",kind:"scalar",T:8},{no:11,name:"enable_emoji",kind:"scalar",T:8},{no:12,name:"pygments_use_classes",kind:"scalar",T:8},{no:13,name:"main_sections",kind:"scalar",T:9,repeated:!0},{no:14,name:"minify",kind:"message",T:mr},{no:15,name:"languages",kind:"map",K:9,V:{kind:"message",T:pr}},{no:16,name:"outputs",kind:"map",K:9,V:{kind:"message",T:Jr}},{no:17,name:"params",kind:"message",T:kr},{no:18,name:"markup",kind:"message",T:hr},{no:19,name:"services",kind:"message",T:Rr}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},mr=class n extends c{disableXml=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.MinifyConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"disable_xml",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},pr=class n extends c{languageName="";weight=0;title="";taxonomies={};menu={};params={};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.LanguageConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"language_name",kind:"scalar",T:9},{no:2,name:"weight",kind:"scalar",T:5},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"taxonomies",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"menu",kind:"map",K:9,V:{kind:"message",T:Sr}},{no:6,name:"params",kind:"map",K:9,V:{kind:"scalar",T:9}}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ke=class n extends c{name="";url="";weight=0;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.MenuItem";static fields=a.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"weight",kind:"scalar",T:5}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},gr=class n extends c{url="";text="";appendFilePath=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.EditPostConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"append_file_path",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},yr=class n extends c{disableHljs=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.AssetsConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"disable_hljs",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},hr=class n extends c{goldmark;highlight;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.MarkupConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"goldmark",kind:"message",T:Tr},{no:2,name:"highlight",kind:"message",T:Pr}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Tr=class n extends c{renderer;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.GoldmarkConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"renderer",kind:"message",T:wr}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},wr=class n extends c{unsafe=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.RendererConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"unsafe",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Pr=class n extends c{noClasses=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.HighlightConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"no_classes",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Rr=class n extends c{instagram;twitter;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ServicesConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"instagram",kind:"message",T:Ht},{no:2,name:"twitter",kind:"message",T:Ht}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ht=class n extends c{disableInlineCss=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ServiceConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"disable_inline_css",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Jr=class n extends c{values=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.RepeatedString";static fields=a.util.newFieldList(()=>[{no:1,name:"values",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Sr=class n extends c{items=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.RepeatedMenuItem";static fields=a.util.newFieldList(()=>[{no:1,name:"items",kind:"message",T:Ke,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},kr=class n extends c{env="";description="";author="";defaultTheme="";showShareButtons=!1;showReadingTime=!1;displayFullLangName=!1;showPostNavLinks=!1;showBreadCrumbs=!1;showCodeCopyButtons=!1;showRssButtonInSectionTermList=!1;showAllPagesInArchive=!1;showPageNums=!1;showToc=!1;images=[];profileMode;homeInfoParams;socialIcons=[];editPost;assets;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ParamsConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"env",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"author",kind:"scalar",T:9},{no:4,name:"default_theme",kind:"scalar",T:9},{no:5,name:"show_share_buttons",kind:"scalar",T:8},{no:6,name:"show_reading_time",kind:"scalar",T:8},{no:7,name:"display_full_lang_name",kind:"scalar",T:8},{no:8,name:"show_post_nav_links",kind:"scalar",T:8},{no:9,name:"show_bread_crumbs",kind:"scalar",T:8},{no:10,name:"show_code_copy_buttons",kind:"scalar",T:8},{no:11,name:"show_rss_button_in_section_term_list",kind:"scalar",T:8},{no:12,name:"show_all_pages_in_archive",kind:"scalar",T:8},{no:13,name:"show_page_nums",kind:"scalar",T:8},{no:14,name:"show_toc",kind:"scalar",T:8},{no:15,name:"images",kind:"scalar",T:9,repeated:!0},{no:16,name:"profile_mode",kind:"message",T:xr},{no:17,name:"home_info_params",kind:"message",T:Ir},{no:18,name:"social_icons",kind:"message",T:Or,repeated:!0},{no:19,name:"edit_post",kind:"message",T:gr},{no:20,name:"assets",kind:"message",T:yr}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},xr=class n extends c{enabled=!1;title="";imageUrl="";imageTitle="";buttons=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ProfileModeConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"image_url",kind:"scalar",T:9},{no:4,name:"image_title",kind:"scalar",T:9},{no:5,name:"buttons",kind:"message",T:br,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},br=class n extends c{name="";url="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ButtonConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ir=class n extends c{title="";content="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.HomeInfoParamsConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"content",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Or=class n extends c{name="";title="";url="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.SocialIconConfig";static fields=a.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var Yt=class n extends c{prompt="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.InferRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},jt=class n extends c{text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.InferResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},zt=class n extends c{content;site;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.TypesResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:on},{no:2,name:"site",kind:"message",T:on}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},$t=class n extends c{contentTypes=[];tags=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.GetSourcesRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"content_types",kind:"scalar",T:9,repeated:!0},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Wt=class n extends c{captureDevice=0;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.VoiceInputRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Kt=class n extends c{segment;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.VoiceInputResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:be}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Xt=class n extends c{parent="";children=[];connect=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.RelateRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"parent",kind:"scalar",T:9},{no:2,name:"children",kind:"scalar",T:9,repeated:!0},{no:3,name:"connect",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Qt=class n extends c{sources=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Sources";static fields=a.util.newFieldList(()=>[{no:1,name:"sources",kind:"message",T:Nr,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Nr=class n extends c{source;displayContent=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.EnumeratedSource";static fields=a.util.newFieldList(()=>[{no:1,name:"source",kind:"message",T:Mr},{no:2,name:"display_content",kind:"message",T:Er,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Er=class n extends c{title="";description="";type="";content;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.DisplayContent";static fields=a.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"type",kind:"scalar",T:9},{no:4,name:"content",kind:"message",T:N}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Mr=class n extends c{name="";type={case:void 0};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Source";static fields=a.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"server",kind:"message",T:Br,oneof:"type"},{no:3,name:"folder",kind:"message",T:vr,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Br=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Server";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},vr=class n extends c{path="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Folder";static fields=a.util.newFieldList(()=>[{no:2,name:"path",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Zt=class n extends c{contentId="";tags=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.SetTagsRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},_t=class n extends c{groupId="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.TagRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},en=class n extends c{tags=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Tags";static fields=a.util.newFieldList(()=>[{no:1,name:"tags",kind:"message",T:tn,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},tn=class n extends c{name="";subTags=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Tag";static fields=a.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"sub_tags",kind:"message",T:n,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},j=class n extends c{contentIds=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ContentIDs";static fields=a.util.newFieldList(()=>[{no:1,name:"content_ids",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Xe=class n extends c{content;tags=[];related=[];parents=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Contents";static fields=a.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:N},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0},{no:3,name:"related",kind:"message",T:N,repeated:!0},{no:4,name:"parents",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},nn=class n extends c{query="";page=0;contentID="";groupID="";tags=[];contentTypes=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Query";static fields=a.util.newFieldList(()=>[{no:1,name:"query",kind:"scalar",T:9},{no:2,name:"page",kind:"scalar",T:13},{no:3,name:"contentID",kind:"scalar",T:9},{no:4,name:"groupID",kind:"scalar",T:9},{no:5,name:"tags",kind:"scalar",T:9,repeated:!0},{no:6,name:"content_types",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},rn=class n extends c{storedContent=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Results";static fields=a.util.newFieldList(()=>[{no:1,name:"storedContent",kind:"message",T:qr,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},qr=class n extends c{content;id="";related=[];title="";description="";image="";url="";user;tags=[];preview="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.StoredContent";static fields=a.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:N},{no:2,name:"id",kind:"scalar",T:9},{no:3,name:"related",kind:"message",T:N,repeated:!0},{no:4,name:"title",kind:"scalar",T:9},{no:5,name:"description",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"url",kind:"scalar",T:9},{no:9,name:"user",kind:"message",T:C},{no:10,name:"tags",kind:"message",T:tn,repeated:!0},{no:11,name:"preview",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},La=class n extends c{from="";to="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Edge";static fields=a.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},N=class n extends c{tags=[];createdAt="";uri="";id="";type={case:void 0};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Content";static fields=a.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"created_at",kind:"scalar",T:9},{no:3,name:"uri",kind:"scalar",T:9},{no:4,name:"id",kind:"scalar",T:9},{no:6,name:"data",kind:"message",T:sn,oneof:"type"},{no:7,name:"normalized",kind:"message",T:Cr,oneof:"type"},{no:8,name:"transformed",kind:"message",T:Lr,oneof:"type"},{no:9,name:"post",kind:"message",T:an,oneof:"type"},{no:10,name:"site",kind:"message",T:$r,oneof:"type"},{no:11,name:"chatgpt_conversation",kind:"message",T:ke,oneof:"type"},{no:12,name:"browser_history",kind:"message",T:$,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},an=class n extends c{title="";summary="";content="";authors=[];draft=!1;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Post";static fields=a.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"content",kind:"scalar",T:9},{no:4,name:"authors",kind:"scalar",T:9,repeated:!0},{no:6,name:"draft",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Fa=class n extends c{url="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.GitRepo";static fields=a.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},sn=class n extends c{type={case:void 0};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Data";static fields=a.util.newFieldList(()=>[{no:4,name:"text",kind:"message",T:Hr,oneof:"type"},{no:5,name:"file",kind:"message",T:Dr,oneof:"type"},{no:6,name:"url",kind:"message",T:Yr,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Cr=class n extends c{type={case:void 0};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Normalized";static fields=a.util.newFieldList(()=>[{no:3,name:"article",kind:"message",T:Fr,oneof:"type"},{no:4,name:"html",kind:"message",T:Ur,oneof:"type"},{no:6,name:"transcript",kind:"message",T:zr,oneof:"type"},{no:7,name:"readme",kind:"message",T:Ar,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Lr=class n extends c{type={case:void 0};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Transformed";static fields=a.util.newFieldList(()=>[{no:1,name:"summary",kind:"message",T:Vr,oneof:"type"},{no:2,name:"categories",kind:"message",T:Gr,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Fr=class n extends c{title="";author="";length=0;excerpt="";siteName="";image="";favicon="";text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Article";static fields=a.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"author",kind:"scalar",T:9},{no:3,name:"length",kind:"scalar",T:5},{no:4,name:"excerpt",kind:"scalar",T:9},{no:5,name:"site_name",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"favicon",kind:"scalar",T:9},{no:8,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ur=class n extends c{html="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.HTML";static fields=a.util.newFieldList(()=>[{no:1,name:"html",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ar=class n extends c{data="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.ReadMe";static fields=a.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Vr=class n extends c{summary="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Summary";static fields=a.util.newFieldList(()=>[{no:1,name:"summary",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Gr=class n extends c{categories=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Categories";static fields=a.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Dr=class n extends c{file="";data=new Uint8Array(0);url="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.File";static fields=a.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9},{no:2,name:"data",kind:"scalar",T:12},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Hr=class n extends c{data="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Text";static fields=a.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Yr=class n extends c{url="";crawl=!1;title="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.URL";static fields=a.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"crawl",kind:"scalar",T:8},{no:3,name:"title",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},jr=class n extends c{id=0;startTime=J.zero;endTime=J.zero;text="";p="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Token";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},be=class n extends c{num=0;tokens=[];text="";startTime=J.zero;endTime=J.zero;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Segment";static fields=a.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:jr,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},zr=class n extends c{id="";name="";segments=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Transcript";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:be,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},on=class n extends c{msg;descLookup={};enumLookup={};packageName="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.GRPCTypeInfo";static fields=a.util.newFieldList(()=>[{no:1,name:"msg",kind:"message",T:q},{no:3,name:"desc_lookup",kind:"map",K:9,V:{kind:"message",T:q}},{no:4,name:"enum_lookup",kind:"map",K:9,V:{kind:"message",T:A}},{no:6,name:"package_name",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},$r=class n extends c{sections=[];hugoConfig;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Site";static fields=a.util.newFieldList(()=>[{no:1,name:"sections",kind:"message",T:Wr,repeated:!0},{no:2,name:"hugo_config",kind:"message",T:Dt}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Wr=class n extends c{tags=[];menu;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="content.Section";static fields=a.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"menu",kind:"message",T:Ke}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var ln=class n extends c{text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.AnalyzeConversationRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},un=class n extends c{prompt="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GenerateImagesRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},cn=class n extends c{images=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GenerateImagesResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"images",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},dn=class n extends c{id="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.DeleteSessionRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ie=class n extends c{id="";text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.Prompt";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},fn=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GetPromptsRequest";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},mn=class n extends c{prompts=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GetPromptsResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"prompts",kind:"message",T:Ie,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},pn=class n extends c{prompt="";text=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.InferRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},gn=class n extends c{text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.InferResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},yn=class n extends c{content;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.UploadContentRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:N}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ua=class n extends c{id="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.UploadContentResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},hn=class n extends c{id="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GetSessionRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Tn=class n extends c{session;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GetSessionResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"session",kind:"message",T:Jn}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},wn=class n extends c{page=J.zero;limit=J.zero;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GetSessionsRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"page",kind:"scalar",T:4},{no:2,name:"limit",kind:"scalar",T:4}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Pn=class n extends c{sessions=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.GetSessionsResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"sessions",kind:"message",T:Jn,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Kr=class n extends c{id=0;startTime=J.zero;endTime=J.zero;text="";p="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.Token";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Rn=class n extends c{num=0;tokens=[];text="";startTime=J.zero;endTime=J.zero;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.Segment";static fields=a.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:Kr,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Jn=class n extends c{id="";name="";segments=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.Session";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:Rn,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Aa=class n extends c{filePath="";model="";language="";translate=!1;offset=J.zero;duration=J.zero;threads=0;speedup=!1;maxLen=0;maxTokens=0;wordThreshold=0;tokens=!1;colorize=!1;out="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.TranscriptionRequest";static fields=a.util.newFieldList(()=>[{no:14,name:"file_path",kind:"scalar",T:9},{no:1,name:"model",kind:"scalar",T:9},{no:2,name:"language",kind:"scalar",T:9},{no:3,name:"translate",kind:"scalar",T:8},{no:4,name:"offset",kind:"scalar",T:3},{no:5,name:"duration",kind:"scalar",T:3},{no:6,name:"threads",kind:"scalar",T:13},{no:7,name:"speedup",kind:"scalar",T:8},{no:8,name:"max_len",kind:"scalar",T:13},{no:9,name:"max_tokens",kind:"scalar",T:13},{no:10,name:"word_threshold",kind:"scalar",T:1},{no:11,name:"tokens",kind:"scalar",T:8},{no:12,name:"colorize",kind:"scalar",T:8},{no:13,name:"out",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Va=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.RegisterFlags";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ga=class n extends c{text="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.OCRText";static fields=a.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Da=class n extends c{image=new Uint8Array(0);constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.Image";static fields=a.util.newFieldList(()=>[{no:1,name:"image",kind:"scalar",T:12}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Sn=class n extends c{from="";to="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.ConvertFileRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},kn=class n extends c{captureDevice=0;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.ChatRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Qe=class n extends c{segment;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.ChatResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:Rn}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},xn=class n extends c{id="";file="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.YouTubeVideo";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"file",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ze=class n extends c{file="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.FilePath";static fields=a.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},bn=class n extends c{title="";filePath;transcript=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="protoflow.YouTubeVideoResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"file_path",kind:"message",T:Ze},{no:3,name:"transcript",kind:"message",T:be,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var In=class n extends c{phoneNumbers=[];summary="";questions=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="ai.AnalyzeConversationResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"phone_numbers",kind:"scalar",T:9,repeated:!0},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"questions",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Ha=class n extends c{categories=[];constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="ai.AnalyzeContent";static fields=a.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var Ya={typeName:"protoflow.ProtoflowService",methods:{downloadYouTubeVideo:{name:"DownloadYouTubeVideo",I:xn,O:bn,kind:T.Unary},getSessions:{name:"GetSessions",I:wn,O:Pn,kind:T.Unary},getSession:{name:"GetSession",I:hn,O:Tn,kind:T.Unary},deleteSession:{name:"DeleteSession",I:dn,O:I,kind:T.Unary},getPrompts:{name:"GetPrompts",I:fn,O:mn,kind:T.Unary},newPrompt:{name:"NewPrompt",I:Ie,O:Ie,kind:T.Unary},uploadContent:{name:"UploadContent",I:yn,O:Qe,kind:T.ServerStreaming},infer:{name:"Infer",I:pn,O:gn,kind:T.ServerStreaming},chat:{name:"Chat",I:kn,O:Qe,kind:T.ServerStreaming},convertFile:{name:"ConvertFile",I:Sn,O:Ze,kind:T.Unary},generateImages:{name:"GenerateImages",I:un,O:cn,kind:T.Unary},analyzeConversation:{name:"AnalyzeConversation",I:ln,O:In,kind:T.Unary}}};var ja={typeName:"content.ContentService",methods:{save:{name:"Save",I:Xe,O:j,kind:T.Unary},search:{name:"Search",I:nn,O:rn,kind:T.Unary},relate:{name:"Relate",I:Xt,O:I,kind:T.Unary},analyze:{name:"Analyze",I:N,O:Xe,kind:T.Unary},delete:{name:"Delete",I:j,O:j,kind:T.Unary},getTags:{name:"GetTags",I:_t,O:en,kind:T.Unary},setTags:{name:"SetTags",I:Zt,O:I,kind:T.Unary},publish:{name:"Publish",I:j,O:j,kind:T.Unary},getSources:{name:"GetSources",I:$t,O:Qt,kind:T.Unary},infer:{name:"Infer",I:Yt,O:jt,kind:T.ServerStreaming},types:{name:"Types",I,O:zt,kind:T.Unary},voiceInput:{name:"VoiceInput",I:Wt,O:Kt,kind:T.ServerStreaming}}};var za={typeName:"user.UserService",methods:{register:{name:"Register",I:C,O:C,kind:T.Unary},login:{name:"Login",I:C,O:Gt,kind:T.Unary},logout:{name:"Logout",I,O:I,kind:T.Unary},resetPassword:{name:"ResetPassword",I:C,O:I,kind:T.Unary},verifyUser:{name:"VerifyUser",I:Lt,O:I,kind:T.Unary},updateConfig:{name:"UpdateConfig",I:je,O:I,kind:T.Unary},createGroupInvite:{name:"CreateGroupInvite",I:Ut,O:Ye,kind:T.Unary},joinGroup:{name:"JoinGroup",I:Ye,O:V,kind:T.Unary},groupInfo:{name:"GroupInfo",I:Ft,O:V,kind:T.Unary},createGroup:{name:"CreateGroup",I:V,O:V,kind:T.Unary},getGroups:{name:"GetGroups",I,O:Vt,kind:T.Unary},deleteGroup:{name:"DeleteGroup",I:V,O:I,kind:T.Unary},share:{name:"Share",I:At,O:I,kind:T.Unary}}};var On=class n extends c{user="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chat.BanUserRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Nn=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chat.BanUserResponse";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},En=class n extends c{message="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chat.SendMessageRequest";static fields=a.util.newFieldList(()=>[{no:2,name:"message",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Mn=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chat.SendMessageResponse";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Bn=class n extends c{constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chat.ReceiveMessagesRequest";static fields=a.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},vn=class n extends c{user="";text="";timestamp=J.zero;constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="chat.Message";static fields=a.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"timestamp",kind:"scalar",T:3}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var $a={typeName:"chat.ChatService",methods:{sendMessage:{name:"SendMessage",I:En,O:Mn,kind:T.Unary},receiveMessages:{name:"ReceiveMessages",I:Bn,O:vn,kind:T.ServerStreaming},banUser:{name:"BanUser",I:On,O:Nn,kind:T.Unary}}};var qn=class n extends c{type={case:void 0};constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="event.Metric";static fields=a.util.newFieldList(()=>[{no:1,name:"http",kind:"message",T:Xr,oneof:"type"},{no:2,name:"rrweb",kind:"message",T:Qr,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Xr=class n extends c{method="";path="";query="";headers={};host="";remoteAddr="";userAgent="";referer="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="event.HTTPRequest";static fields=a.util.newFieldList(()=>[{no:1,name:"method",kind:"scalar",T:9},{no:2,name:"path",kind:"scalar",T:9},{no:3,name:"query",kind:"scalar",T:9},{no:4,name:"headers",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"host",kind:"scalar",T:9},{no:6,name:"remoteAddr",kind:"scalar",T:9},{no:7,name:"userAgent",kind:"scalar",T:9},{no:8,name:"referer",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Qr=class n extends c{events="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="event.RRWeb";static fields=a.util.newFieldList(()=>[{no:1,name:"events",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}},Cn=class n extends c{id="";constructor(e){super(),a.util.initPartial(e,this)}static runtime=a;static typeName="event.SendResponse";static fields=a.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return a.util.equals(n,e,t)}};var Wa={typeName:"event.EventService",methods:{send:{name:"Send",I:qn,O:Cn,kind:T.Unary}}};var R;(function(n){n[n.Canceled=1]="Canceled",n[n.Unknown=2]="Unknown",n[n.InvalidArgument=3]="InvalidArgument",n[n.DeadlineExceeded=4]="DeadlineExceeded",n[n.NotFound=5]="NotFound",n[n.AlreadyExists=6]="AlreadyExists",n[n.PermissionDenied=7]="PermissionDenied",n[n.ResourceExhausted=8]="ResourceExhausted",n[n.FailedPrecondition=9]="FailedPrecondition",n[n.Aborted=10]="Aborted",n[n.OutOfRange=11]="OutOfRange",n[n.Unimplemented=12]="Unimplemented",n[n.Internal=13]="Internal",n[n.Unavailable=14]="Unavailable",n[n.DataLoss=15]="DataLoss",n[n.Unauthenticated=16]="Unauthenticated"})(R||(R={}));function _e(n){let e=R[n];return typeof e!="string"?n.toString():e[0].toLowerCase()+e.substring(1).replace(/[A-Z]/g,t=>"_"+t.toLowerCase())}var Ln;function Ka(n){if(!Ln){Ln={};for(let e of Object.values(R))typeof e!="string"&&(Ln[_e(e)]=e)}return Ln[n]}var b=class n extends Error{constructor(e,t=R.Unknown,s,r,o){super(Zs(e,t)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=e,this.code=t,this.metadata=new Headers(s??{}),this.details=r??[],this.cause=o}static from(e,t=R.Unknown){return e instanceof n?e:e instanceof Error?e.name=="AbortError"?new n(e.message,R.Canceled):new n(e.message,t,void 0,void 0,e):new n(String(e),t,void 0,void 0,e)}static[Symbol.hasInstance](e){return e instanceof Error?Object.getPrototypeOf(e)===n.prototype?!0:e.name==="ConnectError"&&"code"in e&&typeof e.code=="number"&&"metadata"in e&&"details"in e&&Array.isArray(e.details)&&"rawMessage"in e&&typeof e.rawMessage=="string"&&"cause"in e:!1}findDetails(e){let t="typeName"in e?{findMessage:r=>r===e.typeName?e:void 0}:e,s=[];for(let r of this.details){if(r instanceof c){t.findMessage(r.getType().typeName)&&s.push(r);continue}let o=t.findMessage(r.type);if(o)try{s.push(o.fromBinary(r.value))}catch{}}return s}};function Zs(n,e){return n.length?`[${_e(e)}] ${n}`:`[${_e(e)}]`}function Zr(...n){let e=new Headers;for(let t of n)t.forEach((s,r)=>{e.append(r,s)});return e}function Xa(n,e){let t={};for(let[s,r]of Object.entries(n.methods)){let o=e(Object.assign(Object.assign({},r),{localName:s,service:n}));o!=null&&(t[s]=o)}return t}function _r(n){let e,t=new Uint8Array(0);function s(r){let o=new Uint8Array(t.length+r.length);o.set(t),o.set(r,t.length),t=o}return new ReadableStream({start(){e=n.getReader()},async pull(r){let o;for(;;){if(o===void 0&&t.byteLength>=5){let u=0;for(let f=1;f<5;f++)u=(u<<8)+t[f];o={flags:t[0],length:u}}if(o!==void 0&&t.byteLength>=o.length+5)break;let l=await e.read();if(l.done)break;s(l.value)}if(o===void 0){if(t.byteLength==0){r.close();return}r.error(new b("premature end of stream",R.DataLoss));return}let i=t.subarray(5,5+o.length);t=t.subarray(5+o.length),r.enqueue({flags:o.flags,data:i})}})}function ea(n,e){let t=new Uint8Array(e.length+5);t.set(e,5);let s=new DataView(t.buffer,t.byteOffset,t.byteLength);return s.setUint8(0,n),s.setUint32(1,e.length),t}var _s=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof __values=="function"?__values(n):n[Symbol.iterator](),t={},s("next"),s("throw"),s("return"),t[Symbol.asyncIterator]=function(){return this},t);function s(o){t[o]=n[o]&&function(i){return new Promise(function(l,u){i=n[o](i),r(l,u,i.done,i.value)})}}function r(o,i,l,u){Promise.resolve(u).then(function(f){o({value:f,done:l})},i)}},et=function(n){return this instanceof et?(this.v=n,this):new et(n)},eo=function(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s=t.apply(n,e||[]),r,o=[];return r={},l("next"),l("throw"),l("return",i),r[Symbol.asyncIterator]=function(){return this},r;function i(p){return function(y){return Promise.resolve(y).then(p,P)}}function l(p,y){s[p]&&(r[p]=function(w){return new Promise(function(S,E){o.push([p,w,S,E])>1||u(p,w)})},y&&(r[p]=y(r[p])))}function u(p,y){try{f(s[p](y))}catch(w){h(o[0][3],w)}}function f(p){p.value instanceof et?Promise.resolve(p.value.v).then(g,P):h(o[0][2],p)}function g(p){u("next",p)}function P(p){u("throw",p)}function h(p,y){p(y),o.shift(),o.length&&u(o[0][0],o[0][1])}},to=function(n){var e,t;return e={},s("next"),s("throw",function(r){throw r}),s("return"),e[Symbol.iterator]=function(){return this},e;function s(r,o){e[r]=n[r]?function(i){return(t=!t)?{value:et(n[r](i)),done:!1}:o?o(i):i}:o}};function Qa(n){return eo(this,arguments,function*(){yield et(yield*to(_s(n)))})}var Za=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof __values=="function"?__values(n):n[Symbol.iterator](),t={},s("next"),s("throw"),s("return"),t[Symbol.asyncIterator]=function(){return this},t);function s(o){t[o]=n[o]&&function(i){return new Promise(function(l,u){i=n[o](i),r(l,u,i.done,i.value)})}}function r(o,i,l,u){Promise.resolve(u).then(function(f){o({value:f,done:l})},i)}},Oe=function(n){return this instanceof Oe?(this.v=n,this):new Oe(n)},no=function(n){var e,t;return e={},s("next"),s("throw",function(r){throw r}),s("return"),e[Symbol.iterator]=function(){return this},e;function s(r,o){e[r]=n[r]?function(i){return(t=!t)?{value:Oe(n[r](i)),done:!1}:o?o(i):i}:o}},ro=function(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s=t.apply(n,e||[]),r,o=[];return r={},l("next"),l("throw"),l("return",i),r[Symbol.asyncIterator]=function(){return this},r;function i(p){return function(y){return Promise.resolve(y).then(p,P)}}function l(p,y){s[p]&&(r[p]=function(w){return new Promise(function(S,E){o.push([p,w,S,E])>1||u(p,w)})},y&&(r[p]=y(r[p])))}function u(p,y){try{f(s[p](y))}catch(w){h(o[0][3],w)}}function f(p){p.value instanceof Oe?Promise.resolve(p.value.v).then(g,P):h(o[0][2],p)}function g(p){u("next",p)}function P(p){u("throw",p)}function h(p,y){p(y),o.shift(),o.length&&u(o[0][0],o[0][1])}};function W(n,e){return Xa(n,t=>{switch(t.kind){case T.Unary:return ao(e,n,t);case T.ServerStreaming:return so(e,n,t);case T.ClientStreaming:return oo(e,n,t);case T.BiDiStreaming:return io(e,n,t);default:return null}})}function ao(n,e,t){return async function(s,r){var o,i;let l=await n.unary(e,t,r?.signal,r?.timeoutMs,r?.headers,s,r?.contextValues);return(o=r?.onHeader)===null||o===void 0||o.call(r,l.header),(i=r?.onTrailer)===null||i===void 0||i.call(r,l.trailer),l.message}}function so(n,e,t){return function(s,r){return _a(n.stream(e,t,r?.signal,r?.timeoutMs,r?.headers,Qa([s]),r?.contextValues),r)}}function oo(n,e,t){return async function(s,r){var o,i,l,u,f,g;let P=await n.stream(e,t,r?.signal,r?.timeoutMs,r?.headers,s,r?.contextValues);(f=r?.onHeader)===null||f===void 0||f.call(r,P.header);let h;try{for(var p=!0,y=Za(P.message),w;w=await y.next(),o=w.done,!o;p=!0)u=w.value,p=!1,h=u}catch(S){i={error:S}}finally{try{!p&&!o&&(l=y.return)&&await l.call(y)}finally{if(i)throw i.error}}if(!h)throw new b("protocol error: missing response message",R.Internal);return(g=r?.onTrailer)===null||g===void 0||g.call(r,P.trailer),h}}function io(n,e,t){return function(s,r){return _a(n.stream(e,t,r?.signal,r?.timeoutMs,r?.headers,s,r?.contextValues),r)}}function _a(n,e){let t=function(){var s,r;return ro(this,arguments,function*(){let o=yield Oe(n);(s=e?.onHeader)===null||s===void 0||s.call(e,o.header),yield Oe(yield*no(Za(o.message))),(r=e?.onTrailer)===null||r===void 0||r.call(e,o.trailer)})}()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>t.next()})}}function es(...n){let e=new AbortController,t=n.filter(r=>r!==void 0).concat(e.signal);for(let r of t){if(r.aborted){s.apply(r);break}r.addEventListener("abort",s)}function s(){e.signal.aborted||e.abort(ta(this));for(let r of t)r.removeEventListener("abort",s)}return e}function ts(n){let e=new AbortController,t=()=>{e.abort(new b("the operation timed out",R.DeadlineExceeded))},s;return n!==void 0&&(n<=0?t():s=setTimeout(t,n)),{signal:e.signal,cleanup:()=>clearTimeout(s)}}function ta(n){if(!n.aborted)return;if(n.reason!==void 0)return n.reason;let e=new Error("This operation was aborted");return e.name="AbortError",e}function Fn(){return{get(n){return n.id in this?this[n.id]:n.defaultValue},set(n,e){return this[n.id]=e,this},delete(n){return delete this[n.id],this}}}function Un(n,e,t){let s=typeof e=="string"?e:e.typeName,r=typeof t=="string"?t:t.name;return n.toString().replace(/\/?$/,`/${s}/${r}`)}function na(n,e){return e instanceof n?e:new n(e)}function ns(n,e){function t(s){return s.done===!0?s:{done:s.done,value:na(n,s.value)}}return{[Symbol.asyncIterator](){let s=e[Symbol.asyncIterator](),r={next:()=>s.next().then(t)};return s.throw!==void 0&&(r.throw=o=>s.throw(o).then(t)),s.return!==void 0&&(r.return=o=>s.return(o).then(t)),r}}}function An(n){var e;let t=Object.assign({},n);return(e=t.ignoreUnknownFields)!==null&&e!==void 0||(t.ignoreUnknownFields=!0),t}function Vn(n,e,t,s){let r=e?rs(n.I,s):as(n.I,t);return{parse:(e?rs(n.O,s):as(n.O,t)).parse,serialize:r.serialize}}function rs(n,e){return{parse(t){try{return n.fromBinary(t,e)}catch(s){let r=s instanceof Error?s.message:String(s);throw new b(`parse binary: ${r}`,R.InvalidArgument)}},serialize(t){try{return t.toBinary(e)}catch(s){let r=s instanceof Error?s.message:String(s);throw new b(`serialize binary: ${r}`,R.Internal)}}}}function as(n,e){var t,s;let r=(t=e?.textEncoder)!==null&&t!==void 0?t:new TextEncoder,o=(s=e?.textDecoder)!==null&&s!==void 0?s:new TextDecoder,i=An(e);return{parse(l){try{let u=o.decode(l);return n.fromJsonString(u,i)}catch(u){throw b.from(u,R.InvalidArgument)}},serialize(l){try{let u=l.toJsonString(i);return r.encode(u)}catch(u){throw b.from(u,R.Internal)}}}}var lo=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var ss="application/proto",os="application/json",is="application/connect+proto",ls="application/connect+json";function us(n){let e=n?.match(lo);if(!e)return;let t=!!e[1],s=!!e[3];return{stream:t,binary:s}}function tt(n,e,t){if(e&&new Headers(e).forEach((i,l)=>t.metadata.append(l,i)),typeof n!="object"||n==null||Array.isArray(n)||!("code"in n)||typeof n.code!="string")throw t;let s=Ka(n.code);if(s===void 0)throw t;let r=n.message;if(r!=null&&typeof r!="string")throw t;let o=new b(r??"",s,e);if("details"in n&&Array.isArray(n.details))for(let i of n.details){if(i===null||typeof i!="object"||Array.isArray(i)||typeof i.type!="string"||typeof i.value!="string"||"debug"in i&&typeof i.debug!="object")throw t;try{o.details.push({type:i.type,value:D.dec(i.value),debug:i.debug})}catch{throw t}}return o}var Gn=2;function ra(n){let e=new b("invalid end stream",R.InvalidArgument),t;try{t=JSON.parse(typeof n=="string"?n:new TextDecoder().decode(n))}catch{throw e}if(typeof t!="object"||t==null||Array.isArray(t))throw e;let s=new Headers;if("metadata"in t){if(typeof t.metadata!="object"||t.metadata==null||Array.isArray(t.metadata))throw e;for(let[o,i]of Object.entries(t.metadata)){if(!Array.isArray(i)||i.some(l=>typeof l!="string"))throw e;for(let l of i)s.append(o,l)}}let r="error"in t?tt(t.error,s,e):void 0;return{metadata:s,error:r}}var nt="Content-Type",cs="Content-Length",Dn="Content-Encoding";var aa="Accept-Encoding";var ds="Connect-Timeout-Ms",Hn="Connect-Protocol-Version",fs="User-Agent";function ms(n){switch(n){case 400:return R.InvalidArgument;case 401:return R.Unauthenticated;case 403:return R.PermissionDenied;case 404:return R.Unimplemented;case 408:return R.DeadlineExceeded;case 409:return R.Aborted;case 412:return R.FailedPrecondition;case 413:return R.ResourceExhausted;case 415:return R.Internal;case 429:return R.Unavailable;case 431:return R.ResourceExhausted;case 502:return R.Unavailable;case 503:return R.Unavailable;case 504:return R.Unavailable;default:return R.Unknown}}function Yn(n){let e=new Headers,t=new Headers;return n.forEach((s,r)=>{r.toLowerCase().startsWith("trailer-")?t.set(r.substring(8),s):e.set(r,s)}),[e,t]}var jn="1";function zn(n,e,t,s,r){let o=new Headers(s??{});return t!==void 0&&o.set(ds,`${t}`),o.set(nt,n==T.Unary?e?ss:os:e?is:ls),o.set(Hn,jn),r&&o.set(fs,"connect-es/1.3.0"),o}function $n(n,e,t){let s=t.get("Content-Type"),r=us(s);if(e!==200){let o=new b(`HTTP ${e}`,ms(e),t);if(n==T.Unary&&r&&!r.binary)return{isUnaryError:!0,unaryError:o};throw o}return{isUnaryError:!1}}var ps="application/";function co(n,e){return e?D.enc(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):encodeURIComponent(new TextDecoder().decode(n))}function sa(n,e,t){let s=`?connect=v${jn}`,r=n.header.get(nt);r?.indexOf(ps)===0&&(s+="&encoding="+encodeURIComponent(r.slice(ps.length)));let o=n.header.get(Dn);o!==null&&o!=="identity"&&(s+="&compression="+encodeURIComponent(o),t=!0),t&&(s+="&base64=1"),s+="&message="+co(e,t);let i=n.url+s,l=new Headers(n.header);return[Hn,nt,cs,Dn,aa].forEach(u=>l.delete(u)),Object.assign(Object.assign({},n),{init:Object.assign(Object.assign({},n.init),{method:"GET"}),url:i,header:l})}function oa(n){let e=ys(n.next,n.interceptors),[t,s,r]=gs(n),o=Object.assign(Object.assign({},n.req),{message:na(n.req.method.I,n.req.message),signal:t});return e(o).then(i=>(r(),i),s)}function ia(n){let e=ys(n.next,n.interceptors),[t,s,r]=gs(n),o=Object.assign(Object.assign({},n.req),{message:ns(n.req.method.I,n.req.message),signal:t}),i=!1;return t.addEventListener("abort",function(){var l,u;let f=n.req.message[Symbol.asyncIterator]();i||(l=f.throw)===null||l===void 0||l.call(f,this.reason).catch(()=>{}),(u=f.return)===null||u===void 0||u.call(f).catch(()=>{})}),e(o).then(l=>Object.assign(Object.assign({},l),{message:{[Symbol.asyncIterator](){let u=l.message[Symbol.asyncIterator]();return{next(){return u.next().then(f=>(f.done==!0&&(i=!0,r()),f),s)}}}}}),s)}function gs(n){let{signal:e,cleanup:t}=ts(n.timeoutMs),s=es(n.signal,e);return[s.signal,function(o){let i=b.from(e.aborted?ta(e):o);return s.abort(i),t(),Promise.reject(i)},function(){t(),s.abort()}]}function ys(n,e){var t;return(t=e?.concat().reverse().reduce((s,r)=>r(s),n))!==null&&t!==void 0?t:n}function hs(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var rt=function(n){return this instanceof rt?(this.v=n,this):new rt(n)},fo=function(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s=t.apply(n,e||[]),r,o=[];return r={},l("next"),l("throw"),l("return",i),r[Symbol.asyncIterator]=function(){return this},r;function i(p){return function(y){return Promise.resolve(y).then(p,P)}}function l(p,y){s[p]&&(r[p]=function(w){return new Promise(function(S,E){o.push([p,w,S,E])>1||u(p,w)})},y&&(r[p]=y(r[p])))}function u(p,y){try{f(s[p](y))}catch(w){h(o[0][3],w)}}function f(p){p.value instanceof rt?Promise.resolve(p.value.v).then(g,P):h(o[0][2],p)}function g(p){u("next",p)}function P(p){u("throw",p)}function h(p,y){p(y),o.shift(),o.length&&u(o[0][0],o[0][1])}};function la(n){var e;hs();let t=(e=n.useBinaryFormat)!==null&&e!==void 0?e:!1;return{async unary(s,r,o,i,l,u,f){var g;let{serialize:P,parse:h}=Vn(r,t,n.jsonOptions,n.binaryOptions);return i=i===void 0?n.defaultTimeoutMs:i<=0?void 0:i,await oa({interceptors:n.interceptors,signal:o,timeoutMs:i,req:{stream:!1,service:s,method:r,url:Un(n.baseUrl,s,r),init:{method:"POST",credentials:(g=n.credentials)!==null&&g!==void 0?g:"same-origin",redirect:"error",mode:"cors"},header:zn(r.kind,t,i,l,!1),contextValues:f??Fn(),message:u},next:async p=>{var y;let w=n.useHttpGet===!0&&r.idempotency===Ce.NoSideEffects,S=null;w?p=sa(p,P(p.message),t):S=P(p.message);let O=await((y=n.fetch)!==null&&y!==void 0?y:globalThis.fetch)(p.url,Object.assign(Object.assign({},p.init),{headers:p.header,signal:p.signal,body:S})),{isUnaryError:G,unaryError:Ne}=$n(r.kind,O.status,O.headers);if(G)throw tt(await O.json(),Zr(...Yn(O.headers)),Ne);let[it,Wn]=Yn(O.headers);return{stream:!1,service:s,method:r,header:it,message:t?h(new Uint8Array(await O.arrayBuffer())):r.O.fromJson(await O.json(),An(n.jsonOptions)),trailer:Wn}}})},async stream(s,r,o,i,l,u,f){var g;let{serialize:P,parse:h}=Vn(r,t,n.jsonOptions,n.binaryOptions);function p(w,S,E){return fo(this,arguments,function*(){let G=_r(w).getReader(),Ne=!1;for(;;){let it=yield rt(G.read());if(it.done)break;let{flags:Wn,data:da}=it.value;if((Wn&Gn)===Gn){Ne=!0;let Kn=ra(da);if(Kn.error){let lt=Kn.error;throw E.forEach((Xn,Ms)=>{lt.metadata.append(Ms,Xn)}),lt}Kn.metadata.forEach((lt,Xn)=>S.set(Xn,lt));continue}yield yield rt(h(da))}if(!Ne)throw"missing EndStreamResponse"})}async function y(w){if(r.kind!=T.ServerStreaming)throw"The fetch API does not support streaming request bodies";let S=await w[Symbol.asyncIterator]().next();if(S.done==!0)throw"missing request message";return ea(0,P(S.value))}return i=i===void 0?n.defaultTimeoutMs:i<=0?void 0:i,await ia({interceptors:n.interceptors,timeoutMs:i,signal:o,req:{stream:!0,service:s,method:r,url:Un(n.baseUrl,s,r),init:{method:"POST",credentials:(g=n.credentials)!==null&&g!==void 0?g:"same-origin",redirect:"error",mode:"cors"},header:zn(r.kind,t,i,l,!1),contextValues:f??Fn(),message:u},next:async w=>{var S;let O=await((S=n.fetch)!==null&&S!==void 0?S:globalThis.fetch)(w.url,Object.assign(Object.assign({},w.init),{headers:w.header,signal:w.signal,body:await y(w.message)}));if($n(r.kind,O.status,O.headers),O.body===null)throw"missing response body";let G=new Headers;return Object.assign(Object.assign({},w),{header:O.headers,trailer:G,message:p(O.body,G,O.headers)})}})}}}var mo="https://demo.justshare.com",at=la({baseUrl:`${mo}/api`||"error"}),od=W(Ya,at),Ts=W(ja,at),ws=W(za,at),id=W($a,at),ld=W(Wa,at);var Ps="content/get",Rs="content/save",Js="history/get",Ss="history/delete";function ua(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){var e=Math.random()*16|0,t=n==="x"?e:e&3|8;return t.toString(16)})}function ks(n,e){return new Promise((t,s)=>{chrome.storage.local.set({[n]:e},()=>{chrome.runtime.lastError?s(chrome.runtime.lastError):t(void 0)})})}function xs(n){return new Promise((e,t)=>{chrome.storage.local.get([n],s=>{chrome.runtime.lastError?t(chrome.runtime.lastError):e(s[n])})})}var ca,ot,Es=async()=>{if(ot)return ot;try{let n=await xs("history");if(n)return ot=N.fromJson(JSON.parse(n)),ot}catch(n){console.warn("failed to load history from localstorage",n)}return new N({id:ua(),type:{case:"browserHistory",value:new $},tags:[]})},bs=async()=>(await Es()).type.value,Is=async n=>{let e=await Es(),t=new N({id:e.id,type:{case:"browserHistory",value:n},tags:e.tags});ks("history",t.toJsonString()),ot=t};async function Os(n){try{let e=await Ts.save({content:n,related:[]});console.log(e)}catch(e){console.error("failed to save",e)}}var st=new Map;function Ns(n){let e=/^https:\/\/chat\.openai\.com\/backend-api\/conversation\/([0-9a-fA-F\-]+)$/,t=n.match(e);return t?t[1]:null}var po=()=>{(async()=>{let s=await ws.login({},{});console.log(s)})(),chrome.runtime.onInstalled.addListener(function(){console.log("Extension Installed")}),chrome.runtime.onStartup.addListener(function(){console.log("Extension Started")}),chrome.history.onVisited.addListener(s=>{console.log("onVisited",s.url)}),chrome.webNavigation.onCommitted.addListener(s=>{console.log("onCommitted",s.url)});function n(s){return new Promise((r,o)=>{chrome.tabs.get(s,i=>{chrome.runtime.lastError?r(void 0):r(i)})})}chrome.runtime.onMessage.addListener((s,r,o)=>(s.action===Ps&&(o({data:ca}),ca=void 0),s.action===Js&&(async()=>{let i=await bs();o({data:i.toJsonString(),status:!0})})(),s.action===Ss&&(async()=>(await Is(new $),o({data:{},status:!0})))(),s.action===Rs&&(async()=>{let i=N.fromJson(s.data);try{await Os(i)}catch(l){o({data:{error:l}});return}o({data:{}})})(),!0)),chrome.tabs.onUpdated.addListener(async(s,r,o)=>{if(!s)return;let i=await n(s);if(i){let l=st.get(s);if(l&&(st.set(s,{...l,tab:i,prev:l.tab}),r.status==="complete")){console.log("onUpdated:complete",s,i.url,i);let u=await bs();if(i.url){let f=new xe({id:ua(),url:i.url,title:i.title||"",open:Date.now(),close:-1}),g=u.nodes.find(p=>p.url===i.url);g||u.nodes.push(f);let P=g||f,h=u.nodes.find(p=>p.url===l?.prev?.url);console.log("prev",h,l),h&&(u.nodes[u.nodes.findIndex(p=>p.id===h.id)]=new xe({...h,close:Date.now()}),u.edges.push(new We({from:h.id,to:P.id,visitTime:Date.now(),tab:s.toString()})))}Is(u)}}}),chrome.tabs.onCreated.addListener(async s=>{if(!s.id)return;let r=await n(s.id);r&&st.set(s.id,{created:Date.now(),closed:-1,tab:r,prev:void 0})}),chrome.tabs.onRemoved.addListener(async(s,r)=>{let o=st.get(s);if(o){let i={...o,closed:Date.now()};st.set(s,i),console.log("tab was opened for",(i.closed-i.created)/1e3,"seconds")}}),chrome.webRequest.onBeforeRequest.addListener(s=>{if(!s.initiator||s.type!=="main_frame")return;let r=new URL(s.initiator),o=new URL(s.url);r.host!==o.host&&(r.host==="news.ycombinator.com"&&(ca={from:s.initiator,to:s.url}),console.log("onBeforeRequest",s.url,s))},{urls:[""]},[]);let e={},t={};chrome.webRequest.onCompleted.addListener(s=>{let r=t[s.url.toString()]||0;if(Ns(s.url)&&r<2){let o=e[s.url.toString()];fetch(s.url,{headers:o.map(i=>[i.name,i.value||""])}).then(i=>i.json()).then(i=>{console.log("json",i);let l=ke.fromJson(i,{ignoreUnknownFields:!0});Object.keys(i.mapping).map(f=>{let P=i.mapping[f].message?.content;if(!P)return;let h=[],p=[],y="";switch(P.content_type){case"text":h=P.parts;break;case"multimodal_text":p=P.parts.map(w=>$e.fromJson(w,{ignoreUnknownFields:!0}));break;case"code":y=P.text;break}l.mapping[f].message!==void 0&&(l.mapping[f].message.content=new ze({contentType:P.content_type,textParts:h,imageParts:p,text:y}))}),console.log(l);let u=new N({id:l.conversationId,type:{case:"chatgptConversation",value:l},tags:["chatgpt"]});Os(u)}).catch(i=>{console.error("failed to fetch",i)})}},{urls:[""]},[]),chrome.webRequest.onBeforeSendHeaders.addListener(s=>{let r="";if(!s.requestHeaders)return;let o=t[s.url.toString()]||0;Ns(s.url)&&(t[s.url.toString()]=o+1,e[s.url.toString()]=s.requestHeaders);for(let i of s.requestHeaders)if(i.name.toLowerCase()==="referer"&&i.value){r=i.value;break}},{urls:[""]},["requestHeaders"])};po();})(); //# sourceMappingURL=background.js.map diff --git a/js/dist/extension/content.js b/js/dist/extension/content.js index f92c6591..38e85029 100644 --- a/js/dist/extension/content.js +++ b/js/dist/extension/content.js @@ -9,7 +9,7 @@ Error generating stack: `+i.message+` at `+qh(e[a],i)),i.nextPosition=i.curPosition;return i.curPosition=i.nextPosition=null,o+s.reverse().join("")}function bh(t){var e=/\n at [^(]+ \((.*):(\d+):(\d+)\)/.exec(t.stack);if(e){var n=e[1],r=+e[2],o=+e[3],i=An[n];if(!i&&Tt&&Tt.existsSync(n))try{i=Tt.readFileSync(n,"utf8")}catch{i=""}if(i){var s=i.split(/(?:\r\n|\r|\n)/)[r-1];if(s)return n+":"+r+` `+s+` `+new Array(o).join(" ")+"^"}}return null}function vP(t){var e=bh(t),n=mP();n&&n._handle&&n._handle.setBlocking&&n._handle.setBlocking(!0),e&&(console.error(),console.error(e)),console.error(t.stack),pP(1)}function wP(){var t=process.emit;process.emit=function(e){if(e==="uncaughtException"){var n=arguments[1]&&arguments[1].stack,r=this.listeners(e).length>0;if(n&&!r)return vP(arguments[1])}return t.apply(this,arguments)}}var SP=un.slice(0),PP=cn.slice(0);Fn.wrapCallSite=qh;Fn.getErrorSource=bh;Fn.mapSourcePosition=_f;Fn.retrieveSourceMap=Df;Fn.install=function(t){if(t=t||{},t.environment&&(Xo=t.environment,["node","browser","auto"].indexOf(Xo)===-1))throw new Error("environment "+Xo+" was unknown. Available options are {auto, browser, node}");if(t.retrieveFile&&(t.overrideRetrieveFile&&(un.length=0),un.unshift(t.retrieveFile)),t.retrieveSourceMap&&(t.overrideRetrieveSourceMap&&(cn.length=0),cn.unshift(t.retrieveSourceMap)),t.hookRequire&&!qf()){var e=Lh(Uf,"module"),n=e.prototype._compile;n.__sourceMapSupport||(e.prototype._compile=function(i,s){return An[s]=i,Zo[s]=void 0,n.call(this,i,s)},e.prototype._compile.__sourceMapSupport=!0)}if(Af||(Af="emptyCacheBetweenOperations"in t?t.emptyCacheBetweenOperations:!1),Bh||(Bh=!0,Error.prepareStackTrace=hP),!Ah){var r="handleUncaughtExceptions"in t?t.handleUncaughtExceptions:!0;try{var o=Lh(Uf,"worker_threads");o.isMainThread===!1&&(r=!1)}catch{}r&&fP()&&(Ah=!0,wP())}};Fn.resetRetrieveHandlers=function(){un.length=0,cn.length=0,un=SP.slice(0),cn=PP.slice(0),Df=sa(cn),bf=sa(un)}});var Kv=te(Hl=>{"use strict";var oT=gn(),iT=Symbol.for("react.element"),sT=Symbol.for("react.fragment"),aT=Object.prototype.hasOwnProperty,lT=oT.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,uT={key:!0,ref:!0,__self:!0,__source:!0};function Yv(t,e,n){var r,o={},i=null,s=null;n!==void 0&&(i=""+n),e.key!==void 0&&(i=""+e.key),e.ref!==void 0&&(s=e.ref);for(r in e)aT.call(e,r)&&!uT.hasOwnProperty(r)&&(o[r]=e[r]);if(t&&t.defaultProps)for(r in e=t.defaultProps,e)o[r]===void 0&&(o[r]=e[r]);return{$$typeof:iT,type:t,key:i,ref:s,props:o,_owner:lT.current}}Hl.Fragment=sT;Hl.jsx=Yv;Hl.jsxs=Yv});var bn=te(($x,Qv)=>{"use strict";Qv.exports=Kv()});var cw=st(gn(),1),fw=st($y(),1);Dh().install();var to=st(gn(),1);var _h="content/get",aa="content/save";var it=st(gn(),1);function re(t,e){if(!t)throw new Error(e)}var TP=34028234663852886e22,kP=-34028234663852886e22,RP=4294967295,EP=2147483647,xP=-2147483648;function Tr(t){if(typeof t!="number")throw new Error("invalid int 32: "+typeof t);if(!Number.isInteger(t)||t>EP||tRP||t<0)throw new Error("invalid uint 32: "+t)}function la(t){if(typeof t!="number")throw new Error("invalid float 32: "+typeof t);if(Number.isFinite(t)&&(t>TP||t({no:o.no,name:o.name,localName:t[o.no]})),r)}function zf(t,e,n){let r=Object.create(null),o=Object.create(null),i=[];for(let s of e){let a=jh(s);i.push(a),r[s.name]=a,o[s.no]=a}return{typeName:t,values:i,findName(s){return r[s]},findNumber(s){return o[s]}}}function Gh(t,e,n){let r={};for(let o of e){let i=jh(o);r[i.localName]=i.no,r[i.no]=i.localName}return Vf(r,t,e,n),r}function jh(t){return"localName"in t?t:Object.assign(Object.assign({},t),{localName:t.name})}var y=class{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,n){let r=this.getType(),o=r.runtime.bin,i=o.makeReadOptions(n);return o.readMessage(this,i.readerFactory(e),e.byteLength,i),this}fromJson(e,n){let r=this.getType(),o=r.runtime.json,i=o.makeReadOptions(n);return o.readMessage(r,e,i,this),this}fromJsonString(e,n){let r;try{r=JSON.parse(e)}catch(o){throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${o instanceof Error?o.message:String(o)}`)}return this.fromJson(r,n)}toBinary(e){let n=this.getType(),r=n.runtime.bin,o=r.makeWriteOptions(e),i=o.writerFactory();return r.writeMessage(this,i,o),i.finish()}toJson(e){let n=this.getType(),r=n.runtime.json,o=r.makeWriteOptions(e);return r.writeMessage(this,o)}toJsonString(e){var n;let r=this.toJson(e);return JSON.stringify(r,null,(n=e?.prettySpaces)!==null&&n!==void 0?n:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}};function $h(t,e,n,r){var o;let i=(o=r?.localName)!==null&&o!==void 0?o:e.substring(e.lastIndexOf(".")+1),s={[i]:function(a){t.util.initFields(this),t.util.initPartial(a,this)}}[i];return Object.setPrototypeOf(s.prototype,new y),Object.assign(s,{runtime:t,typeName:e,fields:t.util.newFieldList(n),fromBinary(a,l){return new s().fromBinary(a,l)},fromJson(a,l){return new s().fromJson(a,l)},fromJsonString(a,l){return new s().fromJsonString(a,l)},equals(a,l){return t.util.equals(s,a,l)}}),s}function ua(t,e,n,r){return{syntax:t,json:e,bin:n,util:r,makeMessageType(o,i,s){return $h(this,o,i,s)},makeEnum:Gh,makeEnumType:zf,getEnumType:zh}}var k;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(k||(k={}));var ot;(function(t){t[t.BIGINT=0]="BIGINT",t[t.STRING=1]="STRING"})(ot||(ot={}));function Wh(){let t=0,e=0;for(let r=0;r<28;r+=7){let o=this.buf[this.pos++];if(t|=(o&127)<>4,!(n&128))return this.assertBounds(),[t,e];for(let r=3;r<=31;r+=7){let o=this.buf[this.pos++];if(e|=(o&127)<>>i,a=!(!(s>>>7)&&e==0),l=(a?s|128:s)&255;if(n.push(l),!a)return}let r=t>>>28&15|(e&7)<<4,o=!!(e>>3);if(n.push((o?r|128:r)&255),!!o){for(let i=3;i<31;i=i+7){let s=e>>>i,a=!!(s>>>7),l=(a?s|128:s)&255;if(n.push(l),!a)return}n.push(e>>>31&1)}}var ca=4294967296;function Gf(t){let e=t[0]==="-";e&&(t=t.slice(1));let n=1e6,r=0,o=0;function i(s,a){let l=Number(t.slice(s,a));o*=n,r=r*n+l,r>=ca&&(o=o+(r/ca|0),r=r%ca)}return i(-24,-18),i(-18,-12),i(-12,-6),i(-6),e?Kh(r,o):$f(r,o)}function Yh(t,e){let n=$f(t,e),r=n.hi&2147483648;r&&(n=Kh(n.lo,n.hi));let o=jf(n.lo,n.hi);return r?"-"+o:o}function jf(t,e){if({lo:t,hi:e}=JP(t,e),e<=2097151)return String(ca*e+t);let n=t&16777215,r=(t>>>24|e<<8)&16777215,o=e>>16&65535,i=n+r*6777216+o*6710656,s=r+o*8147497,a=o*2,l=1e7;return i>=l&&(s+=Math.floor(i/l),i%=l),s>=l&&(a+=Math.floor(s/l),s%=l),a.toString()+Hh(s)+Hh(i)}function JP(t,e){return{lo:t>>>0,hi:e>>>0}}function $f(t,e){return{lo:t|0,hi:e|0}}function Kh(t,e){return e=~e,t?t=~t+1:e+=1,$f(t,e)}var Hh=t=>{let e=String(t);return"0000000".slice(e.length)+e};function Hf(t,e){if(t>=0){for(;t>127;)e.push(t&127|128),t=t>>>7;e.push(t)}else{for(let n=0;n<9;n++)e.push(t&127|128),t=t>>7;e.push(1)}}function Qh(){let t=this.buf[this.pos++],e=t&127;if(!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<7,!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<14,!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<21,!(t&128))return this.assertBounds(),e;t=this.buf[this.pos++],e|=(t&15)<<28;for(let n=5;t&128&&n<10;n++)t=this.buf[this.pos++];if(t&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function NP(){let t=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){let o=BigInt("-9223372036854775808"),i=BigInt("9223372036854775807"),s=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(l){let c=typeof l=="bigint"?l:BigInt(l);if(c>i||ca||cre(/^-?[0-9]+$/.test(o),`int64 invalid: ${o}`),r=o=>re(/^[0-9]+$/.test(o),`uint64 invalid: ${o}`);return{zero:"0",supported:!1,parse(o){return typeof o!="string"&&(o=o.toString()),n(o),o},uParse(o){return typeof o!="string"&&(o=o.toString()),r(o),o},enc(o){return typeof o!="string"&&(o=o.toString()),n(o),Gf(o)},uEnc(o){return typeof o!="string"&&(o=o.toString()),r(o),Gf(o)},dec(o,i){return Yh(o,i)},uDec(o,i){return jf(o,i)}}}var V=NP();var W;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(W||(W={}));var da=class{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let o=0;o>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(ei(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return Tr(e),Hf(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let n=this.textEncoder.encode(e);return this.uint32(n.byteLength),this.raw(n)}float(e){la(e);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,e,!0),this.raw(n)}double(e){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,e,!0),this.raw(n)}fixed32(e){ei(e);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,e,!0),this.raw(n)}sfixed32(e){Tr(e);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,e,!0),this.raw(n)}sint32(e){return Tr(e),e=(e<<1^e>>31)>>>0,Hf(e,this.buf),this}sfixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),o=V.enc(e);return r.setInt32(0,o.lo,!0),r.setInt32(4,o.hi,!0),this.raw(n)}fixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),o=V.uEnc(e);return r.setInt32(0,o.lo,!0),r.setInt32(4,o.hi,!0),this.raw(n)}int64(e){let n=V.enc(e);return fa(n.lo,n.hi,this.buf),this}sint64(e){let n=V.enc(e),r=n.hi>>31,o=n.lo<<1^r,i=(n.hi<<1|n.lo>>>31)^r;return fa(o,i,this.buf),this}uint64(e){let n=V.uEnc(e);return fa(n.lo,n.hi,this.buf),this}},ma=class{constructor(e,n){this.varint64=Wh,this.uint32=Qh,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=n??new TextDecoder}tag(){let e=this.uint32(),n=e>>>3,r=e&7;if(n<=0||r<0||r>5)throw new Error("illegal tag: field no "+n+" wire type "+r);return[n,r]}skip(e){let n=this.pos;switch(e){case W.Varint:for(;this.buf[this.pos++]&128;);break;case W.Bit64:this.pos+=4;case W.Bit32:this.pos+=4;break;case W.LengthDelimited:let r=this.uint32();this.pos+=r;break;case W.StartGroup:let o;for(;(o=this.tag()[1])!==W.EndGroup;)this.skip(o);break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return V.dec(...this.varint64())}uint64(){return V.uDec(...this.varint64())}sint64(){let[e,n]=this.varint64(),r=-(e&1);return e=(e>>>1|(n&1)<<31)^r,n=n>>>1^r,V.dec(e,n)}bool(){let[e,n]=this.varint64();return e!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return V.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return V.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),n=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(n,n+e)}string(){return this.textDecoder.decode(this.bytes())}};function Un(t,e){return e instanceof y||!t.fieldWrapper?e:t.fieldWrapper.wrapField(e)}var mk={"google.protobuf.DoubleValue":k.DOUBLE,"google.protobuf.FloatValue":k.FLOAT,"google.protobuf.Int64Value":k.INT64,"google.protobuf.UInt64Value":k.UINT64,"google.protobuf.Int32Value":k.INT32,"google.protobuf.UInt32Value":k.UINT32,"google.protobuf.BoolValue":k.BOOL,"google.protobuf.StringValue":k.STRING,"google.protobuf.BytesValue":k.BYTES};function Ft(t,e,n){if(e===n)return!0;if(t==k.BYTES){if(!(e instanceof Uint8Array)||!(n instanceof Uint8Array)||e.length!==n.length)return!1;for(let r=0;rnew ma(t)},Zh={writeUnknownFields:!0,writerFactory:()=>new da};function CP(t){return t?Object.assign(Object.assign({},Xh),t):Xh}function OP(t){return t?Object.assign(Object.assign({},Zh),t):Zh}function ya(){return{makeReadOptions:CP,makeWriteOptions:OP,listUnknownFields(t){var e;return(e=t[kr])!==null&&e!==void 0?e:[]},discardUnknownFields(t){delete t[kr]},writeUnknownFields(t,e){let r=t[kr];if(r)for(let o of r)e.tag(o.no,o.wireType).raw(o.data)},onUnknownField(t,e,n,r){let o=t;Array.isArray(o[kr])||(o[kr]=[]),o[kr].push({no:e,wireType:n,data:r})},readMessage(t,e,n,r,o){let i=t.getType(),s=o?e.len:e.pos+n,a,l;for(;e.pos0&&(S=IP),h){let d=f[m];if(l==W.LengthDelimited&&p!=k.STRING&&p!=k.BYTES){let v=e.uint32()+e.pos;for(;e.pos>4,s=i,o=2;break;case 2:n[r++]=(s&15)<<4|(i&60)>>2,s=i,o=3;break;case 3:n[r++]=(s&3)<<6|i,o=0;break}}if(o==1)throw Error("invalid base64 string.");return n.subarray(0,r)},enc(t){let e="",n=0,r,o=0;for(let i=0;i>2],o=(r&3)<<4,n=1;break;case 1:e+=qt[o|r>>4],o=(r&15)<<2,n=2;break;case 2:e+=qt[o|r>>6],e+=qt[r&63],n=0;break}return n&&(e+=qt[o],e+="=",n==1&&(e+="=")),e}};var tv={ignoreUnknownFields:!1},nv={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function LP(t){return t?Object.assign(Object.assign({},tv),t):tv}function BP(t){return t?Object.assign(Object.assign({},nv),t):nv}function Sa(t){let e=t(AP,rv);return{makeReadOptions:LP,makeWriteOptions:BP,readMessage(n,r,o,i){if(r==null||Array.isArray(r)||typeof r!="object")throw new Error(`cannot decode message ${n.typeName} from JSON: ${this.debug(r)}`);i=i??new n;let s={};for(let[a,l]of Object.entries(r)){let c=n.fields.findJsonName(a);if(!c){if(!o.ignoreUnknownFields)throw new Error(`cannot decode message ${n.typeName} from JSON: key "${a}" is unknown`);continue}let f=c.localName,h=i;if(c.oneof){if(l===null&&c.kind=="scalar")continue;let m=s[c.oneof.localName];if(m)throw new Error(`cannot decode message ${n.typeName} from JSON: multiple keys for oneof "${c.oneof.name}" present: "${m}", "${a}"`);s[c.oneof.localName]=a,h=h[c.oneof.localName]={case:f},f="value"}if(c.repeated){if(l===null)continue;if(!Array.isArray(l))throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(l)}`);let m=h[f];for(let p of l){if(p===null)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(p)}`);let S;switch(c.kind){case"message":S=c.T.fromJson(p,o);break;case"enum":if(S=Yf(c.T,p,o.ignoreUnknownFields),S===void 0)continue;break;case"scalar":try{S=ni(c.T,p,c.L)}catch(T){let O=`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(p)}`;throw T instanceof Error&&T.message.length>0&&(O+=`: ${T.message}`),new Error(O)}break}m.push(S)}}else if(c.kind=="map"){if(l===null)continue;if(Array.isArray(l)||typeof l!="object")throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(l)}`);let m=h[f];for(let[p,S]of Object.entries(l)){if(S===null)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: map value null`);let T;switch(c.V.kind){case"message":T=c.V.T.fromJson(S,o);break;case"enum":if(T=Yf(c.V.T,S,o.ignoreUnknownFields),T===void 0)continue;break;case"scalar":try{T=ni(c.V.T,S,ot.BIGINT)}catch(O){let g=`cannot decode map value for field ${n.typeName}.${c.name} from JSON: ${this.debug(l)}`;throw O instanceof Error&&O.message.length>0&&(g+=`: ${O.message}`),new Error(g)}break}try{m[ni(c.K,c.K==k.BOOL?p=="true"?!0:p=="false"?!1:p:p,ot.BIGINT).toString()]=T}catch(O){let g=`cannot decode map key for field ${n.typeName}.${c.name} from JSON: ${this.debug(l)}`;throw O instanceof Error&&O.message.length>0&&(g+=`: ${O.message}`),new Error(g)}}}else switch(c.kind){case"message":let m=c.T;if(l===null&&m.typeName!="google.protobuf.Value"){if(c.oneof)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: null is invalid for oneof field "${a}"`);continue}h[f]instanceof y?h[f].fromJson(l,o):(h[f]=m.fromJson(l,o),m.fieldWrapper&&!c.oneof&&(h[f]=m.fieldWrapper.unwrapField(h[f])));break;case"enum":let p=Yf(c.T,l,o.ignoreUnknownFields);p!==void 0&&(h[f]=p);break;case"scalar":try{h[f]=ni(c.T,l,c.L)}catch(S){let T=`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(l)}`;throw S instanceof Error&&S.message.length>0&&(T+=`: ${S.message}`),new Error(T)}break}}return i},writeMessage(n,r){let o=n.getType(),i={},s;try{for(let a of o.fields.byMember()){let l;if(a.kind=="oneof"){let c=n[a.localName];if(c.value===void 0)continue;if(s=a.findField(c.case),!s)throw"oneof case not found: "+c.case;l=e(s,c.value,r)}else s=a,l=e(s,n[s.localName],r);l!==void 0&&(i[r.useProtoFieldName?s.name:s.jsonName]=l)}}catch(a){let l=s?`cannot encode field ${o.typeName}.${s.name} to JSON`:`cannot encode message ${o.typeName} to JSON`,c=a instanceof Error?a.message:String(a);throw new Error(l+(c.length>0?`: ${c}`:""))}return i},readScalar:ni,writeScalar:rv,debug:ov}}function ov(t){if(t===null)return"null";switch(typeof t){case"object":return Array.isArray(t)?"array":"object";case"string":return t.length>100?"string":`"${t.split('"').join('\\"')}"`;default:return String(t)}}function ni(t,e,n){switch(t){case k.DOUBLE:case k.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""||typeof e=="string"&&e.trim().length!==e.length||typeof e!="string"&&typeof e!="number")break;let r=Number(e);if(Number.isNaN(r)||!Number.isFinite(r))break;return t==k.FLOAT&&la(r),r;case k.INT32:case k.FIXED32:case k.SFIXED32:case k.SINT32:case k.UINT32:if(e===null)return 0;let o;if(typeof e=="number"?o=e:typeof e=="string"&&e.length>0&&e.trim().length===e.length&&(o=Number(e)),o===void 0)break;return t==k.UINT32?ei(o):Tr(o),o;case k.INT64:case k.SFIXED64:case k.SINT64:if(e===null)return V.zero;if(typeof e!="number"&&typeof e!="string")break;let i=V.parse(e);return n?i.toString():i;case k.FIXED64:case k.UINT64:if(e===null)return V.zero;if(typeof e!="number"&&typeof e!="string")break;let s=V.uParse(e);return n?s.toString():s;case k.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case k.STRING:if(e===null)return"";if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case k.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return fn.dec(e)}throw new Error}function Yf(t,e,n){if(e===null)return 0;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":let r=t.findName(e);if(r||n)return r?.no;break}throw new Error(`cannot decode enum ${t.typeName} from JSON: ${ov(e)}`)}function AP(t,e,n,r){var o;if(e===void 0)return e;if(e===0&&!n)return;if(r)return e;if(t.typeName=="google.protobuf.NullValue")return null;let i=t.findNumber(e);return(o=i?.name)!==null&&o!==void 0?o:e}function rv(t,e,n){if(e!==void 0)switch(t){case k.INT32:case k.SFIXED32:case k.SINT32:case k.FIXED32:case k.UINT32:return re(typeof e=="number"),e!=0||n?e:void 0;case k.FLOAT:case k.DOUBLE:return re(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e!==0||n?e:void 0;case k.STRING:return re(typeof e=="string"),e.length>0||n?e:void 0;case k.BOOL:return re(typeof e=="boolean"),e||n?e:void 0;case k.UINT64:case k.FIXED64:case k.INT64:case k.SFIXED64:case k.SINT64:return re(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),n||e!=0?e.toString(10):void 0;case k.BYTES:return re(e instanceof Uint8Array),n||e.byteLength>0?fn.enc(e):void 0}}function iv(){return Sa((t,e)=>function(r,o,i){if(r.kind=="map"){let s={};switch(r.V.kind){case"scalar":for(let[l,c]of Object.entries(o)){let f=e(r.V.T,c,!0);re(f!==void 0),s[l.toString()]=f}break;case"message":for(let[l,c]of Object.entries(o))s[l.toString()]=c.toJson(i);break;case"enum":let a=r.V.T;for(let[l,c]of Object.entries(o)){re(c===void 0||typeof c=="number");let f=t(a,c,!0,i.enumAsInteger);re(f!==void 0),s[l.toString()]=f}break}return i.emitDefaultValues||Object.keys(s).length>0?s:void 0}else if(r.repeated){let s=[];switch(r.kind){case"scalar":for(let a=0;a0?s:void 0}else switch(r.kind){case"scalar":return e(r.T,o,!!r.oneof||r.opt||i.emitDefaultValues);case"enum":return t(r.T,o,!!r.oneof||r.opt||i.emitDefaultValues,i.enumAsInteger);case"message":return o!==void 0?Un(r.T,o).toJson(i):void 0}})}function Ta(){return{setEnumType:Vf,initPartial(t,e){if(t===void 0)return;let n=e.getType();for(let r of n.fields.byMember()){let o=r.localName,i=e,s=t;if(s[o]!==void 0)switch(r.kind){case"oneof":let a=s[o].case;if(a===void 0)continue;let l=r.findField(a),c=s[o].value;l&&l.kind=="message"&&!(c instanceof l.T)?c=new l.T(c):l&&l.kind==="scalar"&&l.T===k.BYTES&&(c=ri(c)),i[o]={case:a,value:c};break;case"scalar":case"enum":let f=s[o];r.T===k.BYTES&&(f=r.repeated?f.map(ri):ri(f)),i[o]=f;break;case"map":switch(r.V.kind){case"scalar":case"enum":if(r.V.T===k.BYTES)for(let[p,S]of Object.entries(s[o]))i[o][p]=ri(S);else Object.assign(i[o],s[o]);break;case"message":let m=r.V.T;for(let p of Object.keys(s[o])){let S=s[o][p];m.fieldWrapper||(S=new m(S)),i[o][p]=S}break}break;case"message":let h=r.T;if(r.repeated)i[o]=s[o].map(m=>m instanceof h?m:new h(m));else if(s[o]!==void 0){let m=s[o];h.fieldWrapper?h.typeName==="google.protobuf.BytesValue"?i[o]=ri(m):i[o]=m:i[o]=m instanceof h?m:new h(m)}break}}},equals(t,e,n){return e===n?!0:!e||!n?!1:t.fields.byMember().every(r=>{let o=e[r.localName],i=n[r.localName];if(r.repeated){if(o.length!==i.length)return!1;switch(r.kind){case"message":return o.every((s,a)=>r.T.equals(s,i[a]));case"scalar":return o.every((s,a)=>Ft(r.T,s,i[a]));case"enum":return o.every((s,a)=>Ft(k.INT32,s,i[a]))}throw new Error(`repeated cannot contain ${r.kind}`)}switch(r.kind){case"message":return r.T.equals(o,i);case"enum":return Ft(k.INT32,o,i);case"scalar":return Ft(r.T,o,i);case"oneof":if(o.case!==i.case)return!1;let s=r.findField(o.case);if(s===void 0)return!0;switch(s.kind){case"message":return s.T.equals(o.value,i.value);case"enum":return Ft(k.INT32,o.value,i.value);case"scalar":return Ft(s.T,o.value,i.value)}throw new Error(`oneof cannot contain ${s.kind}`);case"map":let a=Object.keys(o).concat(Object.keys(i));switch(r.V.kind){case"message":let l=r.V.T;return a.every(f=>l.equals(o[f],i[f]));case"enum":return a.every(f=>Ft(k.INT32,o[f],i[f]));case"scalar":let c=r.V.T;return a.every(f=>Ft(c,o[f],i[f]))}break}})},clone(t){let e=t.getType(),n=new e,r=n;for(let o of e.fields.byMember()){let i=t[o.localName],s;if(o.repeated)s=i.map(Pa);else if(o.kind=="map"){s=r[o.localName];for(let[a,l]of Object.entries(i))s[a]=Pa(l)}else o.kind=="oneof"?s=o.findField(i.case)?{case:i.case,value:Pa(i.value)}:{case:void 0}:s=Pa(i);r[o.localName]=s}return n}}}function Pa(t){if(t===void 0)return t;if(t instanceof y)return t.clone();if(t instanceof Uint8Array){let e=new Uint8Array(t.byteLength);return e.set(t),e}return t}function ri(t){return t instanceof Uint8Array?t:new Uint8Array(t)}var Er=class{constructor(e,n){this._fields=e,this._normalizer=n}findJsonName(e){if(!this.jsonNames){let n={};for(let r of this.list())n[r.jsonName]=n[r.name]=r;this.jsonNames=n}return this.jsonNames[e]}find(e){if(!this.numbers){let n={};for(let r of this.list())n[r.no]=r;this.numbers=n}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,n)=>e.no-n.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];let e=this.members,n;for(let r of this.list())r.oneof?r.oneof!==n&&(n=r.oneof,e.push(n)):e.push(r)}return this.members}};function oi(t,e){let n=av(t);return e?n:bP(qP(n))}function sv(t){return oi(t,!1)}var ka=av;function av(t){let e=!1,n=[];for(let r=0;r`${t}$`,qP=t=>UP.has(t)?lv(t):t,bP=t=>FP.has(t)?lv(t):t;var xr=class{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=sv(e)}addField(e){re(e.oneof===this,`field ${e.name} not one of ${this.name}`),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let n=0;n0?`: ${a}`:""))}return n.writeUnknownFields&&this.writeUnknownFields(t,e),e}})}function cv(){return Sa((t,e)=>function(r,o,i){if(r.kind=="map"){let s={};switch(r.V.kind){case"scalar":for(let[l,c]of Object.entries(o)){let f=e(r.V.T,c,!0);re(f!==void 0),s[l.toString()]=f}break;case"message":for(let[l,c]of Object.entries(o))s[l.toString()]=c.toJson(i);break;case"enum":let a=r.V.T;for(let[l,c]of Object.entries(o)){re(c===void 0||typeof c=="number");let f=t(a,c,!0,i.enumAsInteger);re(f!==void 0),s[l.toString()]=f}break}return i.emitDefaultValues||Object.keys(s).length>0?s:void 0}else if(r.repeated){let s=[];switch(r.kind){case"scalar":for(let a=0;a0?s:void 0}else{if(o===void 0){if(!r.oneof&&!r.opt)throw"required field not set";return}switch(r.kind){case"scalar":return e(r.T,o,!0);case"enum":return t(r.T,o,!0,i.enumAsInteger);case"message":return Un(r.T,o).toJson(i)}}})}var w=ua("proto2",cv(),uv(),Object.assign(Object.assign({},Ta()),{newFieldList(t){return new Er(t,_P)},initFields(t){for(let e of t.getType().fields.byMember()){let n=e.localName,r=t;if(e.repeated){r[n]=[];continue}switch(e.kind){case"oneof":r[n]={case:void 0};break;case"map":r[n]={};break;case"scalar":case"enum":case"message":break}}}}));function _P(t){var e,n,r,o,i;let s=[],a;for(let l of typeof t=="function"?t():t){let c=l;if(c.localName=oi(l.name,l.oneof!==void 0),c.jsonName=(e=l.jsonName)!==null&&e!==void 0?e:ka(l.name),c.repeated=(n=l.repeated)!==null&&n!==void 0?n:!1,l.kind=="scalar"&&(c.L=(r=l.L)!==null&&r!==void 0?r:ot.BIGINT),l.oneof!==void 0){let f=typeof l.oneof=="string"?l.oneof:l.oneof.name;(!a||a.name!=f)&&(a=new xr(f)),c.oneof=a,a.addField(c)}l.kind=="message"&&(c.delimited=(o=l.delimited)!==null&&o!==void 0?o:!1),c.packed=(i=l.packed)!==null&&i!==void 0?i:!1,s.push(c)}return s}var A;(function(t){t[t.Unary=0]="Unary",t[t.ServerStreaming=1]="ServerStreaming",t[t.ClientStreaming=2]="ClientStreaming",t[t.BiDiStreaming=3]="BiDiStreaming"})(A||(A={}));var ii;(function(t){t[t.NoSideEffects=1]="NoSideEffects",t[t.Idempotent=2]="Idempotent"})(ii||(ii={}));var dn;(function(t){t[t.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",t[t.EDITION_PROTO2=998]="EDITION_PROTO2",t[t.EDITION_PROTO3=999]="EDITION_PROTO3",t[t.EDITION_2023=1e3]="EDITION_2023",t[t.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",t[t.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",t[t.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",t[t.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",t[t.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY"})(dn||(dn={}));w.util.setEnumType(dn,"google.protobuf.Edition",[{no:0,name:"EDITION_UNKNOWN"},{no:998,name:"EDITION_PROTO2"},{no:999,name:"EDITION_PROTO3"},{no:1e3,name:"EDITION_2023"},{no:1,name:"EDITION_1_TEST_ONLY"},{no:2,name:"EDITION_2_TEST_ONLY"},{no:99997,name:"EDITION_99997_TEST_ONLY"},{no:99998,name:"EDITION_99998_TEST_ONLY"},{no:99999,name:"EDITION_99999_TEST_ONLY"}]);var si=class t extends y{constructor(e){super(),this.file=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};si.runtime=w;si.typeName="google.protobuf.FileDescriptorSet";si.fields=w.util.newFieldList(()=>[{no:1,name:"file",kind:"message",T:Jr,repeated:!0}]);var Jr=class t extends y{constructor(e){super(),this.dependency=[],this.publicDependency=[],this.weakDependency=[],this.messageType=[],this.enumType=[],this.service=[],this.extension=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Jr.runtime=w;Jr.typeName="google.protobuf.FileDescriptorProto";Jr.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"package",kind:"scalar",T:9,opt:!0},{no:3,name:"dependency",kind:"scalar",T:9,repeated:!0},{no:10,name:"public_dependency",kind:"scalar",T:5,repeated:!0},{no:11,name:"weak_dependency",kind:"scalar",T:5,repeated:!0},{no:4,name:"message_type",kind:"message",T:kt,repeated:!0},{no:5,name:"enum_type",kind:"message",T:bt,repeated:!0},{no:6,name:"service",kind:"message",T:Ar,repeated:!0},{no:7,name:"extension",kind:"message",T:mn,repeated:!0},{no:8,name:"options",kind:"message",T:Ur,opt:!0},{no:9,name:"source_code_info",kind:"message",T:Wr,opt:!0},{no:12,name:"syntax",kind:"scalar",T:9,opt:!0},{no:14,name:"edition",kind:"enum",T:w.getEnumType(dn),opt:!0}]);var kt=class t extends y{constructor(e){super(),this.field=[],this.extension=[],this.nestedType=[],this.enumType=[],this.extensionRange=[],this.oneofDecl=[],this.reservedRange=[],this.reservedName=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};kt.runtime=w;kt.typeName="google.protobuf.DescriptorProto";kt.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"field",kind:"message",T:mn,repeated:!0},{no:6,name:"extension",kind:"message",T:mn,repeated:!0},{no:3,name:"nested_type",kind:"message",T:kt,repeated:!0},{no:4,name:"enum_type",kind:"message",T:bt,repeated:!0},{no:5,name:"extension_range",kind:"message",T:Nr,repeated:!0},{no:8,name:"oneof_decl",kind:"message",T:Ir,repeated:!0},{no:7,name:"options",kind:"message",T:qr,opt:!0},{no:9,name:"reserved_range",kind:"message",T:Cr,repeated:!0},{no:10,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var Nr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Nr.runtime=w;Nr.typeName="google.protobuf.DescriptorProto.ExtensionRange";Nr.fields=w.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:Or,opt:!0}]);var Cr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Cr.runtime=w;Cr.typeName="google.protobuf.DescriptorProto.ReservedRange";Cr.fields=w.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var Or=class t extends y{constructor(e){super(),this.uninterpretedOption=[],this.declaration=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Or.runtime=w;Or.typeName="google.protobuf.ExtensionRangeOptions";Or.fields=w.util.newFieldList(()=>[{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0},{no:2,name:"declaration",kind:"message",T:Mr,repeated:!0},{no:50,name:"features",kind:"message",T:Be,opt:!0},{no:3,name:"verification",kind:"enum",T:w.getEnumType(ai),opt:!0,default:ai.UNVERIFIED}]);var ai;(function(t){t[t.DECLARATION=0]="DECLARATION",t[t.UNVERIFIED=1]="UNVERIFIED"})(ai||(ai={}));w.util.setEnumType(ai,"google.protobuf.ExtensionRangeOptions.VerificationState",[{no:0,name:"DECLARATION"},{no:1,name:"UNVERIFIED"}]);var Mr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Mr.runtime=w;Mr.typeName="google.protobuf.ExtensionRangeOptions.Declaration";Mr.fields=w.util.newFieldList(()=>[{no:1,name:"number",kind:"scalar",T:5,opt:!0},{no:2,name:"full_name",kind:"scalar",T:9,opt:!0},{no:3,name:"type",kind:"scalar",T:9,opt:!0},{no:5,name:"reserved",kind:"scalar",T:8,opt:!0},{no:6,name:"repeated",kind:"scalar",T:8,opt:!0}]);var mn=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};mn.runtime=w;mn.typeName="google.protobuf.FieldDescriptorProto";mn.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:3,name:"number",kind:"scalar",T:5,opt:!0},{no:4,name:"label",kind:"enum",T:w.getEnumType(Ea),opt:!0},{no:5,name:"type",kind:"enum",T:w.getEnumType(Ra),opt:!0},{no:6,name:"type_name",kind:"scalar",T:9,opt:!0},{no:2,name:"extendee",kind:"scalar",T:9,opt:!0},{no:7,name:"default_value",kind:"scalar",T:9,opt:!0},{no:9,name:"oneof_index",kind:"scalar",T:5,opt:!0},{no:10,name:"json_name",kind:"scalar",T:9,opt:!0},{no:8,name:"options",kind:"message",T:br,opt:!0},{no:17,name:"proto3_optional",kind:"scalar",T:8,opt:!0}]);var Ra;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.GROUP=10]="GROUP",t[t.MESSAGE=11]="MESSAGE",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.ENUM=14]="ENUM",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(Ra||(Ra={}));w.util.setEnumType(Ra,"google.protobuf.FieldDescriptorProto.Type",[{no:1,name:"TYPE_DOUBLE"},{no:2,name:"TYPE_FLOAT"},{no:3,name:"TYPE_INT64"},{no:4,name:"TYPE_UINT64"},{no:5,name:"TYPE_INT32"},{no:6,name:"TYPE_FIXED64"},{no:7,name:"TYPE_FIXED32"},{no:8,name:"TYPE_BOOL"},{no:9,name:"TYPE_STRING"},{no:10,name:"TYPE_GROUP"},{no:11,name:"TYPE_MESSAGE"},{no:12,name:"TYPE_BYTES"},{no:13,name:"TYPE_UINT32"},{no:14,name:"TYPE_ENUM"},{no:15,name:"TYPE_SFIXED32"},{no:16,name:"TYPE_SFIXED64"},{no:17,name:"TYPE_SINT32"},{no:18,name:"TYPE_SINT64"}]);var Ea;(function(t){t[t.OPTIONAL=1]="OPTIONAL",t[t.REPEATED=3]="REPEATED",t[t.REQUIRED=2]="REQUIRED"})(Ea||(Ea={}));w.util.setEnumType(Ea,"google.protobuf.FieldDescriptorProto.Label",[{no:1,name:"LABEL_OPTIONAL"},{no:3,name:"LABEL_REPEATED"},{no:2,name:"LABEL_REQUIRED"}]);var Ir=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Ir.runtime=w;Ir.typeName="google.protobuf.OneofDescriptorProto";Ir.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"options",kind:"message",T:_r,opt:!0}]);var bt=class t extends y{constructor(e){super(),this.value=[],this.reservedRange=[],this.reservedName=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};bt.runtime=w;bt.typeName="google.protobuf.EnumDescriptorProto";bt.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"value",kind:"message",T:Br,repeated:!0},{no:3,name:"options",kind:"message",T:Vr,opt:!0},{no:4,name:"reserved_range",kind:"message",T:Lr,repeated:!0},{no:5,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var Lr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Lr.runtime=w;Lr.typeName="google.protobuf.EnumDescriptorProto.EnumReservedRange";Lr.fields=w.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var Br=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Br.runtime=w;Br.typeName="google.protobuf.EnumValueDescriptorProto";Br.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"number",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:zr,opt:!0}]);var Ar=class t extends y{constructor(e){super(),this.method=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Ar.runtime=w;Ar.typeName="google.protobuf.ServiceDescriptorProto";Ar.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"method",kind:"message",T:Fr,repeated:!0},{no:3,name:"options",kind:"message",T:Gr,opt:!0}]);var Fr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Fr.runtime=w;Fr.typeName="google.protobuf.MethodDescriptorProto";Fr.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"input_type",kind:"scalar",T:9,opt:!0},{no:3,name:"output_type",kind:"scalar",T:9,opt:!0},{no:4,name:"options",kind:"message",T:jr,opt:!0},{no:5,name:"client_streaming",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"server_streaming",kind:"scalar",T:8,opt:!0,default:!1}]);var Ur=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Ur.runtime=w;Ur.typeName="google.protobuf.FileOptions";Ur.fields=w.util.newFieldList(()=>[{no:1,name:"java_package",kind:"scalar",T:9,opt:!0},{no:8,name:"java_outer_classname",kind:"scalar",T:9,opt:!0},{no:10,name:"java_multiple_files",kind:"scalar",T:8,opt:!0,default:!1},{no:20,name:"java_generate_equals_and_hash",kind:"scalar",T:8,opt:!0},{no:27,name:"java_string_check_utf8",kind:"scalar",T:8,opt:!0,default:!1},{no:9,name:"optimize_for",kind:"enum",T:w.getEnumType(li),opt:!0,default:li.SPEED},{no:11,name:"go_package",kind:"scalar",T:9,opt:!0},{no:16,name:"cc_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"java_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:18,name:"py_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:42,name:"php_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:23,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:31,name:"cc_enable_arenas",kind:"scalar",T:8,opt:!0,default:!0},{no:36,name:"objc_class_prefix",kind:"scalar",T:9,opt:!0},{no:37,name:"csharp_namespace",kind:"scalar",T:9,opt:!0},{no:39,name:"swift_prefix",kind:"scalar",T:9,opt:!0},{no:40,name:"php_class_prefix",kind:"scalar",T:9,opt:!0},{no:41,name:"php_namespace",kind:"scalar",T:9,opt:!0},{no:44,name:"php_metadata_namespace",kind:"scalar",T:9,opt:!0},{no:45,name:"ruby_package",kind:"scalar",T:9,opt:!0},{no:50,name:"features",kind:"message",T:Be,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var li;(function(t){t[t.SPEED=1]="SPEED",t[t.CODE_SIZE=2]="CODE_SIZE",t[t.LITE_RUNTIME=3]="LITE_RUNTIME"})(li||(li={}));w.util.setEnumType(li,"google.protobuf.FileOptions.OptimizeMode",[{no:1,name:"SPEED"},{no:2,name:"CODE_SIZE"},{no:3,name:"LITE_RUNTIME"}]);var qr=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};qr.runtime=w;qr.typeName="google.protobuf.MessageOptions";qr.fields=w.util.newFieldList(()=>[{no:1,name:"message_set_wire_format",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"no_standard_descriptor_accessor",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:7,name:"map_entry",kind:"scalar",T:8,opt:!0},{no:11,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:12,name:"features",kind:"message",T:Be,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var br=class t extends y{constructor(e){super(),this.targets=[],this.editionDefaults=[],this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};br.runtime=w;br.typeName="google.protobuf.FieldOptions";br.fields=w.util.newFieldList(()=>[{no:1,name:"ctype",kind:"enum",T:w.getEnumType(ui),opt:!0,default:ui.STRING},{no:2,name:"packed",kind:"scalar",T:8,opt:!0},{no:6,name:"jstype",kind:"enum",T:w.getEnumType(ci),opt:!0,default:ci.JS_NORMAL},{no:5,name:"lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:15,name:"unverified_lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:10,name:"weak",kind:"scalar",T:8,opt:!0,default:!1},{no:16,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"retention",kind:"enum",T:w.getEnumType(xa),opt:!0},{no:19,name:"targets",kind:"enum",T:w.getEnumType(Ja),repeated:!0},{no:20,name:"edition_defaults",kind:"message",T:Dr,repeated:!0},{no:21,name:"features",kind:"message",T:Be,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var ui;(function(t){t[t.STRING=0]="STRING",t[t.CORD=1]="CORD",t[t.STRING_PIECE=2]="STRING_PIECE"})(ui||(ui={}));w.util.setEnumType(ui,"google.protobuf.FieldOptions.CType",[{no:0,name:"STRING"},{no:1,name:"CORD"},{no:2,name:"STRING_PIECE"}]);var ci;(function(t){t[t.JS_NORMAL=0]="JS_NORMAL",t[t.JS_STRING=1]="JS_STRING",t[t.JS_NUMBER=2]="JS_NUMBER"})(ci||(ci={}));w.util.setEnumType(ci,"google.protobuf.FieldOptions.JSType",[{no:0,name:"JS_NORMAL"},{no:1,name:"JS_STRING"},{no:2,name:"JS_NUMBER"}]);var xa;(function(t){t[t.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",t[t.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",t[t.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(xa||(xa={}));w.util.setEnumType(xa,"google.protobuf.FieldOptions.OptionRetention",[{no:0,name:"RETENTION_UNKNOWN"},{no:1,name:"RETENTION_RUNTIME"},{no:2,name:"RETENTION_SOURCE"}]);var Ja;(function(t){t[t.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",t[t.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",t[t.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",t[t.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",t[t.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",t[t.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",t[t.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",t[t.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",t[t.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",t[t.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(Ja||(Ja={}));w.util.setEnumType(Ja,"google.protobuf.FieldOptions.OptionTargetType",[{no:0,name:"TARGET_TYPE_UNKNOWN"},{no:1,name:"TARGET_TYPE_FILE"},{no:2,name:"TARGET_TYPE_EXTENSION_RANGE"},{no:3,name:"TARGET_TYPE_MESSAGE"},{no:4,name:"TARGET_TYPE_FIELD"},{no:5,name:"TARGET_TYPE_ONEOF"},{no:6,name:"TARGET_TYPE_ENUM"},{no:7,name:"TARGET_TYPE_ENUM_ENTRY"},{no:8,name:"TARGET_TYPE_SERVICE"},{no:9,name:"TARGET_TYPE_METHOD"}]);var Dr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Dr.runtime=w;Dr.typeName="google.protobuf.FieldOptions.EditionDefault";Dr.fields=w.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:w.getEnumType(dn),opt:!0},{no:2,name:"value",kind:"scalar",T:9,opt:!0}]);var _r=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};_r.runtime=w;_r.typeName="google.protobuf.OneofOptions";_r.fields=w.util.newFieldList(()=>[{no:1,name:"features",kind:"message",T:Be,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var Vr=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Vr.runtime=w;Vr.typeName="google.protobuf.EnumOptions";Vr.fields=w.util.newFieldList(()=>[{no:2,name:"allow_alias",kind:"scalar",T:8,opt:!0},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:7,name:"features",kind:"message",T:Be,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var zr=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};zr.runtime=w;zr.typeName="google.protobuf.EnumValueOptions";zr.fields=w.util.newFieldList(()=>[{no:1,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"features",kind:"message",T:Be,opt:!0},{no:3,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var Gr=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Gr.runtime=w;Gr.typeName="google.protobuf.ServiceOptions";Gr.fields=w.util.newFieldList(()=>[{no:34,name:"features",kind:"message",T:Be,opt:!0},{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var jr=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};jr.runtime=w;jr.typeName="google.protobuf.MethodOptions";jr.fields=w.util.newFieldList(()=>[{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:34,name:"idempotency_level",kind:"enum",T:w.getEnumType(fi),opt:!0,default:fi.IDEMPOTENCY_UNKNOWN},{no:35,name:"features",kind:"message",T:Be,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var fi;(function(t){t[t.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",t[t.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",t[t.IDEMPOTENT=2]="IDEMPOTENT"})(fi||(fi={}));w.util.setEnumType(fi,"google.protobuf.MethodOptions.IdempotencyLevel",[{no:0,name:"IDEMPOTENCY_UNKNOWN"},{no:1,name:"NO_SIDE_EFFECTS"},{no:2,name:"IDEMPOTENT"}]);var De=class t extends y{constructor(e){super(),this.name=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};De.runtime=w;De.typeName="google.protobuf.UninterpretedOption";De.fields=w.util.newFieldList(()=>[{no:2,name:"name",kind:"message",T:$r,repeated:!0},{no:3,name:"identifier_value",kind:"scalar",T:9,opt:!0},{no:4,name:"positive_int_value",kind:"scalar",T:4,opt:!0},{no:5,name:"negative_int_value",kind:"scalar",T:3,opt:!0},{no:6,name:"double_value",kind:"scalar",T:1,opt:!0},{no:7,name:"string_value",kind:"scalar",T:12,opt:!0},{no:8,name:"aggregate_value",kind:"scalar",T:9,opt:!0}]);var $r=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};$r.runtime=w;$r.typeName="google.protobuf.UninterpretedOption.NamePart";$r.fields=w.util.newFieldList(()=>[{no:1,name:"name_part",kind:"scalar",T:9},{no:2,name:"is_extension",kind:"scalar",T:8}]);var Be=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Be.runtime=w;Be.typeName="google.protobuf.FeatureSet";Be.fields=w.util.newFieldList(()=>[{no:1,name:"field_presence",kind:"enum",T:w.getEnumType(Na),opt:!0},{no:2,name:"enum_type",kind:"enum",T:w.getEnumType(Ca),opt:!0},{no:3,name:"repeated_field_encoding",kind:"enum",T:w.getEnumType(Oa),opt:!0},{no:4,name:"utf8_validation",kind:"enum",T:w.getEnumType(Ma),opt:!0},{no:5,name:"message_encoding",kind:"enum",T:w.getEnumType(Ia),opt:!0},{no:6,name:"json_format",kind:"enum",T:w.getEnumType(La),opt:!0}]);var Na;(function(t){t[t.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",t[t.EXPLICIT=1]="EXPLICIT",t[t.IMPLICIT=2]="IMPLICIT",t[t.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Na||(Na={}));w.util.setEnumType(Na,"google.protobuf.FeatureSet.FieldPresence",[{no:0,name:"FIELD_PRESENCE_UNKNOWN"},{no:1,name:"EXPLICIT"},{no:2,name:"IMPLICIT"},{no:3,name:"LEGACY_REQUIRED"}]);var Ca;(function(t){t[t.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",t[t.OPEN=1]="OPEN",t[t.CLOSED=2]="CLOSED"})(Ca||(Ca={}));w.util.setEnumType(Ca,"google.protobuf.FeatureSet.EnumType",[{no:0,name:"ENUM_TYPE_UNKNOWN"},{no:1,name:"OPEN"},{no:2,name:"CLOSED"}]);var Oa;(function(t){t[t.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",t[t.PACKED=1]="PACKED",t[t.EXPANDED=2]="EXPANDED"})(Oa||(Oa={}));w.util.setEnumType(Oa,"google.protobuf.FeatureSet.RepeatedFieldEncoding",[{no:0,name:"REPEATED_FIELD_ENCODING_UNKNOWN"},{no:1,name:"PACKED"},{no:2,name:"EXPANDED"}]);var Ma;(function(t){t[t.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",t[t.NONE=1]="NONE",t[t.VERIFY=2]="VERIFY"})(Ma||(Ma={}));w.util.setEnumType(Ma,"google.protobuf.FeatureSet.Utf8Validation",[{no:0,name:"UTF8_VALIDATION_UNKNOWN"},{no:1,name:"NONE"},{no:2,name:"VERIFY"}]);var Ia;(function(t){t[t.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",t[t.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",t[t.DELIMITED=2]="DELIMITED"})(Ia||(Ia={}));w.util.setEnumType(Ia,"google.protobuf.FeatureSet.MessageEncoding",[{no:0,name:"MESSAGE_ENCODING_UNKNOWN"},{no:1,name:"LENGTH_PREFIXED"},{no:2,name:"DELIMITED"}]);var La;(function(t){t[t.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",t[t.ALLOW=1]="ALLOW",t[t.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(La||(La={}));w.util.setEnumType(La,"google.protobuf.FeatureSet.JsonFormat",[{no:0,name:"JSON_FORMAT_UNKNOWN"},{no:1,name:"ALLOW"},{no:2,name:"LEGACY_BEST_EFFORT"}]);var di=class t extends y{constructor(e){super(),this.defaults=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};di.runtime=w;di.typeName="google.protobuf.FeatureSetDefaults";di.fields=w.util.newFieldList(()=>[{no:1,name:"defaults",kind:"message",T:Hr,repeated:!0},{no:4,name:"minimum_edition",kind:"enum",T:w.getEnumType(dn),opt:!0},{no:5,name:"maximum_edition",kind:"enum",T:w.getEnumType(dn),opt:!0}]);var Hr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Hr.runtime=w;Hr.typeName="google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault";Hr.fields=w.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:w.getEnumType(dn),opt:!0},{no:2,name:"features",kind:"message",T:Be,opt:!0}]);var Wr=class t extends y{constructor(e){super(),this.location=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Wr.runtime=w;Wr.typeName="google.protobuf.SourceCodeInfo";Wr.fields=w.util.newFieldList(()=>[{no:1,name:"location",kind:"message",T:Yr,repeated:!0}]);var Yr=class t extends y{constructor(e){super(),this.path=[],this.span=[],this.leadingDetachedComments=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Yr.runtime=w;Yr.typeName="google.protobuf.SourceCodeInfo.Location";Yr.fields=w.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"span",kind:"scalar",T:5,repeated:!0,packed:!0},{no:3,name:"leading_comments",kind:"scalar",T:9,opt:!0},{no:4,name:"trailing_comments",kind:"scalar",T:9,opt:!0},{no:6,name:"leading_detached_comments",kind:"scalar",T:9,repeated:!0}]);var mi=class t extends y{constructor(e){super(),this.annotation=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};mi.runtime=w;mi.typeName="google.protobuf.GeneratedCodeInfo";mi.fields=w.util.newFieldList(()=>[{no:1,name:"annotation",kind:"message",T:Kr,repeated:!0}]);var Kr=class t extends y{constructor(e){super(),this.path=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Kr.runtime=w;Kr.typeName="google.protobuf.GeneratedCodeInfo.Annotation";Kr.fields=w.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"source_file",kind:"scalar",T:9,opt:!0},{no:3,name:"begin",kind:"scalar",T:5,opt:!0},{no:4,name:"end",kind:"scalar",T:5,opt:!0},{no:5,name:"semantic",kind:"enum",T:w.getEnumType(Ba),opt:!0}]);var Ba;(function(t){t[t.NONE=0]="NONE",t[t.SET=1]="SET",t[t.ALIAS=2]="ALIAS"})(Ba||(Ba={}));w.util.setEnumType(Ba,"google.protobuf.GeneratedCodeInfo.Annotation.Semantic",[{no:0,name:"NONE"},{no:1,name:"SET"},{no:2,name:"ALIAS"}]);var me=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};me.runtime=u;me.typeName="google.protobuf.Empty";me.fields=u.util.newFieldList(()=>[]);var Aa=class t extends y{secret="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.VerifyUserRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Fa=class t extends y{secret="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.GroupInfoRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ua=class t extends y{groupId="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.GroupID";static fields=u.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},qa=class t extends y{contentId="";groupId="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.ShareRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},pi=class t extends y{secret="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.GroupInvite";static fields=u.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ba=class t extends y{groups=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.Groups";static fields=u.util.newFieldList(()=>[{no:1,name:"groups",kind:"message",T:Dt,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},fv=class t extends y{text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.AnalyzeConversationRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Rt=class t extends y{email="";password="";username="";config;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.User";static fields=u.util.newFieldList(()=>[{no:1,name:"email",kind:"scalar",T:9},{no:2,name:"password",kind:"scalar",T:9},{no:3,name:"username",kind:"scalar",T:9},{no:4,name:"config",kind:"message",T:gi}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Dt=class t extends y{id="";name="";users=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.Group";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"users",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},gi=class t extends y{domainWhitelist=[];offlineVoice=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.Config";static fields=u.util.newFieldList(()=>[{no:1,name:"domain_whitelist",kind:"scalar",T:9,repeated:!0},{no:2,name:"offline_voice",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Da=class t extends y{user;success=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.LoginResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"user",kind:"message",T:Rt},{no:2,name:"success",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var _a=class t extends y{title="";createTime=0;updateTime=0;mapping={};conversationId="";conversationTemplateId="";currentNode="";gizmoId="";isArchived=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Conversation";static fields=u.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"create_time",kind:"scalar",T:1},{no:3,name:"update_time",kind:"scalar",T:1},{no:4,name:"mapping",kind:"map",K:9,V:{kind:"message",T:Kf}},{no:5,name:"conversation_id",kind:"scalar",T:9},{no:6,name:"conversation_template_id",kind:"scalar",T:9},{no:7,name:"current_node",kind:"scalar",T:9},{no:8,name:"gizmo_id",kind:"scalar",T:9},{no:9,name:"is_archived",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Kf=class t extends y{id="";message;parent="";children=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Node";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"message",kind:"message",T:Qf},{no:3,name:"parent",kind:"scalar",T:9},{no:4,name:"children",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Qf=class t extends y{id="";author;createTime=0;content;status="";endTurn=!1;weight=0;metadata;recipient="";updateTime=0;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Message";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"author",kind:"message",T:Zf},{no:3,name:"create_time",kind:"scalar",T:1},{no:4,name:"content",kind:"message",T:ed},{no:5,name:"status",kind:"scalar",T:9},{no:6,name:"end_turn",kind:"scalar",T:8},{no:7,name:"weight",kind:"scalar",T:5},{no:8,name:"metadata",kind:"message",T:Xf},{no:9,name:"recipient",kind:"scalar",T:9},{no:10,name:"update_time",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Xf=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.MessageMetadata";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Zf=class t extends y{role="";metadata;name="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Author";static fields=u.util.newFieldList(()=>[{no:1,name:"role",kind:"scalar",T:9},{no:2,name:"metadata",kind:"message",T:od},{no:3,name:"name",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ed=class t extends y{contentType="";textParts=[];imageParts=[];text="";parts=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Content";static fields=u.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"text_parts",kind:"scalar",T:9,repeated:!0},{no:3,name:"image_parts",kind:"message",T:td,repeated:!0},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"parts",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},td=class t extends y{contentType="";assetPointer="";sizeBytes=V.zero;width=0;height=0;fovea=0;metadata;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.ImageAsset";static fields=u.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"asset_pointer",kind:"scalar",T:9},{no:3,name:"size_bytes",kind:"scalar",T:3},{no:4,name:"width",kind:"scalar",T:5},{no:5,name:"height",kind:"scalar",T:5},{no:6,name:"fovea",kind:"scalar",T:5},{no:7,name:"metadata",kind:"message",T:nd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},nd=class t extends y{dalle;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Metadata";static fields=u.util.newFieldList(()=>[{no:1,name:"dalle",kind:"message",T:rd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},rd=class t extends y{genId="";prompt="";seed=0;serializationTitle="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.DalleMetadata";static fields=u.util.newFieldList(()=>[{no:1,name:"gen_id",kind:"scalar",T:9},{no:2,name:"prompt",kind:"scalar",T:9},{no:3,name:"seed",kind:"scalar",T:13},{no:4,name:"serialization_title",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},od=class t extends y{attachments=[];timestamp="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.AuthorMetadata";static fields=u.util.newFieldList(()=>[{no:1,name:"attachments",kind:"message",T:id,repeated:!0},{no:2,name:"timestamp_",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},id=class t extends y{id="";name="";mimeType="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Attachment";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"mimeType",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var Va=class t extends y{nodes=[];edges=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="browser.History";static fields=u.util.newFieldList(()=>[{no:1,name:"nodes",kind:"message",T:sd,repeated:!0},{no:2,name:"edges",kind:"message",T:ad,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},sd=class t extends y{id="";url="";title="";open=0;close=0;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="browser.Node";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"open",kind:"scalar",T:1},{no:5,name:"close",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ad=class t extends y{from="";to="";tab="";visitTime=0;visitDuration=0;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="browser.Edge";static fields=u.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9},{no:3,name:"tab",kind:"scalar",T:9},{no:4,name:"visit_time",kind:"scalar",T:1},{no:5,name:"visit_duration",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var za=class t extends y{publishDir="";baseUrl="";title="";paginate=0;theme=[];enableInlineShortcodes=!1;enableRobotsTxt=!1;buildDrafts=!1;buildFuture=!1;buildExpired=!1;enableEmoji=!1;pygmentsUseClasses=!1;mainSections=[];minify;languages={};outputs={};params;markup;services;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.HugoConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"publish_dir",kind:"scalar",T:9},{no:2,name:"base_url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"paginate",kind:"scalar",T:5},{no:5,name:"theme",kind:"scalar",T:9,repeated:!0},{no:6,name:"enable_inline_shortcodes",kind:"scalar",T:8},{no:7,name:"enable_robots_txt",kind:"scalar",T:8},{no:8,name:"build_drafts",kind:"scalar",T:8},{no:9,name:"build_future",kind:"scalar",T:8},{no:10,name:"build_expired",kind:"scalar",T:8},{no:11,name:"enable_emoji",kind:"scalar",T:8},{no:12,name:"pygments_use_classes",kind:"scalar",T:8},{no:13,name:"main_sections",kind:"scalar",T:9,repeated:!0},{no:14,name:"minify",kind:"message",T:ld},{no:15,name:"languages",kind:"map",K:9,V:{kind:"message",T:ud}},{no:16,name:"outputs",kind:"map",K:9,V:{kind:"message",T:hd}},{no:17,name:"params",kind:"message",T:wd},{no:18,name:"markup",kind:"message",T:dd},{no:19,name:"services",kind:"message",T:yd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ld=class t extends y{disableXml=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.MinifyConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"disable_xml",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ud=class t extends y{languageName="";weight=0;title="";taxonomies={};menu={};params={};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.LanguageConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"language_name",kind:"scalar",T:9},{no:2,name:"weight",kind:"scalar",T:5},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"taxonomies",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"menu",kind:"map",K:9,V:{kind:"message",T:vd}},{no:6,name:"params",kind:"map",K:9,V:{kind:"scalar",T:9}}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},yi=class t extends y{name="";url="";weight=0;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.MenuItem";static fields=u.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"weight",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},cd=class t extends y{url="";text="";appendFilePath=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.EditPostConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"append_file_path",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},fd=class t extends y{disableHljs=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.AssetsConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"disable_hljs",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},dd=class t extends y{goldmark;highlight;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.MarkupConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"goldmark",kind:"message",T:md},{no:2,name:"highlight",kind:"message",T:gd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},md=class t extends y{renderer;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.GoldmarkConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"renderer",kind:"message",T:pd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},pd=class t extends y{unsafe=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.RendererConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"unsafe",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},gd=class t extends y{noClasses=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.HighlightConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"no_classes",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},yd=class t extends y{instagram;twitter;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ServicesConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"instagram",kind:"message",T:Ga},{no:2,name:"twitter",kind:"message",T:Ga}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ga=class t extends y{disableInlineCss=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ServiceConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"disable_inline_css",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},hd=class t extends y{values=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.RepeatedString";static fields=u.util.newFieldList(()=>[{no:1,name:"values",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},vd=class t extends y{items=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.RepeatedMenuItem";static fields=u.util.newFieldList(()=>[{no:1,name:"items",kind:"message",T:yi,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},wd=class t extends y{env="";description="";author="";defaultTheme="";showShareButtons=!1;showReadingTime=!1;displayFullLangName=!1;showPostNavLinks=!1;showBreadCrumbs=!1;showCodeCopyButtons=!1;showRssButtonInSectionTermList=!1;showAllPagesInArchive=!1;showPageNums=!1;showToc=!1;images=[];profileMode;homeInfoParams;socialIcons=[];editPost;assets;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ParamsConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"env",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"author",kind:"scalar",T:9},{no:4,name:"default_theme",kind:"scalar",T:9},{no:5,name:"show_share_buttons",kind:"scalar",T:8},{no:6,name:"show_reading_time",kind:"scalar",T:8},{no:7,name:"display_full_lang_name",kind:"scalar",T:8},{no:8,name:"show_post_nav_links",kind:"scalar",T:8},{no:9,name:"show_bread_crumbs",kind:"scalar",T:8},{no:10,name:"show_code_copy_buttons",kind:"scalar",T:8},{no:11,name:"show_rss_button_in_section_term_list",kind:"scalar",T:8},{no:12,name:"show_all_pages_in_archive",kind:"scalar",T:8},{no:13,name:"show_page_nums",kind:"scalar",T:8},{no:14,name:"show_toc",kind:"scalar",T:8},{no:15,name:"images",kind:"scalar",T:9,repeated:!0},{no:16,name:"profile_mode",kind:"message",T:Sd},{no:17,name:"home_info_params",kind:"message",T:Td},{no:18,name:"social_icons",kind:"message",T:kd,repeated:!0},{no:19,name:"edit_post",kind:"message",T:cd},{no:20,name:"assets",kind:"message",T:fd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Sd=class t extends y{enabled=!1;title="";imageUrl="";imageTitle="";buttons=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ProfileModeConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"image_url",kind:"scalar",T:9},{no:4,name:"image_title",kind:"scalar",T:9},{no:5,name:"buttons",kind:"message",T:Pd,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Pd=class t extends y{name="";url="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ButtonConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Td=class t extends y{title="";content="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.HomeInfoParamsConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"content",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},kd=class t extends y{name="";title="";url="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.SocialIconConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var ja=class t extends y{prompt="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.InferRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},$a=class t extends y{text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.InferResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ha=class t extends y{content;site;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.TypesResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:sl},{no:2,name:"site",kind:"message",T:sl}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Wa=class t extends y{contentTypes=[];tags=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.GetSourcesRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"content_types",kind:"scalar",T:9,repeated:!0},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ya=class t extends y{captureDevice=0;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.VoiceInputRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ka=class t extends y{segment;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.VoiceInputResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:Qr}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Qa=class t extends y{parent="";children=[];connect=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.RelateRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"parent",kind:"scalar",T:9},{no:2,name:"children",kind:"scalar",T:9,repeated:!0},{no:3,name:"connect",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Xa=class t extends y{sources=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Sources";static fields=u.util.newFieldList(()=>[{no:1,name:"sources",kind:"message",T:Rd,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Rd=class t extends y{source;displayContent=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.EnumeratedSource";static fields=u.util.newFieldList(()=>[{no:1,name:"source",kind:"message",T:xd},{no:2,name:"display_content",kind:"message",T:Ed,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ed=class t extends y{title="";description="";type="";content;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.DisplayContent";static fields=u.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"type",kind:"scalar",T:9},{no:4,name:"content",kind:"message",T:Ye}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},xd=class t extends y{name="";type={case:void 0};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Source";static fields=u.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"server",kind:"message",T:Jd,oneof:"type"},{no:3,name:"folder",kind:"message",T:Nd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Jd=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Server";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Nd=class t extends y{path="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Folder";static fields=u.util.newFieldList(()=>[{no:2,name:"path",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Za=class t extends y{contentId="";tags=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.SetTagsRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},el=class t extends y{groupId="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.TagRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},tl=class t extends y{tags=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Tags";static fields=u.util.newFieldList(()=>[{no:1,name:"tags",kind:"message",T:nl,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},nl=class t extends y{name="";subTags=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Tag";static fields=u.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"sub_tags",kind:"message",T:t,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},pn=class t extends y{contentIds=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ContentIDs";static fields=u.util.newFieldList(()=>[{no:1,name:"content_ids",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},hi=class t extends y{content;tags=[];related=[];parents=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Contents";static fields=u.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Ye},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0},{no:3,name:"related",kind:"message",T:Ye,repeated:!0},{no:4,name:"parents",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},rl=class t extends y{query="";page=0;contentID="";groupID="";tags=[];contentTypes=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Query";static fields=u.util.newFieldList(()=>[{no:1,name:"query",kind:"scalar",T:9},{no:2,name:"page",kind:"scalar",T:13},{no:3,name:"contentID",kind:"scalar",T:9},{no:4,name:"groupID",kind:"scalar",T:9},{no:5,name:"tags",kind:"scalar",T:9,repeated:!0},{no:6,name:"content_types",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ol=class t extends y{storedContent=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Results";static fields=u.util.newFieldList(()=>[{no:1,name:"storedContent",kind:"message",T:Cd,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Cd=class t extends y{content;id="";related=[];title="";description="";image="";url="";user;tags=[];preview="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.StoredContent";static fields=u.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Ye},{no:2,name:"id",kind:"scalar",T:9},{no:3,name:"related",kind:"message",T:Ye,repeated:!0},{no:4,name:"title",kind:"scalar",T:9},{no:5,name:"description",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"url",kind:"scalar",T:9},{no:9,name:"user",kind:"message",T:Rt},{no:10,name:"tags",kind:"message",T:nl,repeated:!0},{no:11,name:"preview",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},dv=class t extends y{from="";to="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Edge";static fields=u.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ye=class t extends y{tags=[];createdAt="";uri="";id="";type={case:void 0};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Content";static fields=u.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"created_at",kind:"scalar",T:9},{no:3,name:"uri",kind:"scalar",T:9},{no:4,name:"id",kind:"scalar",T:9},{no:6,name:"data",kind:"message",T:vi,oneof:"type"},{no:7,name:"normalized",kind:"message",T:Od,oneof:"type"},{no:8,name:"transformed",kind:"message",T:Md,oneof:"type"},{no:9,name:"post",kind:"message",T:il,oneof:"type"},{no:10,name:"site",kind:"message",T:Vd,oneof:"type"},{no:11,name:"chatgpt_conversation",kind:"message",T:_a,oneof:"type"},{no:12,name:"browser_history",kind:"message",T:Va,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},il=class t extends y{title="";summary="";content="";authors=[];draft=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Post";static fields=u.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"content",kind:"scalar",T:9},{no:4,name:"authors",kind:"scalar",T:9,repeated:!0},{no:6,name:"draft",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},mv=class t extends y{url="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.GitRepo";static fields=u.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},vi=class t extends y{type={case:void 0};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Data";static fields=u.util.newFieldList(()=>[{no:4,name:"text",kind:"message",T:qd,oneof:"type"},{no:5,name:"file",kind:"message",T:Ud,oneof:"type"},{no:6,name:"url",kind:"message",T:bd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Od=class t extends y{type={case:void 0};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Normalized";static fields=u.util.newFieldList(()=>[{no:3,name:"article",kind:"message",T:Id,oneof:"type"},{no:4,name:"html",kind:"message",T:Ld,oneof:"type"},{no:6,name:"transcript",kind:"message",T:_d,oneof:"type"},{no:7,name:"readme",kind:"message",T:Bd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Md=class t extends y{type={case:void 0};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Transformed";static fields=u.util.newFieldList(()=>[{no:1,name:"summary",kind:"message",T:Ad,oneof:"type"},{no:2,name:"categories",kind:"message",T:Fd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Id=class t extends y{title="";author="";length=0;excerpt="";siteName="";image="";favicon="";text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Article";static fields=u.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"author",kind:"scalar",T:9},{no:3,name:"length",kind:"scalar",T:5},{no:4,name:"excerpt",kind:"scalar",T:9},{no:5,name:"site_name",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"favicon",kind:"scalar",T:9},{no:8,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ld=class t extends y{html="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.HTML";static fields=u.util.newFieldList(()=>[{no:1,name:"html",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Bd=class t extends y{data="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ReadMe";static fields=u.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ad=class t extends y{summary="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Summary";static fields=u.util.newFieldList(()=>[{no:1,name:"summary",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Fd=class t extends y{categories=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Categories";static fields=u.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ud=class t extends y{file="";data=new Uint8Array(0);url="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.File";static fields=u.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9},{no:2,name:"data",kind:"scalar",T:12},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},qd=class t extends y{data="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Text";static fields=u.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},bd=class t extends y{url="";crawl=!1;title="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.URL";static fields=u.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"crawl",kind:"scalar",T:8},{no:3,name:"title",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Dd=class t extends y{id=0;startTime=V.zero;endTime=V.zero;text="";p="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Token";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Qr=class t extends y{num=0;tokens=[];text="";startTime=V.zero;endTime=V.zero;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Segment";static fields=u.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:Dd,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},_d=class t extends y{id="";name="";segments=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Transcript";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:Qr,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},sl=class t extends y{msg;descLookup={};enumLookup={};packageName="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.GRPCTypeInfo";static fields=u.util.newFieldList(()=>[{no:1,name:"msg",kind:"message",T:kt},{no:3,name:"desc_lookup",kind:"map",K:9,V:{kind:"message",T:kt}},{no:4,name:"enum_lookup",kind:"map",K:9,V:{kind:"message",T:bt}},{no:6,name:"package_name",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Vd=class t extends y{sections=[];hugoConfig;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Site";static fields=u.util.newFieldList(()=>[{no:1,name:"sections",kind:"message",T:zd,repeated:!0},{no:2,name:"hugo_config",kind:"message",T:za}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},zd=class t extends y{tags=[];menu;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Section";static fields=u.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"menu",kind:"message",T:yi}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var al=class t extends y{text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.AnalyzeConversationRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ll=class t extends y{prompt="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GenerateImagesRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ul=class t extends y{images=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GenerateImagesResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"images",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},cl=class t extends y{id="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.DeleteSessionRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Xr=class t extends y{id="";text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.Prompt";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},fl=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GetPromptsRequest";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},dl=class t extends y{prompts=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GetPromptsResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"prompts",kind:"message",T:Xr,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ml=class t extends y{prompt="";text=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.InferRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},pl=class t extends y{text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.InferResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},gl=class t extends y{content;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.UploadContentRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Ye}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},pv=class t extends y{id="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.UploadContentResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},yl=class t extends y{id="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GetSessionRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},hl=class t extends y{session;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GetSessionResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"session",kind:"message",T:Pl}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},vl=class t extends y{page=V.zero;limit=V.zero;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GetSessionsRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"page",kind:"scalar",T:4},{no:2,name:"limit",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},wl=class t extends y{sessions=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GetSessionsResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"sessions",kind:"message",T:Pl,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Gd=class t extends y{id=0;startTime=V.zero;endTime=V.zero;text="";p="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.Token";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Sl=class t extends y{num=0;tokens=[];text="";startTime=V.zero;endTime=V.zero;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.Segment";static fields=u.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:Gd,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Pl=class t extends y{id="";name="";segments=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.Session";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:Sl,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},gv=class t extends y{filePath="";model="";language="";translate=!1;offset=V.zero;duration=V.zero;threads=0;speedup=!1;maxLen=0;maxTokens=0;wordThreshold=0;tokens=!1;colorize=!1;out="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.TranscriptionRequest";static fields=u.util.newFieldList(()=>[{no:14,name:"file_path",kind:"scalar",T:9},{no:1,name:"model",kind:"scalar",T:9},{no:2,name:"language",kind:"scalar",T:9},{no:3,name:"translate",kind:"scalar",T:8},{no:4,name:"offset",kind:"scalar",T:3},{no:5,name:"duration",kind:"scalar",T:3},{no:6,name:"threads",kind:"scalar",T:13},{no:7,name:"speedup",kind:"scalar",T:8},{no:8,name:"max_len",kind:"scalar",T:13},{no:9,name:"max_tokens",kind:"scalar",T:13},{no:10,name:"word_threshold",kind:"scalar",T:1},{no:11,name:"tokens",kind:"scalar",T:8},{no:12,name:"colorize",kind:"scalar",T:8},{no:13,name:"out",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},yv=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.RegisterFlags";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},hv=class t extends y{text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.OCRText";static fields=u.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},vv=class t extends y{image=new Uint8Array(0);constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.Image";static fields=u.util.newFieldList(()=>[{no:1,name:"image",kind:"scalar",T:12}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Tl=class t extends y{from="";to="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.ConvertFileRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},kl=class t extends y{captureDevice=0;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.ChatRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},wi=class t extends y{segment;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.ChatResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:Sl}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Rl=class t extends y{id="";file="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.YouTubeVideo";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"file",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Si=class t extends y{file="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.FilePath";static fields=u.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},El=class t extends y{title="";filePath;transcript=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.YouTubeVideoResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"file_path",kind:"message",T:Si},{no:3,name:"transcript",kind:"message",T:Qr,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var xl=class t extends y{phoneNumbers=[];summary="";questions=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="ai.AnalyzeConversationResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"phone_numbers",kind:"scalar",T:9,repeated:!0},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"questions",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},wv=class t extends y{categories=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="ai.AnalyzeContent";static fields=u.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var Sv={typeName:"protoflow.ProtoflowService",methods:{downloadYouTubeVideo:{name:"DownloadYouTubeVideo",I:Rl,O:El,kind:A.Unary},getSessions:{name:"GetSessions",I:vl,O:wl,kind:A.Unary},getSession:{name:"GetSession",I:yl,O:hl,kind:A.Unary},deleteSession:{name:"DeleteSession",I:cl,O:me,kind:A.Unary},getPrompts:{name:"GetPrompts",I:fl,O:dl,kind:A.Unary},newPrompt:{name:"NewPrompt",I:Xr,O:Xr,kind:A.Unary},uploadContent:{name:"UploadContent",I:gl,O:wi,kind:A.ServerStreaming},infer:{name:"Infer",I:ml,O:pl,kind:A.ServerStreaming},chat:{name:"Chat",I:kl,O:wi,kind:A.ServerStreaming},convertFile:{name:"ConvertFile",I:Tl,O:Si,kind:A.Unary},generateImages:{name:"GenerateImages",I:ll,O:ul,kind:A.Unary},analyzeConversation:{name:"AnalyzeConversation",I:al,O:xl,kind:A.Unary}}};var Pv={typeName:"content.ContentService",methods:{save:{name:"Save",I:hi,O:pn,kind:A.Unary},search:{name:"Search",I:rl,O:ol,kind:A.Unary},relate:{name:"Relate",I:Qa,O:me,kind:A.Unary},analyze:{name:"Analyze",I:Ye,O:hi,kind:A.Unary},delete:{name:"Delete",I:pn,O:pn,kind:A.Unary},getTags:{name:"GetTags",I:el,O:tl,kind:A.Unary},setTags:{name:"SetTags",I:Za,O:me,kind:A.Unary},publish:{name:"Publish",I:pn,O:pn,kind:A.Unary},getSources:{name:"GetSources",I:Wa,O:Xa,kind:A.Unary},infer:{name:"Infer",I:ja,O:$a,kind:A.ServerStreaming},types:{name:"Types",I:me,O:Ha,kind:A.Unary},voiceInput:{name:"VoiceInput",I:Ya,O:Ka,kind:A.ServerStreaming}}};var Tv={typeName:"user.UserService",methods:{register:{name:"Register",I:Rt,O:Rt,kind:A.Unary},login:{name:"Login",I:Rt,O:Da,kind:A.Unary},logout:{name:"Logout",I:me,O:me,kind:A.Unary},resetPassword:{name:"ResetPassword",I:Rt,O:me,kind:A.Unary},verifyUser:{name:"VerifyUser",I:Aa,O:me,kind:A.Unary},updateConfig:{name:"UpdateConfig",I:gi,O:me,kind:A.Unary},createGroupInvite:{name:"CreateGroupInvite",I:Ua,O:pi,kind:A.Unary},joinGroup:{name:"JoinGroup",I:pi,O:Dt,kind:A.Unary},groupInfo:{name:"GroupInfo",I:Fa,O:Dt,kind:A.Unary},createGroup:{name:"CreateGroup",I:Dt,O:Dt,kind:A.Unary},getGroups:{name:"GetGroups",I:me,O:ba,kind:A.Unary},deleteGroup:{name:"DeleteGroup",I:Dt,O:me,kind:A.Unary},share:{name:"Share",I:qa,O:me,kind:A.Unary}}};var Jl=class t extends y{user="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chat.BanUserRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Nl=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chat.BanUserResponse";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Cl=class t extends y{message="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chat.SendMessageRequest";static fields=u.util.newFieldList(()=>[{no:2,name:"message",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ol=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chat.SendMessageResponse";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ml=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chat.ReceiveMessagesRequest";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Il=class t extends y{user="";text="";timestamp=V.zero;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chat.Message";static fields=u.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"timestamp",kind:"scalar",T:3}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var kv={typeName:"chat.ChatService",methods:{sendMessage:{name:"SendMessage",I:Cl,O:Ol,kind:A.Unary},receiveMessages:{name:"ReceiveMessages",I:Ml,O:Il,kind:A.ServerStreaming},banUser:{name:"BanUser",I:Jl,O:Nl,kind:A.Unary}}};var Ll=class t extends y{type={case:void 0};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="event.Metric";static fields=u.util.newFieldList(()=>[{no:1,name:"http",kind:"message",T:jd,oneof:"type"},{no:2,name:"rrweb",kind:"message",T:$d,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},jd=class t extends y{method="";path="";query="";headers={};host="";remoteAddr="";userAgent="";referer="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="event.HTTPRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"method",kind:"scalar",T:9},{no:2,name:"path",kind:"scalar",T:9},{no:3,name:"query",kind:"scalar",T:9},{no:4,name:"headers",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"host",kind:"scalar",T:9},{no:6,name:"remoteAddr",kind:"scalar",T:9},{no:7,name:"userAgent",kind:"scalar",T:9},{no:8,name:"referer",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},$d=class t extends y{events="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="event.RRWeb";static fields=u.util.newFieldList(()=>[{no:1,name:"events",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Bl=class t extends y{id="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="event.SendResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var Rv={typeName:"event.EventService",methods:{send:{name:"Send",I:Ll,O:Bl,kind:A.Unary}}};var D;(function(t){t[t.Canceled=1]="Canceled",t[t.Unknown=2]="Unknown",t[t.InvalidArgument=3]="InvalidArgument",t[t.DeadlineExceeded=4]="DeadlineExceeded",t[t.NotFound=5]="NotFound",t[t.AlreadyExists=6]="AlreadyExists",t[t.PermissionDenied=7]="PermissionDenied",t[t.ResourceExhausted=8]="ResourceExhausted",t[t.FailedPrecondition=9]="FailedPrecondition",t[t.Aborted=10]="Aborted",t[t.OutOfRange=11]="OutOfRange",t[t.Unimplemented=12]="Unimplemented",t[t.Internal=13]="Internal",t[t.Unavailable=14]="Unavailable",t[t.DataLoss=15]="DataLoss",t[t.Unauthenticated=16]="Unauthenticated"})(D||(D={}));function Pi(t){let e=D[t];return typeof e!="string"?t.toString():e[0].toLowerCase()+e.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var Al;function Ev(t){if(!Al){Al={};for(let e of Object.values(D))typeof e!="string"&&(Al[Pi(e)]=e)}return Al[t]}var ue=class t extends Error{constructor(e,n=D.Unknown,r,o,i){super(VP(e,n)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=e,this.code=n,this.metadata=new Headers(r??{}),this.details=o??[],this.cause=i}static from(e,n=D.Unknown){return e instanceof t?e:e instanceof Error?e.name=="AbortError"?new t(e.message,D.Canceled):new t(e.message,n,void 0,void 0,e):new t(String(e),n,void 0,void 0,e)}static[Symbol.hasInstance](e){return e instanceof Error?Object.getPrototypeOf(e)===t.prototype?!0:e.name==="ConnectError"&&"code"in e&&typeof e.code=="number"&&"metadata"in e&&"details"in e&&Array.isArray(e.details)&&"rawMessage"in e&&typeof e.rawMessage=="string"&&"cause"in e:!1}findDetails(e){let n="typeName"in e?{findMessage:o=>o===e.typeName?e:void 0}:e,r=[];for(let o of this.details){if(o instanceof y){n.findMessage(o.getType().typeName)&&r.push(o);continue}let i=n.findMessage(o.type);if(i)try{r.push(i.fromBinary(o.value))}catch{}}return r}};function VP(t,e){return t.length?`[${Pi(e)}] ${t}`:`[${Pi(e)}]`}function Hd(...t){let e=new Headers;for(let n of t)n.forEach((r,o)=>{e.append(o,r)});return e}function xv(t,e){let n={};for(let[r,o]of Object.entries(t.methods)){let i=e(Object.assign(Object.assign({},o),{localName:r,service:t}));i!=null&&(n[r]=i)}return n}function Wd(t){let e,n=new Uint8Array(0);function r(o){let i=new Uint8Array(n.length+o.length);i.set(n),i.set(o,n.length),n=i}return new ReadableStream({start(){e=t.getReader()},async pull(o){let i;for(;;){if(i===void 0&&n.byteLength>=5){let l=0;for(let c=1;c<5;c++)l=(l<<8)+n[c];i={flags:n[0],length:l}}if(i!==void 0&&n.byteLength>=i.length+5)break;let a=await e.read();if(a.done)break;r(a.value)}if(i===void 0){if(n.byteLength==0){o.close();return}o.error(new ue("premature end of stream",D.DataLoss));return}let s=n.subarray(5,5+i.length);n=n.subarray(5+i.length),o.enqueue({flags:i.flags,data:s})}})}function Yd(t,e){let n=new Uint8Array(e.length+5);n.set(e,5);let r=new DataView(n.buffer,n.byteOffset,n.byteLength);return r.setUint8(0,t),r.setUint32(1,e.length),n}var zP=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=t[i]&&function(s){return new Promise(function(a,l){s=t[i](s),o(a,l,s.done,s.value)})}}function o(i,s,a,l){Promise.resolve(l).then(function(c){i({value:c,done:a})},s)}},Ti=function(t){return this instanceof Ti?(this.v=t,this):new Ti(t)},GP=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),o,i=[];return o={},a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(p){return function(S){return Promise.resolve(S).then(p,h)}}function a(p,S){r[p]&&(o[p]=function(T){return new Promise(function(O,g){i.push([p,T,O,g])>1||l(p,T)})},S&&(o[p]=S(o[p])))}function l(p,S){try{c(r[p](S))}catch(T){m(i[0][3],T)}}function c(p){p.value instanceof Ti?Promise.resolve(p.value.v).then(f,h):m(i[0][2],p)}function f(p){l("next",p)}function h(p){l("throw",p)}function m(p,S){p(S),i.shift(),i.length&&l(i[0][0],i[0][1])}},jP=function(t){var e,n;return e={},r("next"),r("throw",function(o){throw o}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(o,i){e[o]=t[o]?function(s){return(n=!n)?{value:Ti(t[o](s)),done:!1}:i?i(s):s}:i}};function Jv(t){return GP(this,arguments,function*(){yield Ti(yield*jP(zP(t)))})}var Nv=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=t[i]&&function(s){return new Promise(function(a,l){s=t[i](s),o(a,l,s.done,s.value)})}}function o(i,s,a,l){Promise.resolve(l).then(function(c){i({value:c,done:a})},s)}},Zr=function(t){return this instanceof Zr?(this.v=t,this):new Zr(t)},$P=function(t){var e,n;return e={},r("next"),r("throw",function(o){throw o}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(o,i){e[o]=t[o]?function(s){return(n=!n)?{value:Zr(t[o](s)),done:!1}:i?i(s):s}:i}},HP=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),o,i=[];return o={},a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(p){return function(S){return Promise.resolve(S).then(p,h)}}function a(p,S){r[p]&&(o[p]=function(T){return new Promise(function(O,g){i.push([p,T,O,g])>1||l(p,T)})},S&&(o[p]=S(o[p])))}function l(p,S){try{c(r[p](S))}catch(T){m(i[0][3],T)}}function c(p){p.value instanceof Zr?Promise.resolve(p.value.v).then(f,h):m(i[0][2],p)}function f(p){l("next",p)}function h(p){l("throw",p)}function m(p,S){p(S),i.shift(),i.length&&l(i[0][0],i[0][1])}};function qn(t,e){return xv(t,n=>{switch(n.kind){case A.Unary:return WP(e,t,n);case A.ServerStreaming:return YP(e,t,n);case A.ClientStreaming:return KP(e,t,n);case A.BiDiStreaming:return QP(e,t,n);default:return null}})}function WP(t,e,n){return async function(r,o){var i,s;let a=await t.unary(e,n,o?.signal,o?.timeoutMs,o?.headers,r,o?.contextValues);return(i=o?.onHeader)===null||i===void 0||i.call(o,a.header),(s=o?.onTrailer)===null||s===void 0||s.call(o,a.trailer),a.message}}function YP(t,e,n){return function(r,o){return Cv(t.stream(e,n,o?.signal,o?.timeoutMs,o?.headers,Jv([r]),o?.contextValues),o)}}function KP(t,e,n){return async function(r,o){var i,s,a,l,c,f;let h=await t.stream(e,n,o?.signal,o?.timeoutMs,o?.headers,r,o?.contextValues);(c=o?.onHeader)===null||c===void 0||c.call(o,h.header);let m;try{for(var p=!0,S=Nv(h.message),T;T=await S.next(),i=T.done,!i;p=!0)l=T.value,p=!1,m=l}catch(O){s={error:O}}finally{try{!p&&!i&&(a=S.return)&&await a.call(S)}finally{if(s)throw s.error}}if(!m)throw new ue("protocol error: missing response message",D.Internal);return(f=o?.onTrailer)===null||f===void 0||f.call(o,h.trailer),m}}function QP(t,e,n){return function(r,o){return Cv(t.stream(e,n,o?.signal,o?.timeoutMs,o?.headers,r,o?.contextValues),o)}}function Cv(t,e){let n=function(){var r,o;return HP(this,arguments,function*(){let i=yield Zr(t);(r=e?.onHeader)===null||r===void 0||r.call(e,i.header),yield Zr(yield*$P(Nv(i.message))),(o=e?.onTrailer)===null||o===void 0||o.call(e,i.trailer)})}()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function Ov(...t){let e=new AbortController,n=t.filter(o=>o!==void 0).concat(e.signal);for(let o of n){if(o.aborted){r.apply(o);break}o.addEventListener("abort",r)}function r(){e.signal.aborted||e.abort(Kd(this));for(let o of n)o.removeEventListener("abort",r)}return e}function Mv(t){let e=new AbortController,n=()=>{e.abort(new ue("the operation timed out",D.DeadlineExceeded))},r;return t!==void 0&&(t<=0?n():r=setTimeout(n,t)),{signal:e.signal,cleanup:()=>clearTimeout(r)}}function Kd(t){if(!t.aborted)return;if(t.reason!==void 0)return t.reason;let e=new Error("This operation was aborted");return e.name="AbortError",e}function Fl(){return{get(t){return t.id in this?this[t.id]:t.defaultValue},set(t,e){return this[t.id]=e,this},delete(t){return delete this[t.id],this}}}function Ul(t,e,n){let r=typeof e=="string"?e:e.typeName,o=typeof n=="string"?n:n.name;return t.toString().replace(/\/?$/,`/${r}/${o}`)}function Qd(t,e){return e instanceof t?e:new t(e)}function Iv(t,e){function n(r){return r.done===!0?r:{done:r.done,value:Qd(t,r.value)}}return{[Symbol.asyncIterator](){let r=e[Symbol.asyncIterator](),o={next:()=>r.next().then(n)};return r.throw!==void 0&&(o.throw=i=>r.throw(i).then(n)),r.return!==void 0&&(o.return=i=>r.return(i).then(n)),o}}}function ql(t){var e;let n=Object.assign({},t);return(e=n.ignoreUnknownFields)!==null&&e!==void 0||(n.ignoreUnknownFields=!0),n}function bl(t,e,n,r){let o=e?Lv(t.I,r):Bv(t.I,n);return{parse:(e?Lv(t.O,r):Bv(t.O,n)).parse,serialize:o.serialize}}function Lv(t,e){return{parse(n){try{return t.fromBinary(n,e)}catch(r){let o=r instanceof Error?r.message:String(r);throw new ue(`parse binary: ${o}`,D.InvalidArgument)}},serialize(n){try{return n.toBinary(e)}catch(r){let o=r instanceof Error?r.message:String(r);throw new ue(`serialize binary: ${o}`,D.Internal)}}}}function Bv(t,e){var n,r;let o=(n=e?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,i=(r=e?.textDecoder)!==null&&r!==void 0?r:new TextDecoder,s=ql(e);return{parse(a){try{let l=i.decode(a);return t.fromJsonString(l,s)}catch(l){throw ue.from(l,D.InvalidArgument)}},serialize(a){try{let l=a.toJsonString(s);return o.encode(l)}catch(l){throw ue.from(l,D.Internal)}}}}var XP=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var Av="application/proto",Fv="application/json",Uv="application/connect+proto",qv="application/connect+json";function bv(t){let e=t?.match(XP);if(!e)return;let n=!!e[1],r=!!e[3];return{stream:n,binary:r}}function ki(t,e,n){if(e&&new Headers(e).forEach((s,a)=>n.metadata.append(a,s)),typeof t!="object"||t==null||Array.isArray(t)||!("code"in t)||typeof t.code!="string")throw n;let r=Ev(t.code);if(r===void 0)throw n;let o=t.message;if(o!=null&&typeof o!="string")throw n;let i=new ue(o??"",r,e);if("details"in t&&Array.isArray(t.details))for(let s of t.details){if(s===null||typeof s!="object"||Array.isArray(s)||typeof s.type!="string"||typeof s.value!="string"||"debug"in s&&typeof s.debug!="object")throw n;try{i.details.push({type:s.type,value:fn.dec(s.value),debug:s.debug})}catch{throw n}}return i}var Dl=2;function Xd(t){let e=new ue("invalid end stream",D.InvalidArgument),n;try{n=JSON.parse(typeof t=="string"?t:new TextDecoder().decode(t))}catch{throw e}if(typeof n!="object"||n==null||Array.isArray(n))throw e;let r=new Headers;if("metadata"in n){if(typeof n.metadata!="object"||n.metadata==null||Array.isArray(n.metadata))throw e;for(let[i,s]of Object.entries(n.metadata)){if(!Array.isArray(s)||s.some(a=>typeof a!="string"))throw e;for(let a of s)r.append(i,a)}}let o="error"in n?ki(n.error,r,e):void 0;return{metadata:r,error:o}}var Ri="Content-Type",Dv="Content-Length",_l="Content-Encoding";var Zd="Accept-Encoding";var _v="Connect-Timeout-Ms",Vl="Connect-Protocol-Version",Vv="User-Agent";function zv(t){switch(t){case 400:return D.InvalidArgument;case 401:return D.Unauthenticated;case 403:return D.PermissionDenied;case 404:return D.Unimplemented;case 408:return D.DeadlineExceeded;case 409:return D.Aborted;case 412:return D.FailedPrecondition;case 413:return D.ResourceExhausted;case 415:return D.Internal;case 429:return D.Unavailable;case 431:return D.ResourceExhausted;case 502:return D.Unavailable;case 503:return D.Unavailable;case 504:return D.Unavailable;default:return D.Unknown}}function zl(t){let e=new Headers,n=new Headers;return t.forEach((r,o)=>{o.toLowerCase().startsWith("trailer-")?n.set(o.substring(8),r):e.set(o,r)}),[e,n]}var Gl="1";function jl(t,e,n,r,o){let i=new Headers(r??{});return n!==void 0&&i.set(_v,`${n}`),i.set(Ri,t==A.Unary?e?Av:Fv:e?Uv:qv),i.set(Vl,Gl),o&&i.set(Vv,"connect-es/1.3.0"),i}function $l(t,e,n){let r=n.get("Content-Type"),o=bv(r);if(e!==200){let i=new ue(`HTTP ${e}`,zv(e),n);if(t==A.Unary&&o&&!o.binary)return{isUnaryError:!0,unaryError:i};throw i}return{isUnaryError:!1}}var Gv="application/";function eT(t,e){return e?fn.enc(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):encodeURIComponent(new TextDecoder().decode(t))}function em(t,e,n){let r=`?connect=v${Gl}`,o=t.header.get(Ri);o?.indexOf(Gv)===0&&(r+="&encoding="+encodeURIComponent(o.slice(Gv.length)));let i=t.header.get(_l);i!==null&&i!=="identity"&&(r+="&compression="+encodeURIComponent(i),n=!0),n&&(r+="&base64=1"),r+="&message="+eT(e,n);let s=t.url+r,a=new Headers(t.header);return[Vl,Ri,Dv,_l,Zd].forEach(l=>a.delete(l)),Object.assign(Object.assign({},t),{init:Object.assign(Object.assign({},t.init),{method:"GET"}),url:s,header:a})}function tm(t){let e=$v(t.next,t.interceptors),[n,r,o]=jv(t),i=Object.assign(Object.assign({},t.req),{message:Qd(t.req.method.I,t.req.message),signal:n});return e(i).then(s=>(o(),s),r)}function nm(t){let e=$v(t.next,t.interceptors),[n,r,o]=jv(t),i=Object.assign(Object.assign({},t.req),{message:Iv(t.req.method.I,t.req.message),signal:n}),s=!1;return n.addEventListener("abort",function(){var a,l;let c=t.req.message[Symbol.asyncIterator]();s||(a=c.throw)===null||a===void 0||a.call(c,this.reason).catch(()=>{}),(l=c.return)===null||l===void 0||l.call(c).catch(()=>{})}),e(i).then(a=>Object.assign(Object.assign({},a),{message:{[Symbol.asyncIterator](){let l=a.message[Symbol.asyncIterator]();return{next(){return l.next().then(c=>(c.done==!0&&(s=!0,o()),c),r)}}}}}),r)}function jv(t){let{signal:e,cleanup:n}=Mv(t.timeoutMs),r=Ov(t.signal,e);return[r.signal,function(i){let s=ue.from(e.aborted?Kd(e):i);return r.abort(s),n(),Promise.reject(s)},function(){n(),r.abort()}]}function $v(t,e){var n;return(n=e?.concat().reverse().reduce((r,o)=>o(r),t))!==null&&n!==void 0?n:t}function Hv(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var Ei=function(t){return this instanceof Ei?(this.v=t,this):new Ei(t)},tT=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),o,i=[];return o={},a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(p){return function(S){return Promise.resolve(S).then(p,h)}}function a(p,S){r[p]&&(o[p]=function(T){return new Promise(function(O,g){i.push([p,T,O,g])>1||l(p,T)})},S&&(o[p]=S(o[p])))}function l(p,S){try{c(r[p](S))}catch(T){m(i[0][3],T)}}function c(p){p.value instanceof Ei?Promise.resolve(p.value.v).then(f,h):m(i[0][2],p)}function f(p){l("next",p)}function h(p){l("throw",p)}function m(p,S){p(S),i.shift(),i.length&&l(i[0][0],i[0][1])}};function rm(t){var e;Hv();let n=(e=t.useBinaryFormat)!==null&&e!==void 0?e:!1;return{async unary(r,o,i,s,a,l,c){var f;let{serialize:h,parse:m}=bl(o,n,t.jsonOptions,t.binaryOptions);return s=s===void 0?t.defaultTimeoutMs:s<=0?void 0:s,await tm({interceptors:t.interceptors,signal:i,timeoutMs:s,req:{stream:!1,service:r,method:o,url:Ul(t.baseUrl,r,o),init:{method:"POST",credentials:(f=t.credentials)!==null&&f!==void 0?f:"same-origin",redirect:"error",mode:"cors"},header:jl(o.kind,n,s,a,!1),contextValues:c??Fl(),message:l},next:async p=>{var S;let T=t.useHttpGet===!0&&o.idempotency===ii.NoSideEffects,O=null;T?p=em(p,h(p.message),n):O=h(p.message);let d=await((S=t.fetch)!==null&&S!==void 0?S:globalThis.fetch)(p.url,Object.assign(Object.assign({},p.init),{headers:p.header,signal:p.signal,body:O})),{isUnaryError:v,unaryError:x}=$l(o.kind,d.status,d.headers);if(v)throw ki(await d.json(),Hd(...zl(d.headers)),x);let[C,I]=zl(d.headers);return{stream:!1,service:r,method:o,header:C,message:n?m(new Uint8Array(await d.arrayBuffer())):o.O.fromJson(await d.json(),ql(t.jsonOptions)),trailer:I}}})},async stream(r,o,i,s,a,l,c){var f;let{serialize:h,parse:m}=bl(o,n,t.jsonOptions,t.binaryOptions);function p(T,O,g){return tT(this,arguments,function*(){let v=Wd(T).getReader(),x=!1;for(;;){let C=yield Ei(v.read());if(C.done)break;let{flags:I,data:B}=C.value;if((I&Dl)===Dl){x=!0;let P=Xd(B);if(P.error){let R=P.error;throw g.forEach((E,N)=>{R.metadata.append(N,E)}),R}P.metadata.forEach((R,E)=>O.set(E,R));continue}yield yield Ei(m(B))}if(!x)throw"missing EndStreamResponse"})}async function S(T){if(o.kind!=A.ServerStreaming)throw"The fetch API does not support streaming request bodies";let O=await T[Symbol.asyncIterator]().next();if(O.done==!0)throw"missing request message";return Yd(0,h(O.value))}return s=s===void 0?t.defaultTimeoutMs:s<=0?void 0:s,await nm({interceptors:t.interceptors,timeoutMs:s,signal:i,req:{stream:!0,service:r,method:o,url:Ul(t.baseUrl,r,o),init:{method:"POST",credentials:(f=t.credentials)!==null&&f!==void 0?f:"same-origin",redirect:"error",mode:"cors"},header:jl(o.kind,n,s,a,!1),contextValues:c??Fl(),message:l},next:async T=>{var O;let d=await((O=t.fetch)!==null&&O!==void 0?O:globalThis.fetch)(T.url,Object.assign(Object.assign({},T.init),{headers:T.header,signal:T.signal,body:await S(T.message)}));if($l(o.kind,d.status,d.headers),d.body===null)throw"missing response body";let v=new Headers;return Object.assign(Object.assign({},T),{header:d.headers,trailer:v,message:p(d.body,v,d.headers)})}})}}}var nT="https://demo.lunabrain.com",xi=rm({baseUrl:`${nT}/api`||"error"}),qx=qn(Sv,xi),Wv=qn(Pv,xi),bx=qn(Tv,xi),Dx=qn(kv,xi),_x=qn(Rv,xi);function rT(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=Math.random()*16|0,n=t==="x"?e:e&3|8;return n.toString(16)})}function Ji(t,e){return new Ye({id:rT(),tags:e,type:{case:"data",value:new vi({type:{case:"url",value:{url:t}}})}})}var $=st(bn(),1),Xv=()=>{let[t,e]=(0,it.useState)(void 0),[n,r]=(0,it.useState)(document.title||window.location.href),[o,i]=(0,it.useState)(void 0),[s,a]=(0,it.useState)(["browser/save"]),[l,c]=(0,it.useState)(window.location.href),[f,h]=(0,it.useState)(""),[m,p]=(0,it.useState)([]),[S,T]=(0,it.useState)("tags"),[O,g]=(0,it.useState)(void 0);(0,it.useEffect)(()=>{let R=E=>{};return document.addEventListener("keydown",R),document.addEventListener("mouseup",d),()=>{document.removeEventListener("keydown",R),document.removeEventListener("mouseup",d)}},[]);let d=()=>{let R=window.getSelection()?.toString();R&&h(R)},v=R=>{a([...s,R]),i("")},x=()=>{f&&(p([...m,f]),h(""))},C=async()=>{g(void 0);try{let R=await Wv.analyze(Ji(l,s));console.log(R)}catch(R){console.error(R)}},I=async()=>{e(void 0);let R=Ji(l,s);chrome.runtime.sendMessage({action:aa,data:R.toJson()},E=>{console.log("content","save response",E)})},B=R=>{p(m.filter((E,N)=>N!==R))},P=R=>{p(s.filter((E,N)=>N!==R))};return(0,$.jsxs)("div",{id:"floating-panel",children:[(0,$.jsx)("input",{type:"text",value:n,onChange:R=>r(R.target.value)}),(0,$.jsxs)("div",{className:"tablist",children:[(0,$.jsx)("button",{onClick:()=>T("tags"),children:"Tags"}),(0,$.jsx)("button",{onClick:()=>T("annotations"),children:"Annotations"})]}),(0,$.jsxs)("div",{children:[S==="analyze"&&(0,$.jsxs)("div",{children:[(0,$.jsx)("button",{className:"button-primary",onClick:C,children:"Analyze"}),O&&(0,$.jsx)("ul",{children:O.map((R,E)=>R.tags.map((N,F)=>(0,$.jsx)("button",{onClick:()=>v(N),children:N},F)))})]}),S==="tags"&&(0,$.jsxs)("div",{children:[(0,$.jsx)("input",{type:"text",value:o,placeholder:"tag",onChange:R=>i(R.target.value)}),(0,$.jsx)("button",{className:"button-primary",onClick:()=>o&&v(o),children:"Add"}),s.length>0&&(0,$.jsx)("table",{className:"table",children:(0,$.jsx)("tbody",{children:s.map((R,E)=>(0,$.jsx)("tr",{className:"table-row",children:(0,$.jsxs)("td",{className:"table-cell",children:[R,(0,$.jsx)("button",{className:"button-primary",onClick:()=>P(E),children:"Remove"})]})},E))})})]}),S==="annotations"&&(0,$.jsxs)("div",{children:[(0,$.jsx)("textarea",{rows:4,value:f,onChange:R=>h(R.target.value)}),(0,$.jsx)("button",{className:"button-primary",onClick:x,children:"Add"}),m.length>0&&(0,$.jsx)("table",{className:"table",children:(0,$.jsx)("tbody",{children:m.map((R,E)=>(0,$.jsx)("tr",{className:"table-row",children:(0,$.jsxs)("td",{className:"table-cell",children:[R,(0,$.jsx)("button",{className:"button-primary",onClick:()=>B(E),children:"Remove"})]})},E))})})]})]}),(0,$.jsx)("div",{style:{display:"flex",gap:"10px"},children:(0,$.jsx)("button",{className:"button-primary",onClick:I,children:"Save"})}),t&&(0,$.jsx)("div",{style:{color:"red"},children:t})]})};var _={},cT=0;function rw(t,e){let n=`atom${++cT}`,r={toString:()=>n};return typeof t=="function"?r.read=t:(r.init=t,r.read=function(o){return o(this)},r.write=function(o,i,s){return i(this,typeof s=="function"?s(o(this)):s)}),e&&(r.write=e),r}var om=t=>"init"in t,im=t=>!!t.write,Yl=new WeakMap,fT=(t,e)=>{Yl.set(t,e),t.catch(()=>{}).finally(()=>Yl.delete(t))},Zv=(t,e)=>{let n=Yl.get(t);n&&(Yl.delete(t),n(e))},ew=(t,e)=>{t.status="fulfilled",t.value=e},tw=(t,e)=>{t.status="rejected",t.reason=e},dT=t=>typeof t?.then=="function",Ni=(t,e)=>!!t&&"v"in t&&"v"in e&&Object.is(t.v,e.v),nw=(t,e)=>!!t&&"e"in t&&"e"in e&&Object.is(t.e,e.e),eo=t=>!!t&&"v"in t&&t.v instanceof Promise,mT=(t,e)=>"v"in t&&"v"in e&&t.v.orig&&t.v.orig===e.v.orig,Wl=t=>{if("e"in t)throw t.e;return t.v},ow=()=>{let t=new WeakMap,e=new WeakMap,n=new Map,r,o;(_.env?_.env.MODE:void 0)!=="production"&&(r=new Set,o=new Set);let i=P=>t.get(P),s=(P,R)=>{(_.env?_.env.MODE:void 0)!=="production"&&Object.freeze(R);let E=t.get(P);if(t.set(P,R),n.has(P)||n.set(P,E),eo(E)){let N="v"in R?R.v instanceof Promise?R.v:Promise.resolve(R.v):Promise.reject(R.e);E.v!==N&&Zv(E.v,N)}},a=(P,R,E)=>{let N=new Map,F=!1;E.forEach((b,U)=>{!b&&U===P&&(b=R),b?(N.set(U,b),R.d.get(U)!==b&&(F=!0)):(_.env?_.env.MODE:void 0)!=="production"&&console.warn("[Bug] atom state not found")}),(F||R.d.size!==N.size)&&(R.d=N)},l=(P,R,E)=>{let N=i(P),F={d:N?.d||new Map,v:R};if(E&&a(P,F,E),Ni(N,F)&&N.d===F.d)return N;if(eo(N)&&eo(F)&&mT(N,F)){if(N.d===F.d)return N;F.v=N.v}return s(P,F),F},c=(P,R,E,N)=>{if(dT(R)){let F,b=()=>{let q=i(P);if(!eo(q)||q.v!==U)return;let ce=l(P,U,E);e.has(P)&&q.d!==ce.d&&C(P,ce,q.d)},U=new Promise((q,ce)=>{let G=!1;R.then(Q=>{G||(G=!0,ew(U,Q),q(Q),b())},Q=>{G||(G=!0,tw(U,Q),ce(Q),b())}),F=Q=>{G||(G=!0,Q.then(ve=>ew(U,ve),ve=>tw(U,ve)),q(Q))}});return U.orig=R,U.status="pending",fT(U,q=>{q&&F(q),N?.()}),l(P,U,E)}return l(P,R,E)},f=(P,R,E)=>{let N=i(P),F={d:N?.d||new Map,e:R};return E&&a(P,F,E),nw(N,F)&&N.d===F.d?N:(s(P,F),F)},h=(P,R)=>{let E=i(P);if(!R&&E&&(e.has(P)||Array.from(E.d).every(([G,Q])=>{if(G===P)return!0;let ve=h(G);return ve===Q||Ni(ve,Q)})))return E;let N=new Map,F=!0,b=G=>{if(G===P){let ve=i(G);if(ve)return N.set(G,ve),Wl(ve);if(om(G))return N.set(G,void 0),G.init;throw new Error("no atom init")}let Q=h(G);return N.set(G,Q),Wl(Q)},U,q,ce={get signal(){return U||(U=new AbortController),U.signal},get setSelf(){return(_.env?_.env.MODE:void 0)!=="production"&&!im(P)&&console.warn("setSelf function cannot be used with read-only atom"),!q&&im(P)&&(q=(...G)=>{if((_.env?_.env.MODE:void 0)!=="production"&&F&&console.warn("setSelf function cannot be called in sync"),!F)return d(P,...G)}),q}};try{let G=P.read(b,ce);return c(P,G,N,()=>U?.abort())}catch(G){return f(P,G,N)}finally{F=!1}},m=P=>Wl(h(P)),p=P=>{let R=e.get(P);return R||(R=v(P)),R},S=(P,R)=>!R.l.size&&(!R.t.size||R.t.size===1&&R.t.has(P)),T=P=>{let R=e.get(P);R&&S(P,R)&&x(P)},O=P=>{let R=new Map,E=new WeakMap,N=U=>{var q;let ce=new Set((q=e.get(U))==null?void 0:q.t);return n.forEach((G,Q)=>{var ve;(ve=i(Q))!=null&&ve.d.has(U)&&ce.add(Q)}),ce},F=U=>{N(U).forEach(q=>{q!==U&&(R.set(q,(R.get(q)||new Set).add(U)),E.set(q,(E.get(q)||0)+1),F(q))})};F(P);let b=U=>{N(U).forEach(q=>{var ce;if(q!==U){let G=E.get(q);if(G&&E.set(q,--G),!G){let Q=!!((ce=R.get(q))!=null&&ce.size);if(Q){let ve=i(q),dw=h(q,!0);Q=!Ni(ve,dw)}Q||R.forEach(ve=>ve.delete(q))}b(q)}})};b(P)},g=(P,...R)=>{let E=!0,N=U=>Wl(h(U)),F=(U,...q)=>{let ce;if(U===P){if(!om(U))throw new Error("atom not writable");let G=i(U),Q=c(U,q[0]);Ni(G,Q)||O(U)}else ce=g(U,...q);if(!E){let G=I();(_.env?_.env.MODE:void 0)!=="production"&&r.forEach(Q=>Q({type:"async-write",flushed:G}))}return ce},b=P.write(N,F,...R);return E=!1,b},d=(P,...R)=>{let E=g(P,...R),N=I();return(_.env?_.env.MODE:void 0)!=="production"&&r.forEach(F=>F({type:"write",flushed:N})),E},v=(P,R,E)=>{var N;let F=E||[];(N=i(P))==null||N.d.forEach((U,q)=>{let ce=e.get(q);ce?ce.t.add(P):q!==P&&v(q,P,F)}),h(P);let b={t:new Set(R&&[R]),l:new Set};if(e.set(P,b),(_.env?_.env.MODE:void 0)!=="production"&&o.add(P),im(P)&&P.onMount){let{onMount:U}=P;F.push(()=>{let q=U((...ce)=>d(P,...ce));q&&(b.u=q)})}return E||F.forEach(U=>U()),b},x=P=>{var R;let E=(R=e.get(P))==null?void 0:R.u;E&&E(),e.delete(P),(_.env?_.env.MODE:void 0)!=="production"&&o.delete(P);let N=i(P);N?(eo(N)&&Zv(N.v),N.d.forEach((F,b)=>{if(b!==P){let U=e.get(b);U&&(U.t.delete(P),S(b,U)&&x(b))}})):(_.env?_.env.MODE:void 0)!=="production"&&console.warn("[Bug] could not find atom state to unmount",P)},C=(P,R,E)=>{let N=new Set(R.d.keys());E?.forEach((F,b)=>{if(N.has(b)){N.delete(b);return}let U=e.get(b);U&&(U.t.delete(P),S(b,U)&&x(b))}),N.forEach(F=>{let b=e.get(F);b?b.t.add(P):e.has(P)&&v(F,P)})},I=()=>{let P;for((_.env?_.env.MODE:void 0)!=="production"&&(P=new Set);n.size;){let R=Array.from(n);n.clear(),R.forEach(([E,N])=>{let F=i(E);if(F){let b=e.get(E);b&&F.d!==N?.d&&C(E,F,N?.d),b&&!(!eo(N)&&(Ni(N,F)||nw(N,F)))&&(b.l.forEach(U=>U()),(_.env?_.env.MODE:void 0)!=="production"&&P.add(E))}else(_.env?_.env.MODE:void 0)!=="production"&&console.warn("[Bug] no atom state to flush")})}if((_.env?_.env.MODE:void 0)!=="production")return P},B=(P,R)=>{let E=p(P),N=I(),F=E.l;return F.add(R),(_.env?_.env.MODE:void 0)!=="production"&&r.forEach(b=>b({type:"sub",flushed:N})),()=>{F.delete(R),T(P),(_.env?_.env.MODE:void 0)!=="production"&&r.forEach(b=>b({type:"unsub"}))}};return(_.env?_.env.MODE:void 0)!=="production"?{get:m,set:d,sub:B,dev_subscribe_store:(P,R)=>{if(R!==2)throw new Error("The current StoreListener revision is 2.");return r.add(P),()=>{r.delete(P)}},dev_get_mounted_atoms:()=>o.values(),dev_get_atom_state:P=>t.get(P),dev_get_mounted:P=>e.get(P),dev_restore_atoms:P=>{for(let[E,N]of P)om(E)&&(c(E,N),O(E));let R=I();r.forEach(E=>E({type:"restore",flushed:R}))}}:{get:m,set:d,sub:B}},sm;(_.env?_.env.MODE:void 0)!=="production"&&(typeof globalThis.__NUMBER_OF_JOTAI_INSTANCES__=="number"?++globalThis.__NUMBER_OF_JOTAI_INSTANCES__:globalThis.__NUMBER_OF_JOTAI_INSTANCES__=1);var iw=()=>(sm||((_.env?_.env.MODE:void 0)!=="production"&&globalThis.__NUMBER_OF_JOTAI_INSTANCES__!==1&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"),sm=ow()),sm);var Ce=st(gn(),1);var sw={},pT=(0,Ce.createContext)(void 0),aw=t=>{let e=(0,Ce.useContext)(pT);return t?.store||e||iw()};var gT=t=>typeof t?.then=="function",yT=Ce.default.use||(t=>{if(t.status==="pending")throw t;if(t.status==="fulfilled")return t.value;throw t.status==="rejected"?t.reason:(t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}),t)});function hT(t,e){let n=aw(e),[[r,o,i],s]=(0,Ce.useReducer)(c=>{let f=n.get(t);return Object.is(c[0],f)&&c[1]===n&&c[2]===t?c:[f,n,t]},void 0,()=>[n.get(t),n,t]),a=r;(o!==n||i!==t)&&(s(),a=n.get(t));let l=e?.delay;return(0,Ce.useEffect)(()=>{let c=n.sub(t,()=>{if(typeof l=="number"){setTimeout(s,l);return}s()});return s(),c},[n,t,l]),(0,Ce.useDebugValue)(a),gT(a)?yT(a):a}function vT(t,e){let n=aw(e);return(0,Ce.useCallback)((...o)=>{if((sw.env?sw.env.MODE:void 0)!=="production"&&!("write"in t))throw new Error("not writable atom");return n.set(t,...o)},[n,t])}function lw(t,e){return[hT(t,e),vT(t,e)]}var _e=st(bn(),1),wT=rw([]),ST={padding:"10px",backgroundColor:"white",border:"1px solid #ccc",color:"black",maxHeight:"300px",overflowY:"auto",zIndex:9999,right:"10px",bottom:"10px",position:"fixed"},PT=t=>{switch(t.type.case){case"data":let e=t.type.value;switch(e.type.case){case"url":return e.type.value.url}break}return"unknown"},uw=()=>{let[t,e]=(0,to.useState)(!1),[n,r]=(0,to.useState)(void 0),[o,i]=lw(wT);(0,to.useEffect)(()=>{let l=c=>{c.ctrlKey&&c.key==="l"&&(c.preventDefault(),e(!t))};return document.addEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)}},[t]),(0,to.useEffect)(()=>{chrome.runtime.sendMessage({action:_h,data:"TODO make url?"},l=>{l.data&&(r(l.data),e(!0))})},[]);let s=()=>{if(!n)return;let l=new URL(n.from),c=Ji(n.to,["browser/history",l.host]);chrome.runtime.sendMessage({action:aa,data:c},f=>{e(!1)}),r(void 0)},a=()=>{e(!1),r(void 0)};return o.length===0&&!t?null:(0,_e.jsxs)("div",{id:"floating-panel",style:ST,children:[(0,_e.jsx)("ul",{children:o.map(l=>(0,_e.jsxs)("li",{children:[(0,_e.jsx)("button",{className:"btn",style:{userSelect:"none"},onClick:()=>{i(c=>c.filter(f=>f.id!==l.id))},children:"X"}),PT(l)]}))}),n?(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsx)("h5",{children:"Save this page?"}),(0,_e.jsxs)("div",{className:"flex flex-row",children:[(0,_e.jsx)("button",{className:"btn",onClick:s,children:"Yes"}),(0,_e.jsx)("button",{className:"btn",onClick:a,children:"No"})]})]}):(0,_e.jsx)(Xv,{})]})};var am=st(bn(),1),Dn=document.createElement("div");Dn.setAttribute("id","lunabrain-root");document.body.appendChild(Dn);Dn.style.width="0";Dn.style.height="0";Dn.style.padding="0";Dn.style.margin="0";document.addEventListener("NEXT_JS_PARAMS",function(t){let e=JSON.parse(t.detail);console.log("NEXT_JS_PARAMS",e);let n=e[20][1],i=JSON.parse(n.substring(3))[3].chat.messages.map(s=>`[${s.role}] ${s.content}`);console.log(i)});var TT=fw.default.createRoot(Dn);TT.render((0,am.jsx)(cw.default.StrictMode,{children:(0,am.jsx)(uw,{})}));})(); +`:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(o){case 0:s=i,o=1;break;case 1:n[r++]=s<<2|(i&48)>>4,s=i,o=2;break;case 2:n[r++]=(s&15)<<4|(i&60)>>2,s=i,o=3;break;case 3:n[r++]=(s&3)<<6|i,o=0;break}}if(o==1)throw Error("invalid base64 string.");return n.subarray(0,r)},enc(t){let e="",n=0,r,o=0;for(let i=0;i>2],o=(r&3)<<4,n=1;break;case 1:e+=qt[o|r>>4],o=(r&15)<<2,n=2;break;case 2:e+=qt[o|r>>6],e+=qt[r&63],n=0;break}return n&&(e+=qt[o],e+="=",n==1&&(e+="=")),e}};var tv={ignoreUnknownFields:!1},nv={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function LP(t){return t?Object.assign(Object.assign({},tv),t):tv}function BP(t){return t?Object.assign(Object.assign({},nv),t):nv}function Sa(t){let e=t(AP,rv);return{makeReadOptions:LP,makeWriteOptions:BP,readMessage(n,r,o,i){if(r==null||Array.isArray(r)||typeof r!="object")throw new Error(`cannot decode message ${n.typeName} from JSON: ${this.debug(r)}`);i=i??new n;let s={};for(let[a,l]of Object.entries(r)){let c=n.fields.findJsonName(a);if(!c){if(!o.ignoreUnknownFields)throw new Error(`cannot decode message ${n.typeName} from JSON: key "${a}" is unknown`);continue}let f=c.localName,h=i;if(c.oneof){if(l===null&&c.kind=="scalar")continue;let m=s[c.oneof.localName];if(m)throw new Error(`cannot decode message ${n.typeName} from JSON: multiple keys for oneof "${c.oneof.name}" present: "${m}", "${a}"`);s[c.oneof.localName]=a,h=h[c.oneof.localName]={case:f},f="value"}if(c.repeated){if(l===null)continue;if(!Array.isArray(l))throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(l)}`);let m=h[f];for(let p of l){if(p===null)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(p)}`);let S;switch(c.kind){case"message":S=c.T.fromJson(p,o);break;case"enum":if(S=Yf(c.T,p,o.ignoreUnknownFields),S===void 0)continue;break;case"scalar":try{S=ni(c.T,p,c.L)}catch(T){let O=`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(p)}`;throw T instanceof Error&&T.message.length>0&&(O+=`: ${T.message}`),new Error(O)}break}m.push(S)}}else if(c.kind=="map"){if(l===null)continue;if(Array.isArray(l)||typeof l!="object")throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(l)}`);let m=h[f];for(let[p,S]of Object.entries(l)){if(S===null)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: map value null`);let T;switch(c.V.kind){case"message":T=c.V.T.fromJson(S,o);break;case"enum":if(T=Yf(c.V.T,S,o.ignoreUnknownFields),T===void 0)continue;break;case"scalar":try{T=ni(c.V.T,S,ot.BIGINT)}catch(O){let g=`cannot decode map value for field ${n.typeName}.${c.name} from JSON: ${this.debug(l)}`;throw O instanceof Error&&O.message.length>0&&(g+=`: ${O.message}`),new Error(g)}break}try{m[ni(c.K,c.K==k.BOOL?p=="true"?!0:p=="false"?!1:p:p,ot.BIGINT).toString()]=T}catch(O){let g=`cannot decode map key for field ${n.typeName}.${c.name} from JSON: ${this.debug(l)}`;throw O instanceof Error&&O.message.length>0&&(g+=`: ${O.message}`),new Error(g)}}}else switch(c.kind){case"message":let m=c.T;if(l===null&&m.typeName!="google.protobuf.Value"){if(c.oneof)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: null is invalid for oneof field "${a}"`);continue}h[f]instanceof y?h[f].fromJson(l,o):(h[f]=m.fromJson(l,o),m.fieldWrapper&&!c.oneof&&(h[f]=m.fieldWrapper.unwrapField(h[f])));break;case"enum":let p=Yf(c.T,l,o.ignoreUnknownFields);p!==void 0&&(h[f]=p);break;case"scalar":try{h[f]=ni(c.T,l,c.L)}catch(S){let T=`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(l)}`;throw S instanceof Error&&S.message.length>0&&(T+=`: ${S.message}`),new Error(T)}break}}return i},writeMessage(n,r){let o=n.getType(),i={},s;try{for(let a of o.fields.byMember()){let l;if(a.kind=="oneof"){let c=n[a.localName];if(c.value===void 0)continue;if(s=a.findField(c.case),!s)throw"oneof case not found: "+c.case;l=e(s,c.value,r)}else s=a,l=e(s,n[s.localName],r);l!==void 0&&(i[r.useProtoFieldName?s.name:s.jsonName]=l)}}catch(a){let l=s?`cannot encode field ${o.typeName}.${s.name} to JSON`:`cannot encode message ${o.typeName} to JSON`,c=a instanceof Error?a.message:String(a);throw new Error(l+(c.length>0?`: ${c}`:""))}return i},readScalar:ni,writeScalar:rv,debug:ov}}function ov(t){if(t===null)return"null";switch(typeof t){case"object":return Array.isArray(t)?"array":"object";case"string":return t.length>100?"string":`"${t.split('"').join('\\"')}"`;default:return String(t)}}function ni(t,e,n){switch(t){case k.DOUBLE:case k.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""||typeof e=="string"&&e.trim().length!==e.length||typeof e!="string"&&typeof e!="number")break;let r=Number(e);if(Number.isNaN(r)||!Number.isFinite(r))break;return t==k.FLOAT&&la(r),r;case k.INT32:case k.FIXED32:case k.SFIXED32:case k.SINT32:case k.UINT32:if(e===null)return 0;let o;if(typeof e=="number"?o=e:typeof e=="string"&&e.length>0&&e.trim().length===e.length&&(o=Number(e)),o===void 0)break;return t==k.UINT32?ei(o):Tr(o),o;case k.INT64:case k.SFIXED64:case k.SINT64:if(e===null)return V.zero;if(typeof e!="number"&&typeof e!="string")break;let i=V.parse(e);return n?i.toString():i;case k.FIXED64:case k.UINT64:if(e===null)return V.zero;if(typeof e!="number"&&typeof e!="string")break;let s=V.uParse(e);return n?s.toString():s;case k.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case k.STRING:if(e===null)return"";if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case k.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return fn.dec(e)}throw new Error}function Yf(t,e,n){if(e===null)return 0;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":let r=t.findName(e);if(r||n)return r?.no;break}throw new Error(`cannot decode enum ${t.typeName} from JSON: ${ov(e)}`)}function AP(t,e,n,r){var o;if(e===void 0)return e;if(e===0&&!n)return;if(r)return e;if(t.typeName=="google.protobuf.NullValue")return null;let i=t.findNumber(e);return(o=i?.name)!==null&&o!==void 0?o:e}function rv(t,e,n){if(e!==void 0)switch(t){case k.INT32:case k.SFIXED32:case k.SINT32:case k.FIXED32:case k.UINT32:return re(typeof e=="number"),e!=0||n?e:void 0;case k.FLOAT:case k.DOUBLE:return re(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e!==0||n?e:void 0;case k.STRING:return re(typeof e=="string"),e.length>0||n?e:void 0;case k.BOOL:return re(typeof e=="boolean"),e||n?e:void 0;case k.UINT64:case k.FIXED64:case k.INT64:case k.SFIXED64:case k.SINT64:return re(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),n||e!=0?e.toString(10):void 0;case k.BYTES:return re(e instanceof Uint8Array),n||e.byteLength>0?fn.enc(e):void 0}}function iv(){return Sa((t,e)=>function(r,o,i){if(r.kind=="map"){let s={};switch(r.V.kind){case"scalar":for(let[l,c]of Object.entries(o)){let f=e(r.V.T,c,!0);re(f!==void 0),s[l.toString()]=f}break;case"message":for(let[l,c]of Object.entries(o))s[l.toString()]=c.toJson(i);break;case"enum":let a=r.V.T;for(let[l,c]of Object.entries(o)){re(c===void 0||typeof c=="number");let f=t(a,c,!0,i.enumAsInteger);re(f!==void 0),s[l.toString()]=f}break}return i.emitDefaultValues||Object.keys(s).length>0?s:void 0}else if(r.repeated){let s=[];switch(r.kind){case"scalar":for(let a=0;a0?s:void 0}else switch(r.kind){case"scalar":return e(r.T,o,!!r.oneof||r.opt||i.emitDefaultValues);case"enum":return t(r.T,o,!!r.oneof||r.opt||i.emitDefaultValues,i.enumAsInteger);case"message":return o!==void 0?Un(r.T,o).toJson(i):void 0}})}function Ta(){return{setEnumType:Vf,initPartial(t,e){if(t===void 0)return;let n=e.getType();for(let r of n.fields.byMember()){let o=r.localName,i=e,s=t;if(s[o]!==void 0)switch(r.kind){case"oneof":let a=s[o].case;if(a===void 0)continue;let l=r.findField(a),c=s[o].value;l&&l.kind=="message"&&!(c instanceof l.T)?c=new l.T(c):l&&l.kind==="scalar"&&l.T===k.BYTES&&(c=ri(c)),i[o]={case:a,value:c};break;case"scalar":case"enum":let f=s[o];r.T===k.BYTES&&(f=r.repeated?f.map(ri):ri(f)),i[o]=f;break;case"map":switch(r.V.kind){case"scalar":case"enum":if(r.V.T===k.BYTES)for(let[p,S]of Object.entries(s[o]))i[o][p]=ri(S);else Object.assign(i[o],s[o]);break;case"message":let m=r.V.T;for(let p of Object.keys(s[o])){let S=s[o][p];m.fieldWrapper||(S=new m(S)),i[o][p]=S}break}break;case"message":let h=r.T;if(r.repeated)i[o]=s[o].map(m=>m instanceof h?m:new h(m));else if(s[o]!==void 0){let m=s[o];h.fieldWrapper?h.typeName==="google.protobuf.BytesValue"?i[o]=ri(m):i[o]=m:i[o]=m instanceof h?m:new h(m)}break}}},equals(t,e,n){return e===n?!0:!e||!n?!1:t.fields.byMember().every(r=>{let o=e[r.localName],i=n[r.localName];if(r.repeated){if(o.length!==i.length)return!1;switch(r.kind){case"message":return o.every((s,a)=>r.T.equals(s,i[a]));case"scalar":return o.every((s,a)=>Ft(r.T,s,i[a]));case"enum":return o.every((s,a)=>Ft(k.INT32,s,i[a]))}throw new Error(`repeated cannot contain ${r.kind}`)}switch(r.kind){case"message":return r.T.equals(o,i);case"enum":return Ft(k.INT32,o,i);case"scalar":return Ft(r.T,o,i);case"oneof":if(o.case!==i.case)return!1;let s=r.findField(o.case);if(s===void 0)return!0;switch(s.kind){case"message":return s.T.equals(o.value,i.value);case"enum":return Ft(k.INT32,o.value,i.value);case"scalar":return Ft(s.T,o.value,i.value)}throw new Error(`oneof cannot contain ${s.kind}`);case"map":let a=Object.keys(o).concat(Object.keys(i));switch(r.V.kind){case"message":let l=r.V.T;return a.every(f=>l.equals(o[f],i[f]));case"enum":return a.every(f=>Ft(k.INT32,o[f],i[f]));case"scalar":let c=r.V.T;return a.every(f=>Ft(c,o[f],i[f]))}break}})},clone(t){let e=t.getType(),n=new e,r=n;for(let o of e.fields.byMember()){let i=t[o.localName],s;if(o.repeated)s=i.map(Pa);else if(o.kind=="map"){s=r[o.localName];for(let[a,l]of Object.entries(i))s[a]=Pa(l)}else o.kind=="oneof"?s=o.findField(i.case)?{case:i.case,value:Pa(i.value)}:{case:void 0}:s=Pa(i);r[o.localName]=s}return n}}}function Pa(t){if(t===void 0)return t;if(t instanceof y)return t.clone();if(t instanceof Uint8Array){let e=new Uint8Array(t.byteLength);return e.set(t),e}return t}function ri(t){return t instanceof Uint8Array?t:new Uint8Array(t)}var Er=class{constructor(e,n){this._fields=e,this._normalizer=n}findJsonName(e){if(!this.jsonNames){let n={};for(let r of this.list())n[r.jsonName]=n[r.name]=r;this.jsonNames=n}return this.jsonNames[e]}find(e){if(!this.numbers){let n={};for(let r of this.list())n[r.no]=r;this.numbers=n}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,n)=>e.no-n.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];let e=this.members,n;for(let r of this.list())r.oneof?r.oneof!==n&&(n=r.oneof,e.push(n)):e.push(r)}return this.members}};function oi(t,e){let n=av(t);return e?n:bP(qP(n))}function sv(t){return oi(t,!1)}var ka=av;function av(t){let e=!1,n=[];for(let r=0;r`${t}$`,qP=t=>UP.has(t)?lv(t):t,bP=t=>FP.has(t)?lv(t):t;var xr=class{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=sv(e)}addField(e){re(e.oneof===this,`field ${e.name} not one of ${this.name}`),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let n=0;n0?`: ${a}`:""))}return n.writeUnknownFields&&this.writeUnknownFields(t,e),e}})}function cv(){return Sa((t,e)=>function(r,o,i){if(r.kind=="map"){let s={};switch(r.V.kind){case"scalar":for(let[l,c]of Object.entries(o)){let f=e(r.V.T,c,!0);re(f!==void 0),s[l.toString()]=f}break;case"message":for(let[l,c]of Object.entries(o))s[l.toString()]=c.toJson(i);break;case"enum":let a=r.V.T;for(let[l,c]of Object.entries(o)){re(c===void 0||typeof c=="number");let f=t(a,c,!0,i.enumAsInteger);re(f!==void 0),s[l.toString()]=f}break}return i.emitDefaultValues||Object.keys(s).length>0?s:void 0}else if(r.repeated){let s=[];switch(r.kind){case"scalar":for(let a=0;a0?s:void 0}else{if(o===void 0){if(!r.oneof&&!r.opt)throw"required field not set";return}switch(r.kind){case"scalar":return e(r.T,o,!0);case"enum":return t(r.T,o,!0,i.enumAsInteger);case"message":return Un(r.T,o).toJson(i)}}})}var w=ua("proto2",cv(),uv(),Object.assign(Object.assign({},Ta()),{newFieldList(t){return new Er(t,_P)},initFields(t){for(let e of t.getType().fields.byMember()){let n=e.localName,r=t;if(e.repeated){r[n]=[];continue}switch(e.kind){case"oneof":r[n]={case:void 0};break;case"map":r[n]={};break;case"scalar":case"enum":case"message":break}}}}));function _P(t){var e,n,r,o,i;let s=[],a;for(let l of typeof t=="function"?t():t){let c=l;if(c.localName=oi(l.name,l.oneof!==void 0),c.jsonName=(e=l.jsonName)!==null&&e!==void 0?e:ka(l.name),c.repeated=(n=l.repeated)!==null&&n!==void 0?n:!1,l.kind=="scalar"&&(c.L=(r=l.L)!==null&&r!==void 0?r:ot.BIGINT),l.oneof!==void 0){let f=typeof l.oneof=="string"?l.oneof:l.oneof.name;(!a||a.name!=f)&&(a=new xr(f)),c.oneof=a,a.addField(c)}l.kind=="message"&&(c.delimited=(o=l.delimited)!==null&&o!==void 0?o:!1),c.packed=(i=l.packed)!==null&&i!==void 0?i:!1,s.push(c)}return s}var A;(function(t){t[t.Unary=0]="Unary",t[t.ServerStreaming=1]="ServerStreaming",t[t.ClientStreaming=2]="ClientStreaming",t[t.BiDiStreaming=3]="BiDiStreaming"})(A||(A={}));var ii;(function(t){t[t.NoSideEffects=1]="NoSideEffects",t[t.Idempotent=2]="Idempotent"})(ii||(ii={}));var dn;(function(t){t[t.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",t[t.EDITION_PROTO2=998]="EDITION_PROTO2",t[t.EDITION_PROTO3=999]="EDITION_PROTO3",t[t.EDITION_2023=1e3]="EDITION_2023",t[t.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",t[t.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",t[t.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",t[t.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",t[t.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY"})(dn||(dn={}));w.util.setEnumType(dn,"google.protobuf.Edition",[{no:0,name:"EDITION_UNKNOWN"},{no:998,name:"EDITION_PROTO2"},{no:999,name:"EDITION_PROTO3"},{no:1e3,name:"EDITION_2023"},{no:1,name:"EDITION_1_TEST_ONLY"},{no:2,name:"EDITION_2_TEST_ONLY"},{no:99997,name:"EDITION_99997_TEST_ONLY"},{no:99998,name:"EDITION_99998_TEST_ONLY"},{no:99999,name:"EDITION_99999_TEST_ONLY"}]);var si=class t extends y{constructor(e){super(),this.file=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};si.runtime=w;si.typeName="google.protobuf.FileDescriptorSet";si.fields=w.util.newFieldList(()=>[{no:1,name:"file",kind:"message",T:Jr,repeated:!0}]);var Jr=class t extends y{constructor(e){super(),this.dependency=[],this.publicDependency=[],this.weakDependency=[],this.messageType=[],this.enumType=[],this.service=[],this.extension=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Jr.runtime=w;Jr.typeName="google.protobuf.FileDescriptorProto";Jr.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"package",kind:"scalar",T:9,opt:!0},{no:3,name:"dependency",kind:"scalar",T:9,repeated:!0},{no:10,name:"public_dependency",kind:"scalar",T:5,repeated:!0},{no:11,name:"weak_dependency",kind:"scalar",T:5,repeated:!0},{no:4,name:"message_type",kind:"message",T:kt,repeated:!0},{no:5,name:"enum_type",kind:"message",T:bt,repeated:!0},{no:6,name:"service",kind:"message",T:Ar,repeated:!0},{no:7,name:"extension",kind:"message",T:mn,repeated:!0},{no:8,name:"options",kind:"message",T:Ur,opt:!0},{no:9,name:"source_code_info",kind:"message",T:Wr,opt:!0},{no:12,name:"syntax",kind:"scalar",T:9,opt:!0},{no:14,name:"edition",kind:"enum",T:w.getEnumType(dn),opt:!0}]);var kt=class t extends y{constructor(e){super(),this.field=[],this.extension=[],this.nestedType=[],this.enumType=[],this.extensionRange=[],this.oneofDecl=[],this.reservedRange=[],this.reservedName=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};kt.runtime=w;kt.typeName="google.protobuf.DescriptorProto";kt.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"field",kind:"message",T:mn,repeated:!0},{no:6,name:"extension",kind:"message",T:mn,repeated:!0},{no:3,name:"nested_type",kind:"message",T:kt,repeated:!0},{no:4,name:"enum_type",kind:"message",T:bt,repeated:!0},{no:5,name:"extension_range",kind:"message",T:Nr,repeated:!0},{no:8,name:"oneof_decl",kind:"message",T:Ir,repeated:!0},{no:7,name:"options",kind:"message",T:qr,opt:!0},{no:9,name:"reserved_range",kind:"message",T:Cr,repeated:!0},{no:10,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var Nr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Nr.runtime=w;Nr.typeName="google.protobuf.DescriptorProto.ExtensionRange";Nr.fields=w.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:Or,opt:!0}]);var Cr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Cr.runtime=w;Cr.typeName="google.protobuf.DescriptorProto.ReservedRange";Cr.fields=w.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var Or=class t extends y{constructor(e){super(),this.uninterpretedOption=[],this.declaration=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Or.runtime=w;Or.typeName="google.protobuf.ExtensionRangeOptions";Or.fields=w.util.newFieldList(()=>[{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0},{no:2,name:"declaration",kind:"message",T:Mr,repeated:!0},{no:50,name:"features",kind:"message",T:Be,opt:!0},{no:3,name:"verification",kind:"enum",T:w.getEnumType(ai),opt:!0,default:ai.UNVERIFIED}]);var ai;(function(t){t[t.DECLARATION=0]="DECLARATION",t[t.UNVERIFIED=1]="UNVERIFIED"})(ai||(ai={}));w.util.setEnumType(ai,"google.protobuf.ExtensionRangeOptions.VerificationState",[{no:0,name:"DECLARATION"},{no:1,name:"UNVERIFIED"}]);var Mr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Mr.runtime=w;Mr.typeName="google.protobuf.ExtensionRangeOptions.Declaration";Mr.fields=w.util.newFieldList(()=>[{no:1,name:"number",kind:"scalar",T:5,opt:!0},{no:2,name:"full_name",kind:"scalar",T:9,opt:!0},{no:3,name:"type",kind:"scalar",T:9,opt:!0},{no:5,name:"reserved",kind:"scalar",T:8,opt:!0},{no:6,name:"repeated",kind:"scalar",T:8,opt:!0}]);var mn=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};mn.runtime=w;mn.typeName="google.protobuf.FieldDescriptorProto";mn.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:3,name:"number",kind:"scalar",T:5,opt:!0},{no:4,name:"label",kind:"enum",T:w.getEnumType(Ea),opt:!0},{no:5,name:"type",kind:"enum",T:w.getEnumType(Ra),opt:!0},{no:6,name:"type_name",kind:"scalar",T:9,opt:!0},{no:2,name:"extendee",kind:"scalar",T:9,opt:!0},{no:7,name:"default_value",kind:"scalar",T:9,opt:!0},{no:9,name:"oneof_index",kind:"scalar",T:5,opt:!0},{no:10,name:"json_name",kind:"scalar",T:9,opt:!0},{no:8,name:"options",kind:"message",T:br,opt:!0},{no:17,name:"proto3_optional",kind:"scalar",T:8,opt:!0}]);var Ra;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.GROUP=10]="GROUP",t[t.MESSAGE=11]="MESSAGE",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.ENUM=14]="ENUM",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(Ra||(Ra={}));w.util.setEnumType(Ra,"google.protobuf.FieldDescriptorProto.Type",[{no:1,name:"TYPE_DOUBLE"},{no:2,name:"TYPE_FLOAT"},{no:3,name:"TYPE_INT64"},{no:4,name:"TYPE_UINT64"},{no:5,name:"TYPE_INT32"},{no:6,name:"TYPE_FIXED64"},{no:7,name:"TYPE_FIXED32"},{no:8,name:"TYPE_BOOL"},{no:9,name:"TYPE_STRING"},{no:10,name:"TYPE_GROUP"},{no:11,name:"TYPE_MESSAGE"},{no:12,name:"TYPE_BYTES"},{no:13,name:"TYPE_UINT32"},{no:14,name:"TYPE_ENUM"},{no:15,name:"TYPE_SFIXED32"},{no:16,name:"TYPE_SFIXED64"},{no:17,name:"TYPE_SINT32"},{no:18,name:"TYPE_SINT64"}]);var Ea;(function(t){t[t.OPTIONAL=1]="OPTIONAL",t[t.REPEATED=3]="REPEATED",t[t.REQUIRED=2]="REQUIRED"})(Ea||(Ea={}));w.util.setEnumType(Ea,"google.protobuf.FieldDescriptorProto.Label",[{no:1,name:"LABEL_OPTIONAL"},{no:3,name:"LABEL_REPEATED"},{no:2,name:"LABEL_REQUIRED"}]);var Ir=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Ir.runtime=w;Ir.typeName="google.protobuf.OneofDescriptorProto";Ir.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"options",kind:"message",T:_r,opt:!0}]);var bt=class t extends y{constructor(e){super(),this.value=[],this.reservedRange=[],this.reservedName=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};bt.runtime=w;bt.typeName="google.protobuf.EnumDescriptorProto";bt.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"value",kind:"message",T:Br,repeated:!0},{no:3,name:"options",kind:"message",T:Vr,opt:!0},{no:4,name:"reserved_range",kind:"message",T:Lr,repeated:!0},{no:5,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var Lr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Lr.runtime=w;Lr.typeName="google.protobuf.EnumDescriptorProto.EnumReservedRange";Lr.fields=w.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var Br=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Br.runtime=w;Br.typeName="google.protobuf.EnumValueDescriptorProto";Br.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"number",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:zr,opt:!0}]);var Ar=class t extends y{constructor(e){super(),this.method=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Ar.runtime=w;Ar.typeName="google.protobuf.ServiceDescriptorProto";Ar.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"method",kind:"message",T:Fr,repeated:!0},{no:3,name:"options",kind:"message",T:Gr,opt:!0}]);var Fr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Fr.runtime=w;Fr.typeName="google.protobuf.MethodDescriptorProto";Fr.fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"input_type",kind:"scalar",T:9,opt:!0},{no:3,name:"output_type",kind:"scalar",T:9,opt:!0},{no:4,name:"options",kind:"message",T:jr,opt:!0},{no:5,name:"client_streaming",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"server_streaming",kind:"scalar",T:8,opt:!0,default:!1}]);var Ur=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Ur.runtime=w;Ur.typeName="google.protobuf.FileOptions";Ur.fields=w.util.newFieldList(()=>[{no:1,name:"java_package",kind:"scalar",T:9,opt:!0},{no:8,name:"java_outer_classname",kind:"scalar",T:9,opt:!0},{no:10,name:"java_multiple_files",kind:"scalar",T:8,opt:!0,default:!1},{no:20,name:"java_generate_equals_and_hash",kind:"scalar",T:8,opt:!0},{no:27,name:"java_string_check_utf8",kind:"scalar",T:8,opt:!0,default:!1},{no:9,name:"optimize_for",kind:"enum",T:w.getEnumType(li),opt:!0,default:li.SPEED},{no:11,name:"go_package",kind:"scalar",T:9,opt:!0},{no:16,name:"cc_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"java_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:18,name:"py_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:42,name:"php_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:23,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:31,name:"cc_enable_arenas",kind:"scalar",T:8,opt:!0,default:!0},{no:36,name:"objc_class_prefix",kind:"scalar",T:9,opt:!0},{no:37,name:"csharp_namespace",kind:"scalar",T:9,opt:!0},{no:39,name:"swift_prefix",kind:"scalar",T:9,opt:!0},{no:40,name:"php_class_prefix",kind:"scalar",T:9,opt:!0},{no:41,name:"php_namespace",kind:"scalar",T:9,opt:!0},{no:44,name:"php_metadata_namespace",kind:"scalar",T:9,opt:!0},{no:45,name:"ruby_package",kind:"scalar",T:9,opt:!0},{no:50,name:"features",kind:"message",T:Be,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var li;(function(t){t[t.SPEED=1]="SPEED",t[t.CODE_SIZE=2]="CODE_SIZE",t[t.LITE_RUNTIME=3]="LITE_RUNTIME"})(li||(li={}));w.util.setEnumType(li,"google.protobuf.FileOptions.OptimizeMode",[{no:1,name:"SPEED"},{no:2,name:"CODE_SIZE"},{no:3,name:"LITE_RUNTIME"}]);var qr=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};qr.runtime=w;qr.typeName="google.protobuf.MessageOptions";qr.fields=w.util.newFieldList(()=>[{no:1,name:"message_set_wire_format",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"no_standard_descriptor_accessor",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:7,name:"map_entry",kind:"scalar",T:8,opt:!0},{no:11,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:12,name:"features",kind:"message",T:Be,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var br=class t extends y{constructor(e){super(),this.targets=[],this.editionDefaults=[],this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};br.runtime=w;br.typeName="google.protobuf.FieldOptions";br.fields=w.util.newFieldList(()=>[{no:1,name:"ctype",kind:"enum",T:w.getEnumType(ui),opt:!0,default:ui.STRING},{no:2,name:"packed",kind:"scalar",T:8,opt:!0},{no:6,name:"jstype",kind:"enum",T:w.getEnumType(ci),opt:!0,default:ci.JS_NORMAL},{no:5,name:"lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:15,name:"unverified_lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:10,name:"weak",kind:"scalar",T:8,opt:!0,default:!1},{no:16,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"retention",kind:"enum",T:w.getEnumType(xa),opt:!0},{no:19,name:"targets",kind:"enum",T:w.getEnumType(Ja),repeated:!0},{no:20,name:"edition_defaults",kind:"message",T:Dr,repeated:!0},{no:21,name:"features",kind:"message",T:Be,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var ui;(function(t){t[t.STRING=0]="STRING",t[t.CORD=1]="CORD",t[t.STRING_PIECE=2]="STRING_PIECE"})(ui||(ui={}));w.util.setEnumType(ui,"google.protobuf.FieldOptions.CType",[{no:0,name:"STRING"},{no:1,name:"CORD"},{no:2,name:"STRING_PIECE"}]);var ci;(function(t){t[t.JS_NORMAL=0]="JS_NORMAL",t[t.JS_STRING=1]="JS_STRING",t[t.JS_NUMBER=2]="JS_NUMBER"})(ci||(ci={}));w.util.setEnumType(ci,"google.protobuf.FieldOptions.JSType",[{no:0,name:"JS_NORMAL"},{no:1,name:"JS_STRING"},{no:2,name:"JS_NUMBER"}]);var xa;(function(t){t[t.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",t[t.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",t[t.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(xa||(xa={}));w.util.setEnumType(xa,"google.protobuf.FieldOptions.OptionRetention",[{no:0,name:"RETENTION_UNKNOWN"},{no:1,name:"RETENTION_RUNTIME"},{no:2,name:"RETENTION_SOURCE"}]);var Ja;(function(t){t[t.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",t[t.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",t[t.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",t[t.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",t[t.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",t[t.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",t[t.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",t[t.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",t[t.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",t[t.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(Ja||(Ja={}));w.util.setEnumType(Ja,"google.protobuf.FieldOptions.OptionTargetType",[{no:0,name:"TARGET_TYPE_UNKNOWN"},{no:1,name:"TARGET_TYPE_FILE"},{no:2,name:"TARGET_TYPE_EXTENSION_RANGE"},{no:3,name:"TARGET_TYPE_MESSAGE"},{no:4,name:"TARGET_TYPE_FIELD"},{no:5,name:"TARGET_TYPE_ONEOF"},{no:6,name:"TARGET_TYPE_ENUM"},{no:7,name:"TARGET_TYPE_ENUM_ENTRY"},{no:8,name:"TARGET_TYPE_SERVICE"},{no:9,name:"TARGET_TYPE_METHOD"}]);var Dr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Dr.runtime=w;Dr.typeName="google.protobuf.FieldOptions.EditionDefault";Dr.fields=w.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:w.getEnumType(dn),opt:!0},{no:2,name:"value",kind:"scalar",T:9,opt:!0}]);var _r=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};_r.runtime=w;_r.typeName="google.protobuf.OneofOptions";_r.fields=w.util.newFieldList(()=>[{no:1,name:"features",kind:"message",T:Be,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var Vr=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Vr.runtime=w;Vr.typeName="google.protobuf.EnumOptions";Vr.fields=w.util.newFieldList(()=>[{no:2,name:"allow_alias",kind:"scalar",T:8,opt:!0},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:7,name:"features",kind:"message",T:Be,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var zr=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};zr.runtime=w;zr.typeName="google.protobuf.EnumValueOptions";zr.fields=w.util.newFieldList(()=>[{no:1,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"features",kind:"message",T:Be,opt:!0},{no:3,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var Gr=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Gr.runtime=w;Gr.typeName="google.protobuf.ServiceOptions";Gr.fields=w.util.newFieldList(()=>[{no:34,name:"features",kind:"message",T:Be,opt:!0},{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var jr=class t extends y{constructor(e){super(),this.uninterpretedOption=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};jr.runtime=w;jr.typeName="google.protobuf.MethodOptions";jr.fields=w.util.newFieldList(()=>[{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:34,name:"idempotency_level",kind:"enum",T:w.getEnumType(fi),opt:!0,default:fi.IDEMPOTENCY_UNKNOWN},{no:35,name:"features",kind:"message",T:Be,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:De,repeated:!0}]);var fi;(function(t){t[t.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",t[t.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",t[t.IDEMPOTENT=2]="IDEMPOTENT"})(fi||(fi={}));w.util.setEnumType(fi,"google.protobuf.MethodOptions.IdempotencyLevel",[{no:0,name:"IDEMPOTENCY_UNKNOWN"},{no:1,name:"NO_SIDE_EFFECTS"},{no:2,name:"IDEMPOTENT"}]);var De=class t extends y{constructor(e){super(),this.name=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};De.runtime=w;De.typeName="google.protobuf.UninterpretedOption";De.fields=w.util.newFieldList(()=>[{no:2,name:"name",kind:"message",T:$r,repeated:!0},{no:3,name:"identifier_value",kind:"scalar",T:9,opt:!0},{no:4,name:"positive_int_value",kind:"scalar",T:4,opt:!0},{no:5,name:"negative_int_value",kind:"scalar",T:3,opt:!0},{no:6,name:"double_value",kind:"scalar",T:1,opt:!0},{no:7,name:"string_value",kind:"scalar",T:12,opt:!0},{no:8,name:"aggregate_value",kind:"scalar",T:9,opt:!0}]);var $r=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};$r.runtime=w;$r.typeName="google.protobuf.UninterpretedOption.NamePart";$r.fields=w.util.newFieldList(()=>[{no:1,name:"name_part",kind:"scalar",T:9},{no:2,name:"is_extension",kind:"scalar",T:8}]);var Be=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Be.runtime=w;Be.typeName="google.protobuf.FeatureSet";Be.fields=w.util.newFieldList(()=>[{no:1,name:"field_presence",kind:"enum",T:w.getEnumType(Na),opt:!0},{no:2,name:"enum_type",kind:"enum",T:w.getEnumType(Ca),opt:!0},{no:3,name:"repeated_field_encoding",kind:"enum",T:w.getEnumType(Oa),opt:!0},{no:4,name:"utf8_validation",kind:"enum",T:w.getEnumType(Ma),opt:!0},{no:5,name:"message_encoding",kind:"enum",T:w.getEnumType(Ia),opt:!0},{no:6,name:"json_format",kind:"enum",T:w.getEnumType(La),opt:!0}]);var Na;(function(t){t[t.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",t[t.EXPLICIT=1]="EXPLICIT",t[t.IMPLICIT=2]="IMPLICIT",t[t.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Na||(Na={}));w.util.setEnumType(Na,"google.protobuf.FeatureSet.FieldPresence",[{no:0,name:"FIELD_PRESENCE_UNKNOWN"},{no:1,name:"EXPLICIT"},{no:2,name:"IMPLICIT"},{no:3,name:"LEGACY_REQUIRED"}]);var Ca;(function(t){t[t.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",t[t.OPEN=1]="OPEN",t[t.CLOSED=2]="CLOSED"})(Ca||(Ca={}));w.util.setEnumType(Ca,"google.protobuf.FeatureSet.EnumType",[{no:0,name:"ENUM_TYPE_UNKNOWN"},{no:1,name:"OPEN"},{no:2,name:"CLOSED"}]);var Oa;(function(t){t[t.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",t[t.PACKED=1]="PACKED",t[t.EXPANDED=2]="EXPANDED"})(Oa||(Oa={}));w.util.setEnumType(Oa,"google.protobuf.FeatureSet.RepeatedFieldEncoding",[{no:0,name:"REPEATED_FIELD_ENCODING_UNKNOWN"},{no:1,name:"PACKED"},{no:2,name:"EXPANDED"}]);var Ma;(function(t){t[t.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",t[t.NONE=1]="NONE",t[t.VERIFY=2]="VERIFY"})(Ma||(Ma={}));w.util.setEnumType(Ma,"google.protobuf.FeatureSet.Utf8Validation",[{no:0,name:"UTF8_VALIDATION_UNKNOWN"},{no:1,name:"NONE"},{no:2,name:"VERIFY"}]);var Ia;(function(t){t[t.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",t[t.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",t[t.DELIMITED=2]="DELIMITED"})(Ia||(Ia={}));w.util.setEnumType(Ia,"google.protobuf.FeatureSet.MessageEncoding",[{no:0,name:"MESSAGE_ENCODING_UNKNOWN"},{no:1,name:"LENGTH_PREFIXED"},{no:2,name:"DELIMITED"}]);var La;(function(t){t[t.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",t[t.ALLOW=1]="ALLOW",t[t.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(La||(La={}));w.util.setEnumType(La,"google.protobuf.FeatureSet.JsonFormat",[{no:0,name:"JSON_FORMAT_UNKNOWN"},{no:1,name:"ALLOW"},{no:2,name:"LEGACY_BEST_EFFORT"}]);var di=class t extends y{constructor(e){super(),this.defaults=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};di.runtime=w;di.typeName="google.protobuf.FeatureSetDefaults";di.fields=w.util.newFieldList(()=>[{no:1,name:"defaults",kind:"message",T:Hr,repeated:!0},{no:4,name:"minimum_edition",kind:"enum",T:w.getEnumType(dn),opt:!0},{no:5,name:"maximum_edition",kind:"enum",T:w.getEnumType(dn),opt:!0}]);var Hr=class t extends y{constructor(e){super(),w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Hr.runtime=w;Hr.typeName="google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault";Hr.fields=w.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:w.getEnumType(dn),opt:!0},{no:2,name:"features",kind:"message",T:Be,opt:!0}]);var Wr=class t extends y{constructor(e){super(),this.location=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Wr.runtime=w;Wr.typeName="google.protobuf.SourceCodeInfo";Wr.fields=w.util.newFieldList(()=>[{no:1,name:"location",kind:"message",T:Yr,repeated:!0}]);var Yr=class t extends y{constructor(e){super(),this.path=[],this.span=[],this.leadingDetachedComments=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Yr.runtime=w;Yr.typeName="google.protobuf.SourceCodeInfo.Location";Yr.fields=w.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"span",kind:"scalar",T:5,repeated:!0,packed:!0},{no:3,name:"leading_comments",kind:"scalar",T:9,opt:!0},{no:4,name:"trailing_comments",kind:"scalar",T:9,opt:!0},{no:6,name:"leading_detached_comments",kind:"scalar",T:9,repeated:!0}]);var mi=class t extends y{constructor(e){super(),this.annotation=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};mi.runtime=w;mi.typeName="google.protobuf.GeneratedCodeInfo";mi.fields=w.util.newFieldList(()=>[{no:1,name:"annotation",kind:"message",T:Kr,repeated:!0}]);var Kr=class t extends y{constructor(e){super(),this.path=[],w.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return w.util.equals(t,e,n)}};Kr.runtime=w;Kr.typeName="google.protobuf.GeneratedCodeInfo.Annotation";Kr.fields=w.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"source_file",kind:"scalar",T:9,opt:!0},{no:3,name:"begin",kind:"scalar",T:5,opt:!0},{no:4,name:"end",kind:"scalar",T:5,opt:!0},{no:5,name:"semantic",kind:"enum",T:w.getEnumType(Ba),opt:!0}]);var Ba;(function(t){t[t.NONE=0]="NONE",t[t.SET=1]="SET",t[t.ALIAS=2]="ALIAS"})(Ba||(Ba={}));w.util.setEnumType(Ba,"google.protobuf.GeneratedCodeInfo.Annotation.Semantic",[{no:0,name:"NONE"},{no:1,name:"SET"},{no:2,name:"ALIAS"}]);var me=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};me.runtime=u;me.typeName="google.protobuf.Empty";me.fields=u.util.newFieldList(()=>[]);var Aa=class t extends y{secret="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.VerifyUserRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Fa=class t extends y{secret="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.GroupInfoRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ua=class t extends y{groupId="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.GroupID";static fields=u.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},qa=class t extends y{contentId="";groupId="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.ShareRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},pi=class t extends y{secret="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.GroupInvite";static fields=u.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ba=class t extends y{groups=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.Groups";static fields=u.util.newFieldList(()=>[{no:1,name:"groups",kind:"message",T:Dt,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},fv=class t extends y{text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.AnalyzeConversationRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Rt=class t extends y{email="";password="";username="";config;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.User";static fields=u.util.newFieldList(()=>[{no:1,name:"email",kind:"scalar",T:9},{no:2,name:"password",kind:"scalar",T:9},{no:3,name:"username",kind:"scalar",T:9},{no:4,name:"config",kind:"message",T:gi}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Dt=class t extends y{id="";name="";users=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.Group";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"users",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},gi=class t extends y{domainWhitelist=[];offlineVoice=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.Config";static fields=u.util.newFieldList(()=>[{no:1,name:"domain_whitelist",kind:"scalar",T:9,repeated:!0},{no:2,name:"offline_voice",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Da=class t extends y{user;success=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="user.LoginResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"user",kind:"message",T:Rt},{no:2,name:"success",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var _a=class t extends y{title="";createTime=0;updateTime=0;mapping={};conversationId="";conversationTemplateId="";currentNode="";gizmoId="";isArchived=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Conversation";static fields=u.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"create_time",kind:"scalar",T:1},{no:3,name:"update_time",kind:"scalar",T:1},{no:4,name:"mapping",kind:"map",K:9,V:{kind:"message",T:Kf}},{no:5,name:"conversation_id",kind:"scalar",T:9},{no:6,name:"conversation_template_id",kind:"scalar",T:9},{no:7,name:"current_node",kind:"scalar",T:9},{no:8,name:"gizmo_id",kind:"scalar",T:9},{no:9,name:"is_archived",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Kf=class t extends y{id="";message;parent="";children=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Node";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"message",kind:"message",T:Qf},{no:3,name:"parent",kind:"scalar",T:9},{no:4,name:"children",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Qf=class t extends y{id="";author;createTime=0;content;status="";endTurn=!1;weight=0;metadata;recipient="";updateTime=0;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Message";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"author",kind:"message",T:Zf},{no:3,name:"create_time",kind:"scalar",T:1},{no:4,name:"content",kind:"message",T:ed},{no:5,name:"status",kind:"scalar",T:9},{no:6,name:"end_turn",kind:"scalar",T:8},{no:7,name:"weight",kind:"scalar",T:5},{no:8,name:"metadata",kind:"message",T:Xf},{no:9,name:"recipient",kind:"scalar",T:9},{no:10,name:"update_time",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Xf=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.MessageMetadata";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Zf=class t extends y{role="";metadata;name="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Author";static fields=u.util.newFieldList(()=>[{no:1,name:"role",kind:"scalar",T:9},{no:2,name:"metadata",kind:"message",T:od},{no:3,name:"name",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ed=class t extends y{contentType="";textParts=[];imageParts=[];text="";parts=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Content";static fields=u.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"text_parts",kind:"scalar",T:9,repeated:!0},{no:3,name:"image_parts",kind:"message",T:td,repeated:!0},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"parts",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},td=class t extends y{contentType="";assetPointer="";sizeBytes=V.zero;width=0;height=0;fovea=0;metadata;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.ImageAsset";static fields=u.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"asset_pointer",kind:"scalar",T:9},{no:3,name:"size_bytes",kind:"scalar",T:3},{no:4,name:"width",kind:"scalar",T:5},{no:5,name:"height",kind:"scalar",T:5},{no:6,name:"fovea",kind:"scalar",T:5},{no:7,name:"metadata",kind:"message",T:nd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},nd=class t extends y{dalle;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Metadata";static fields=u.util.newFieldList(()=>[{no:1,name:"dalle",kind:"message",T:rd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},rd=class t extends y{genId="";prompt="";seed=0;serializationTitle="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.DalleMetadata";static fields=u.util.newFieldList(()=>[{no:1,name:"gen_id",kind:"scalar",T:9},{no:2,name:"prompt",kind:"scalar",T:9},{no:3,name:"seed",kind:"scalar",T:13},{no:4,name:"serialization_title",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},od=class t extends y{attachments=[];timestamp="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.AuthorMetadata";static fields=u.util.newFieldList(()=>[{no:1,name:"attachments",kind:"message",T:id,repeated:!0},{no:2,name:"timestamp_",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},id=class t extends y{id="";name="";mimeType="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chatgpt.Attachment";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"mimeType",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var Va=class t extends y{nodes=[];edges=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="browser.History";static fields=u.util.newFieldList(()=>[{no:1,name:"nodes",kind:"message",T:sd,repeated:!0},{no:2,name:"edges",kind:"message",T:ad,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},sd=class t extends y{id="";url="";title="";open=0;close=0;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="browser.Node";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"open",kind:"scalar",T:1},{no:5,name:"close",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ad=class t extends y{from="";to="";tab="";visitTime=0;visitDuration=0;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="browser.Edge";static fields=u.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9},{no:3,name:"tab",kind:"scalar",T:9},{no:4,name:"visit_time",kind:"scalar",T:1},{no:5,name:"visit_duration",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var za=class t extends y{publishDir="";baseUrl="";title="";paginate=0;theme=[];enableInlineShortcodes=!1;enableRobotsTxt=!1;buildDrafts=!1;buildFuture=!1;buildExpired=!1;enableEmoji=!1;pygmentsUseClasses=!1;mainSections=[];minify;languages={};outputs={};params;markup;services;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.HugoConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"publish_dir",kind:"scalar",T:9},{no:2,name:"base_url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"paginate",kind:"scalar",T:5},{no:5,name:"theme",kind:"scalar",T:9,repeated:!0},{no:6,name:"enable_inline_shortcodes",kind:"scalar",T:8},{no:7,name:"enable_robots_txt",kind:"scalar",T:8},{no:8,name:"build_drafts",kind:"scalar",T:8},{no:9,name:"build_future",kind:"scalar",T:8},{no:10,name:"build_expired",kind:"scalar",T:8},{no:11,name:"enable_emoji",kind:"scalar",T:8},{no:12,name:"pygments_use_classes",kind:"scalar",T:8},{no:13,name:"main_sections",kind:"scalar",T:9,repeated:!0},{no:14,name:"minify",kind:"message",T:ld},{no:15,name:"languages",kind:"map",K:9,V:{kind:"message",T:ud}},{no:16,name:"outputs",kind:"map",K:9,V:{kind:"message",T:hd}},{no:17,name:"params",kind:"message",T:wd},{no:18,name:"markup",kind:"message",T:dd},{no:19,name:"services",kind:"message",T:yd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ld=class t extends y{disableXml=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.MinifyConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"disable_xml",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ud=class t extends y{languageName="";weight=0;title="";taxonomies={};menu={};params={};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.LanguageConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"language_name",kind:"scalar",T:9},{no:2,name:"weight",kind:"scalar",T:5},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"taxonomies",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"menu",kind:"map",K:9,V:{kind:"message",T:vd}},{no:6,name:"params",kind:"map",K:9,V:{kind:"scalar",T:9}}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},yi=class t extends y{name="";url="";weight=0;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.MenuItem";static fields=u.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"weight",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},cd=class t extends y{url="";text="";appendFilePath=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.EditPostConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"append_file_path",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},fd=class t extends y{disableHljs=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.AssetsConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"disable_hljs",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},dd=class t extends y{goldmark;highlight;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.MarkupConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"goldmark",kind:"message",T:md},{no:2,name:"highlight",kind:"message",T:gd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},md=class t extends y{renderer;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.GoldmarkConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"renderer",kind:"message",T:pd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},pd=class t extends y{unsafe=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.RendererConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"unsafe",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},gd=class t extends y{noClasses=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.HighlightConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"no_classes",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},yd=class t extends y{instagram;twitter;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ServicesConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"instagram",kind:"message",T:Ga},{no:2,name:"twitter",kind:"message",T:Ga}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ga=class t extends y{disableInlineCss=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ServiceConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"disable_inline_css",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},hd=class t extends y{values=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.RepeatedString";static fields=u.util.newFieldList(()=>[{no:1,name:"values",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},vd=class t extends y{items=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.RepeatedMenuItem";static fields=u.util.newFieldList(()=>[{no:1,name:"items",kind:"message",T:yi,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},wd=class t extends y{env="";description="";author="";defaultTheme="";showShareButtons=!1;showReadingTime=!1;displayFullLangName=!1;showPostNavLinks=!1;showBreadCrumbs=!1;showCodeCopyButtons=!1;showRssButtonInSectionTermList=!1;showAllPagesInArchive=!1;showPageNums=!1;showToc=!1;images=[];profileMode;homeInfoParams;socialIcons=[];editPost;assets;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ParamsConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"env",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"author",kind:"scalar",T:9},{no:4,name:"default_theme",kind:"scalar",T:9},{no:5,name:"show_share_buttons",kind:"scalar",T:8},{no:6,name:"show_reading_time",kind:"scalar",T:8},{no:7,name:"display_full_lang_name",kind:"scalar",T:8},{no:8,name:"show_post_nav_links",kind:"scalar",T:8},{no:9,name:"show_bread_crumbs",kind:"scalar",T:8},{no:10,name:"show_code_copy_buttons",kind:"scalar",T:8},{no:11,name:"show_rss_button_in_section_term_list",kind:"scalar",T:8},{no:12,name:"show_all_pages_in_archive",kind:"scalar",T:8},{no:13,name:"show_page_nums",kind:"scalar",T:8},{no:14,name:"show_toc",kind:"scalar",T:8},{no:15,name:"images",kind:"scalar",T:9,repeated:!0},{no:16,name:"profile_mode",kind:"message",T:Sd},{no:17,name:"home_info_params",kind:"message",T:Td},{no:18,name:"social_icons",kind:"message",T:kd,repeated:!0},{no:19,name:"edit_post",kind:"message",T:cd},{no:20,name:"assets",kind:"message",T:fd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Sd=class t extends y{enabled=!1;title="";imageUrl="";imageTitle="";buttons=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ProfileModeConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"image_url",kind:"scalar",T:9},{no:4,name:"image_title",kind:"scalar",T:9},{no:5,name:"buttons",kind:"message",T:Pd,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Pd=class t extends y{name="";url="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ButtonConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Td=class t extends y{title="";content="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.HomeInfoParamsConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"content",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},kd=class t extends y{name="";title="";url="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.SocialIconConfig";static fields=u.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var ja=class t extends y{prompt="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.InferRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},$a=class t extends y{text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.InferResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ha=class t extends y{content;site;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.TypesResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:sl},{no:2,name:"site",kind:"message",T:sl}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Wa=class t extends y{contentTypes=[];tags=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.GetSourcesRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"content_types",kind:"scalar",T:9,repeated:!0},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ya=class t extends y{captureDevice=0;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.VoiceInputRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ka=class t extends y{segment;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.VoiceInputResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:Qr}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Qa=class t extends y{parent="";children=[];connect=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.RelateRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"parent",kind:"scalar",T:9},{no:2,name:"children",kind:"scalar",T:9,repeated:!0},{no:3,name:"connect",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Xa=class t extends y{sources=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Sources";static fields=u.util.newFieldList(()=>[{no:1,name:"sources",kind:"message",T:Rd,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Rd=class t extends y{source;displayContent=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.EnumeratedSource";static fields=u.util.newFieldList(()=>[{no:1,name:"source",kind:"message",T:xd},{no:2,name:"display_content",kind:"message",T:Ed,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ed=class t extends y{title="";description="";type="";content;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.DisplayContent";static fields=u.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"type",kind:"scalar",T:9},{no:4,name:"content",kind:"message",T:Ye}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},xd=class t extends y{name="";type={case:void 0};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Source";static fields=u.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"server",kind:"message",T:Jd,oneof:"type"},{no:3,name:"folder",kind:"message",T:Nd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Jd=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Server";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Nd=class t extends y{path="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Folder";static fields=u.util.newFieldList(()=>[{no:2,name:"path",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Za=class t extends y{contentId="";tags=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.SetTagsRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},el=class t extends y{groupId="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.TagRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},tl=class t extends y{tags=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Tags";static fields=u.util.newFieldList(()=>[{no:1,name:"tags",kind:"message",T:nl,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},nl=class t extends y{name="";subTags=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Tag";static fields=u.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"sub_tags",kind:"message",T:t,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},pn=class t extends y{contentIds=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ContentIDs";static fields=u.util.newFieldList(()=>[{no:1,name:"content_ids",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},hi=class t extends y{content;tags=[];related=[];parents=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Contents";static fields=u.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Ye},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0},{no:3,name:"related",kind:"message",T:Ye,repeated:!0},{no:4,name:"parents",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},rl=class t extends y{query="";page=0;contentID="";groupID="";tags=[];contentTypes=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Query";static fields=u.util.newFieldList(()=>[{no:1,name:"query",kind:"scalar",T:9},{no:2,name:"page",kind:"scalar",T:13},{no:3,name:"contentID",kind:"scalar",T:9},{no:4,name:"groupID",kind:"scalar",T:9},{no:5,name:"tags",kind:"scalar",T:9,repeated:!0},{no:6,name:"content_types",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ol=class t extends y{storedContent=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Results";static fields=u.util.newFieldList(()=>[{no:1,name:"storedContent",kind:"message",T:Cd,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Cd=class t extends y{content;id="";related=[];title="";description="";image="";url="";user;tags=[];preview="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.StoredContent";static fields=u.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Ye},{no:2,name:"id",kind:"scalar",T:9},{no:3,name:"related",kind:"message",T:Ye,repeated:!0},{no:4,name:"title",kind:"scalar",T:9},{no:5,name:"description",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"url",kind:"scalar",T:9},{no:9,name:"user",kind:"message",T:Rt},{no:10,name:"tags",kind:"message",T:nl,repeated:!0},{no:11,name:"preview",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},dv=class t extends y{from="";to="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Edge";static fields=u.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ye=class t extends y{tags=[];createdAt="";uri="";id="";type={case:void 0};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Content";static fields=u.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"created_at",kind:"scalar",T:9},{no:3,name:"uri",kind:"scalar",T:9},{no:4,name:"id",kind:"scalar",T:9},{no:6,name:"data",kind:"message",T:vi,oneof:"type"},{no:7,name:"normalized",kind:"message",T:Od,oneof:"type"},{no:8,name:"transformed",kind:"message",T:Md,oneof:"type"},{no:9,name:"post",kind:"message",T:il,oneof:"type"},{no:10,name:"site",kind:"message",T:Vd,oneof:"type"},{no:11,name:"chatgpt_conversation",kind:"message",T:_a,oneof:"type"},{no:12,name:"browser_history",kind:"message",T:Va,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},il=class t extends y{title="";summary="";content="";authors=[];draft=!1;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Post";static fields=u.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"content",kind:"scalar",T:9},{no:4,name:"authors",kind:"scalar",T:9,repeated:!0},{no:6,name:"draft",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},mv=class t extends y{url="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.GitRepo";static fields=u.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},vi=class t extends y{type={case:void 0};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Data";static fields=u.util.newFieldList(()=>[{no:4,name:"text",kind:"message",T:qd,oneof:"type"},{no:5,name:"file",kind:"message",T:Ud,oneof:"type"},{no:6,name:"url",kind:"message",T:bd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Od=class t extends y{type={case:void 0};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Normalized";static fields=u.util.newFieldList(()=>[{no:3,name:"article",kind:"message",T:Id,oneof:"type"},{no:4,name:"html",kind:"message",T:Ld,oneof:"type"},{no:6,name:"transcript",kind:"message",T:_d,oneof:"type"},{no:7,name:"readme",kind:"message",T:Bd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Md=class t extends y{type={case:void 0};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Transformed";static fields=u.util.newFieldList(()=>[{no:1,name:"summary",kind:"message",T:Ad,oneof:"type"},{no:2,name:"categories",kind:"message",T:Fd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Id=class t extends y{title="";author="";length=0;excerpt="";siteName="";image="";favicon="";text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Article";static fields=u.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"author",kind:"scalar",T:9},{no:3,name:"length",kind:"scalar",T:5},{no:4,name:"excerpt",kind:"scalar",T:9},{no:5,name:"site_name",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"favicon",kind:"scalar",T:9},{no:8,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ld=class t extends y{html="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.HTML";static fields=u.util.newFieldList(()=>[{no:1,name:"html",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Bd=class t extends y{data="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.ReadMe";static fields=u.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ad=class t extends y{summary="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Summary";static fields=u.util.newFieldList(()=>[{no:1,name:"summary",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Fd=class t extends y{categories=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Categories";static fields=u.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ud=class t extends y{file="";data=new Uint8Array(0);url="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.File";static fields=u.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9},{no:2,name:"data",kind:"scalar",T:12},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},qd=class t extends y{data="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Text";static fields=u.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},bd=class t extends y{url="";crawl=!1;title="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.URL";static fields=u.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"crawl",kind:"scalar",T:8},{no:3,name:"title",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Dd=class t extends y{id=0;startTime=V.zero;endTime=V.zero;text="";p="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Token";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Qr=class t extends y{num=0;tokens=[];text="";startTime=V.zero;endTime=V.zero;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Segment";static fields=u.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:Dd,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},_d=class t extends y{id="";name="";segments=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Transcript";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:Qr,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},sl=class t extends y{msg;descLookup={};enumLookup={};packageName="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.GRPCTypeInfo";static fields=u.util.newFieldList(()=>[{no:1,name:"msg",kind:"message",T:kt},{no:3,name:"desc_lookup",kind:"map",K:9,V:{kind:"message",T:kt}},{no:4,name:"enum_lookup",kind:"map",K:9,V:{kind:"message",T:bt}},{no:6,name:"package_name",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Vd=class t extends y{sections=[];hugoConfig;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Site";static fields=u.util.newFieldList(()=>[{no:1,name:"sections",kind:"message",T:zd,repeated:!0},{no:2,name:"hugo_config",kind:"message",T:za}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},zd=class t extends y{tags=[];menu;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="content.Section";static fields=u.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"menu",kind:"message",T:yi}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var al=class t extends y{text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.AnalyzeConversationRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ll=class t extends y{prompt="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GenerateImagesRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ul=class t extends y{images=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GenerateImagesResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"images",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},cl=class t extends y{id="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.DeleteSessionRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Xr=class t extends y{id="";text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.Prompt";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},fl=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GetPromptsRequest";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},dl=class t extends y{prompts=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GetPromptsResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"prompts",kind:"message",T:Xr,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},ml=class t extends y{prompt="";text=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.InferRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},pl=class t extends y{text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.InferResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},gl=class t extends y{content;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.UploadContentRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Ye}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},pv=class t extends y{id="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.UploadContentResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},yl=class t extends y{id="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GetSessionRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},hl=class t extends y{session;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GetSessionResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"session",kind:"message",T:Pl}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},vl=class t extends y{page=V.zero;limit=V.zero;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GetSessionsRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"page",kind:"scalar",T:4},{no:2,name:"limit",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},wl=class t extends y{sessions=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.GetSessionsResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"sessions",kind:"message",T:Pl,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Gd=class t extends y{id=0;startTime=V.zero;endTime=V.zero;text="";p="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.Token";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Sl=class t extends y{num=0;tokens=[];text="";startTime=V.zero;endTime=V.zero;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.Segment";static fields=u.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:Gd,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Pl=class t extends y{id="";name="";segments=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.Session";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:Sl,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},gv=class t extends y{filePath="";model="";language="";translate=!1;offset=V.zero;duration=V.zero;threads=0;speedup=!1;maxLen=0;maxTokens=0;wordThreshold=0;tokens=!1;colorize=!1;out="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.TranscriptionRequest";static fields=u.util.newFieldList(()=>[{no:14,name:"file_path",kind:"scalar",T:9},{no:1,name:"model",kind:"scalar",T:9},{no:2,name:"language",kind:"scalar",T:9},{no:3,name:"translate",kind:"scalar",T:8},{no:4,name:"offset",kind:"scalar",T:3},{no:5,name:"duration",kind:"scalar",T:3},{no:6,name:"threads",kind:"scalar",T:13},{no:7,name:"speedup",kind:"scalar",T:8},{no:8,name:"max_len",kind:"scalar",T:13},{no:9,name:"max_tokens",kind:"scalar",T:13},{no:10,name:"word_threshold",kind:"scalar",T:1},{no:11,name:"tokens",kind:"scalar",T:8},{no:12,name:"colorize",kind:"scalar",T:8},{no:13,name:"out",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},yv=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.RegisterFlags";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},hv=class t extends y{text="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.OCRText";static fields=u.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},vv=class t extends y{image=new Uint8Array(0);constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.Image";static fields=u.util.newFieldList(()=>[{no:1,name:"image",kind:"scalar",T:12}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Tl=class t extends y{from="";to="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.ConvertFileRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},kl=class t extends y{captureDevice=0;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.ChatRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},wi=class t extends y{segment;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.ChatResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:Sl}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Rl=class t extends y{id="";file="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.YouTubeVideo";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"file",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Si=class t extends y{file="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.FilePath";static fields=u.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},El=class t extends y{title="";filePath;transcript=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="protoflow.YouTubeVideoResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"file_path",kind:"message",T:Si},{no:3,name:"transcript",kind:"message",T:Qr,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var xl=class t extends y{phoneNumbers=[];summary="";questions=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="ai.AnalyzeConversationResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"phone_numbers",kind:"scalar",T:9,repeated:!0},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"questions",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},wv=class t extends y{categories=[];constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="ai.AnalyzeContent";static fields=u.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var Sv={typeName:"protoflow.ProtoflowService",methods:{downloadYouTubeVideo:{name:"DownloadYouTubeVideo",I:Rl,O:El,kind:A.Unary},getSessions:{name:"GetSessions",I:vl,O:wl,kind:A.Unary},getSession:{name:"GetSession",I:yl,O:hl,kind:A.Unary},deleteSession:{name:"DeleteSession",I:cl,O:me,kind:A.Unary},getPrompts:{name:"GetPrompts",I:fl,O:dl,kind:A.Unary},newPrompt:{name:"NewPrompt",I:Xr,O:Xr,kind:A.Unary},uploadContent:{name:"UploadContent",I:gl,O:wi,kind:A.ServerStreaming},infer:{name:"Infer",I:ml,O:pl,kind:A.ServerStreaming},chat:{name:"Chat",I:kl,O:wi,kind:A.ServerStreaming},convertFile:{name:"ConvertFile",I:Tl,O:Si,kind:A.Unary},generateImages:{name:"GenerateImages",I:ll,O:ul,kind:A.Unary},analyzeConversation:{name:"AnalyzeConversation",I:al,O:xl,kind:A.Unary}}};var Pv={typeName:"content.ContentService",methods:{save:{name:"Save",I:hi,O:pn,kind:A.Unary},search:{name:"Search",I:rl,O:ol,kind:A.Unary},relate:{name:"Relate",I:Qa,O:me,kind:A.Unary},analyze:{name:"Analyze",I:Ye,O:hi,kind:A.Unary},delete:{name:"Delete",I:pn,O:pn,kind:A.Unary},getTags:{name:"GetTags",I:el,O:tl,kind:A.Unary},setTags:{name:"SetTags",I:Za,O:me,kind:A.Unary},publish:{name:"Publish",I:pn,O:pn,kind:A.Unary},getSources:{name:"GetSources",I:Wa,O:Xa,kind:A.Unary},infer:{name:"Infer",I:ja,O:$a,kind:A.ServerStreaming},types:{name:"Types",I:me,O:Ha,kind:A.Unary},voiceInput:{name:"VoiceInput",I:Ya,O:Ka,kind:A.ServerStreaming}}};var Tv={typeName:"user.UserService",methods:{register:{name:"Register",I:Rt,O:Rt,kind:A.Unary},login:{name:"Login",I:Rt,O:Da,kind:A.Unary},logout:{name:"Logout",I:me,O:me,kind:A.Unary},resetPassword:{name:"ResetPassword",I:Rt,O:me,kind:A.Unary},verifyUser:{name:"VerifyUser",I:Aa,O:me,kind:A.Unary},updateConfig:{name:"UpdateConfig",I:gi,O:me,kind:A.Unary},createGroupInvite:{name:"CreateGroupInvite",I:Ua,O:pi,kind:A.Unary},joinGroup:{name:"JoinGroup",I:pi,O:Dt,kind:A.Unary},groupInfo:{name:"GroupInfo",I:Fa,O:Dt,kind:A.Unary},createGroup:{name:"CreateGroup",I:Dt,O:Dt,kind:A.Unary},getGroups:{name:"GetGroups",I:me,O:ba,kind:A.Unary},deleteGroup:{name:"DeleteGroup",I:Dt,O:me,kind:A.Unary},share:{name:"Share",I:qa,O:me,kind:A.Unary}}};var Jl=class t extends y{user="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chat.BanUserRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Nl=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chat.BanUserResponse";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Cl=class t extends y{message="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chat.SendMessageRequest";static fields=u.util.newFieldList(()=>[{no:2,name:"message",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ol=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chat.SendMessageResponse";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Ml=class t extends y{constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chat.ReceiveMessagesRequest";static fields=u.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Il=class t extends y{user="";text="";timestamp=V.zero;constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="chat.Message";static fields=u.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"timestamp",kind:"scalar",T:3}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var kv={typeName:"chat.ChatService",methods:{sendMessage:{name:"SendMessage",I:Cl,O:Ol,kind:A.Unary},receiveMessages:{name:"ReceiveMessages",I:Ml,O:Il,kind:A.ServerStreaming},banUser:{name:"BanUser",I:Jl,O:Nl,kind:A.Unary}}};var Ll=class t extends y{type={case:void 0};constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="event.Metric";static fields=u.util.newFieldList(()=>[{no:1,name:"http",kind:"message",T:jd,oneof:"type"},{no:2,name:"rrweb",kind:"message",T:$d,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},jd=class t extends y{method="";path="";query="";headers={};host="";remoteAddr="";userAgent="";referer="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="event.HTTPRequest";static fields=u.util.newFieldList(()=>[{no:1,name:"method",kind:"scalar",T:9},{no:2,name:"path",kind:"scalar",T:9},{no:3,name:"query",kind:"scalar",T:9},{no:4,name:"headers",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"host",kind:"scalar",T:9},{no:6,name:"remoteAddr",kind:"scalar",T:9},{no:7,name:"userAgent",kind:"scalar",T:9},{no:8,name:"referer",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},$d=class t extends y{events="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="event.RRWeb";static fields=u.util.newFieldList(()=>[{no:1,name:"events",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}},Bl=class t extends y{id="";constructor(e){super(),u.util.initPartial(e,this)}static runtime=u;static typeName="event.SendResponse";static fields=u.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return u.util.equals(t,e,n)}};var Rv={typeName:"event.EventService",methods:{send:{name:"Send",I:Ll,O:Bl,kind:A.Unary}}};var D;(function(t){t[t.Canceled=1]="Canceled",t[t.Unknown=2]="Unknown",t[t.InvalidArgument=3]="InvalidArgument",t[t.DeadlineExceeded=4]="DeadlineExceeded",t[t.NotFound=5]="NotFound",t[t.AlreadyExists=6]="AlreadyExists",t[t.PermissionDenied=7]="PermissionDenied",t[t.ResourceExhausted=8]="ResourceExhausted",t[t.FailedPrecondition=9]="FailedPrecondition",t[t.Aborted=10]="Aborted",t[t.OutOfRange=11]="OutOfRange",t[t.Unimplemented=12]="Unimplemented",t[t.Internal=13]="Internal",t[t.Unavailable=14]="Unavailable",t[t.DataLoss=15]="DataLoss",t[t.Unauthenticated=16]="Unauthenticated"})(D||(D={}));function Pi(t){let e=D[t];return typeof e!="string"?t.toString():e[0].toLowerCase()+e.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var Al;function Ev(t){if(!Al){Al={};for(let e of Object.values(D))typeof e!="string"&&(Al[Pi(e)]=e)}return Al[t]}var ue=class t extends Error{constructor(e,n=D.Unknown,r,o,i){super(VP(e,n)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=e,this.code=n,this.metadata=new Headers(r??{}),this.details=o??[],this.cause=i}static from(e,n=D.Unknown){return e instanceof t?e:e instanceof Error?e.name=="AbortError"?new t(e.message,D.Canceled):new t(e.message,n,void 0,void 0,e):new t(String(e),n,void 0,void 0,e)}static[Symbol.hasInstance](e){return e instanceof Error?Object.getPrototypeOf(e)===t.prototype?!0:e.name==="ConnectError"&&"code"in e&&typeof e.code=="number"&&"metadata"in e&&"details"in e&&Array.isArray(e.details)&&"rawMessage"in e&&typeof e.rawMessage=="string"&&"cause"in e:!1}findDetails(e){let n="typeName"in e?{findMessage:o=>o===e.typeName?e:void 0}:e,r=[];for(let o of this.details){if(o instanceof y){n.findMessage(o.getType().typeName)&&r.push(o);continue}let i=n.findMessage(o.type);if(i)try{r.push(i.fromBinary(o.value))}catch{}}return r}};function VP(t,e){return t.length?`[${Pi(e)}] ${t}`:`[${Pi(e)}]`}function Hd(...t){let e=new Headers;for(let n of t)n.forEach((r,o)=>{e.append(o,r)});return e}function xv(t,e){let n={};for(let[r,o]of Object.entries(t.methods)){let i=e(Object.assign(Object.assign({},o),{localName:r,service:t}));i!=null&&(n[r]=i)}return n}function Wd(t){let e,n=new Uint8Array(0);function r(o){let i=new Uint8Array(n.length+o.length);i.set(n),i.set(o,n.length),n=i}return new ReadableStream({start(){e=t.getReader()},async pull(o){let i;for(;;){if(i===void 0&&n.byteLength>=5){let l=0;for(let c=1;c<5;c++)l=(l<<8)+n[c];i={flags:n[0],length:l}}if(i!==void 0&&n.byteLength>=i.length+5)break;let a=await e.read();if(a.done)break;r(a.value)}if(i===void 0){if(n.byteLength==0){o.close();return}o.error(new ue("premature end of stream",D.DataLoss));return}let s=n.subarray(5,5+i.length);n=n.subarray(5+i.length),o.enqueue({flags:i.flags,data:s})}})}function Yd(t,e){let n=new Uint8Array(e.length+5);n.set(e,5);let r=new DataView(n.buffer,n.byteOffset,n.byteLength);return r.setUint8(0,t),r.setUint32(1,e.length),n}var zP=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=t[i]&&function(s){return new Promise(function(a,l){s=t[i](s),o(a,l,s.done,s.value)})}}function o(i,s,a,l){Promise.resolve(l).then(function(c){i({value:c,done:a})},s)}},Ti=function(t){return this instanceof Ti?(this.v=t,this):new Ti(t)},GP=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),o,i=[];return o={},a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(p){return function(S){return Promise.resolve(S).then(p,h)}}function a(p,S){r[p]&&(o[p]=function(T){return new Promise(function(O,g){i.push([p,T,O,g])>1||l(p,T)})},S&&(o[p]=S(o[p])))}function l(p,S){try{c(r[p](S))}catch(T){m(i[0][3],T)}}function c(p){p.value instanceof Ti?Promise.resolve(p.value.v).then(f,h):m(i[0][2],p)}function f(p){l("next",p)}function h(p){l("throw",p)}function m(p,S){p(S),i.shift(),i.length&&l(i[0][0],i[0][1])}},jP=function(t){var e,n;return e={},r("next"),r("throw",function(o){throw o}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(o,i){e[o]=t[o]?function(s){return(n=!n)?{value:Ti(t[o](s)),done:!1}:i?i(s):s}:i}};function Jv(t){return GP(this,arguments,function*(){yield Ti(yield*jP(zP(t)))})}var Nv=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=t[i]&&function(s){return new Promise(function(a,l){s=t[i](s),o(a,l,s.done,s.value)})}}function o(i,s,a,l){Promise.resolve(l).then(function(c){i({value:c,done:a})},s)}},Zr=function(t){return this instanceof Zr?(this.v=t,this):new Zr(t)},$P=function(t){var e,n;return e={},r("next"),r("throw",function(o){throw o}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(o,i){e[o]=t[o]?function(s){return(n=!n)?{value:Zr(t[o](s)),done:!1}:i?i(s):s}:i}},HP=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),o,i=[];return o={},a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(p){return function(S){return Promise.resolve(S).then(p,h)}}function a(p,S){r[p]&&(o[p]=function(T){return new Promise(function(O,g){i.push([p,T,O,g])>1||l(p,T)})},S&&(o[p]=S(o[p])))}function l(p,S){try{c(r[p](S))}catch(T){m(i[0][3],T)}}function c(p){p.value instanceof Zr?Promise.resolve(p.value.v).then(f,h):m(i[0][2],p)}function f(p){l("next",p)}function h(p){l("throw",p)}function m(p,S){p(S),i.shift(),i.length&&l(i[0][0],i[0][1])}};function qn(t,e){return xv(t,n=>{switch(n.kind){case A.Unary:return WP(e,t,n);case A.ServerStreaming:return YP(e,t,n);case A.ClientStreaming:return KP(e,t,n);case A.BiDiStreaming:return QP(e,t,n);default:return null}})}function WP(t,e,n){return async function(r,o){var i,s;let a=await t.unary(e,n,o?.signal,o?.timeoutMs,o?.headers,r,o?.contextValues);return(i=o?.onHeader)===null||i===void 0||i.call(o,a.header),(s=o?.onTrailer)===null||s===void 0||s.call(o,a.trailer),a.message}}function YP(t,e,n){return function(r,o){return Cv(t.stream(e,n,o?.signal,o?.timeoutMs,o?.headers,Jv([r]),o?.contextValues),o)}}function KP(t,e,n){return async function(r,o){var i,s,a,l,c,f;let h=await t.stream(e,n,o?.signal,o?.timeoutMs,o?.headers,r,o?.contextValues);(c=o?.onHeader)===null||c===void 0||c.call(o,h.header);let m;try{for(var p=!0,S=Nv(h.message),T;T=await S.next(),i=T.done,!i;p=!0)l=T.value,p=!1,m=l}catch(O){s={error:O}}finally{try{!p&&!i&&(a=S.return)&&await a.call(S)}finally{if(s)throw s.error}}if(!m)throw new ue("protocol error: missing response message",D.Internal);return(f=o?.onTrailer)===null||f===void 0||f.call(o,h.trailer),m}}function QP(t,e,n){return function(r,o){return Cv(t.stream(e,n,o?.signal,o?.timeoutMs,o?.headers,r,o?.contextValues),o)}}function Cv(t,e){let n=function(){var r,o;return HP(this,arguments,function*(){let i=yield Zr(t);(r=e?.onHeader)===null||r===void 0||r.call(e,i.header),yield Zr(yield*$P(Nv(i.message))),(o=e?.onTrailer)===null||o===void 0||o.call(e,i.trailer)})}()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function Ov(...t){let e=new AbortController,n=t.filter(o=>o!==void 0).concat(e.signal);for(let o of n){if(o.aborted){r.apply(o);break}o.addEventListener("abort",r)}function r(){e.signal.aborted||e.abort(Kd(this));for(let o of n)o.removeEventListener("abort",r)}return e}function Mv(t){let e=new AbortController,n=()=>{e.abort(new ue("the operation timed out",D.DeadlineExceeded))},r;return t!==void 0&&(t<=0?n():r=setTimeout(n,t)),{signal:e.signal,cleanup:()=>clearTimeout(r)}}function Kd(t){if(!t.aborted)return;if(t.reason!==void 0)return t.reason;let e=new Error("This operation was aborted");return e.name="AbortError",e}function Fl(){return{get(t){return t.id in this?this[t.id]:t.defaultValue},set(t,e){return this[t.id]=e,this},delete(t){return delete this[t.id],this}}}function Ul(t,e,n){let r=typeof e=="string"?e:e.typeName,o=typeof n=="string"?n:n.name;return t.toString().replace(/\/?$/,`/${r}/${o}`)}function Qd(t,e){return e instanceof t?e:new t(e)}function Iv(t,e){function n(r){return r.done===!0?r:{done:r.done,value:Qd(t,r.value)}}return{[Symbol.asyncIterator](){let r=e[Symbol.asyncIterator](),o={next:()=>r.next().then(n)};return r.throw!==void 0&&(o.throw=i=>r.throw(i).then(n)),r.return!==void 0&&(o.return=i=>r.return(i).then(n)),o}}}function ql(t){var e;let n=Object.assign({},t);return(e=n.ignoreUnknownFields)!==null&&e!==void 0||(n.ignoreUnknownFields=!0),n}function bl(t,e,n,r){let o=e?Lv(t.I,r):Bv(t.I,n);return{parse:(e?Lv(t.O,r):Bv(t.O,n)).parse,serialize:o.serialize}}function Lv(t,e){return{parse(n){try{return t.fromBinary(n,e)}catch(r){let o=r instanceof Error?r.message:String(r);throw new ue(`parse binary: ${o}`,D.InvalidArgument)}},serialize(n){try{return n.toBinary(e)}catch(r){let o=r instanceof Error?r.message:String(r);throw new ue(`serialize binary: ${o}`,D.Internal)}}}}function Bv(t,e){var n,r;let o=(n=e?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,i=(r=e?.textDecoder)!==null&&r!==void 0?r:new TextDecoder,s=ql(e);return{parse(a){try{let l=i.decode(a);return t.fromJsonString(l,s)}catch(l){throw ue.from(l,D.InvalidArgument)}},serialize(a){try{let l=a.toJsonString(s);return o.encode(l)}catch(l){throw ue.from(l,D.Internal)}}}}var XP=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var Av="application/proto",Fv="application/json",Uv="application/connect+proto",qv="application/connect+json";function bv(t){let e=t?.match(XP);if(!e)return;let n=!!e[1],r=!!e[3];return{stream:n,binary:r}}function ki(t,e,n){if(e&&new Headers(e).forEach((s,a)=>n.metadata.append(a,s)),typeof t!="object"||t==null||Array.isArray(t)||!("code"in t)||typeof t.code!="string")throw n;let r=Ev(t.code);if(r===void 0)throw n;let o=t.message;if(o!=null&&typeof o!="string")throw n;let i=new ue(o??"",r,e);if("details"in t&&Array.isArray(t.details))for(let s of t.details){if(s===null||typeof s!="object"||Array.isArray(s)||typeof s.type!="string"||typeof s.value!="string"||"debug"in s&&typeof s.debug!="object")throw n;try{i.details.push({type:s.type,value:fn.dec(s.value),debug:s.debug})}catch{throw n}}return i}var Dl=2;function Xd(t){let e=new ue("invalid end stream",D.InvalidArgument),n;try{n=JSON.parse(typeof t=="string"?t:new TextDecoder().decode(t))}catch{throw e}if(typeof n!="object"||n==null||Array.isArray(n))throw e;let r=new Headers;if("metadata"in n){if(typeof n.metadata!="object"||n.metadata==null||Array.isArray(n.metadata))throw e;for(let[i,s]of Object.entries(n.metadata)){if(!Array.isArray(s)||s.some(a=>typeof a!="string"))throw e;for(let a of s)r.append(i,a)}}let o="error"in n?ki(n.error,r,e):void 0;return{metadata:r,error:o}}var Ri="Content-Type",Dv="Content-Length",_l="Content-Encoding";var Zd="Accept-Encoding";var _v="Connect-Timeout-Ms",Vl="Connect-Protocol-Version",Vv="User-Agent";function zv(t){switch(t){case 400:return D.InvalidArgument;case 401:return D.Unauthenticated;case 403:return D.PermissionDenied;case 404:return D.Unimplemented;case 408:return D.DeadlineExceeded;case 409:return D.Aborted;case 412:return D.FailedPrecondition;case 413:return D.ResourceExhausted;case 415:return D.Internal;case 429:return D.Unavailable;case 431:return D.ResourceExhausted;case 502:return D.Unavailable;case 503:return D.Unavailable;case 504:return D.Unavailable;default:return D.Unknown}}function zl(t){let e=new Headers,n=new Headers;return t.forEach((r,o)=>{o.toLowerCase().startsWith("trailer-")?n.set(o.substring(8),r):e.set(o,r)}),[e,n]}var Gl="1";function jl(t,e,n,r,o){let i=new Headers(r??{});return n!==void 0&&i.set(_v,`${n}`),i.set(Ri,t==A.Unary?e?Av:Fv:e?Uv:qv),i.set(Vl,Gl),o&&i.set(Vv,"connect-es/1.3.0"),i}function $l(t,e,n){let r=n.get("Content-Type"),o=bv(r);if(e!==200){let i=new ue(`HTTP ${e}`,zv(e),n);if(t==A.Unary&&o&&!o.binary)return{isUnaryError:!0,unaryError:i};throw i}return{isUnaryError:!1}}var Gv="application/";function eT(t,e){return e?fn.enc(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):encodeURIComponent(new TextDecoder().decode(t))}function em(t,e,n){let r=`?connect=v${Gl}`,o=t.header.get(Ri);o?.indexOf(Gv)===0&&(r+="&encoding="+encodeURIComponent(o.slice(Gv.length)));let i=t.header.get(_l);i!==null&&i!=="identity"&&(r+="&compression="+encodeURIComponent(i),n=!0),n&&(r+="&base64=1"),r+="&message="+eT(e,n);let s=t.url+r,a=new Headers(t.header);return[Vl,Ri,Dv,_l,Zd].forEach(l=>a.delete(l)),Object.assign(Object.assign({},t),{init:Object.assign(Object.assign({},t.init),{method:"GET"}),url:s,header:a})}function tm(t){let e=$v(t.next,t.interceptors),[n,r,o]=jv(t),i=Object.assign(Object.assign({},t.req),{message:Qd(t.req.method.I,t.req.message),signal:n});return e(i).then(s=>(o(),s),r)}function nm(t){let e=$v(t.next,t.interceptors),[n,r,o]=jv(t),i=Object.assign(Object.assign({},t.req),{message:Iv(t.req.method.I,t.req.message),signal:n}),s=!1;return n.addEventListener("abort",function(){var a,l;let c=t.req.message[Symbol.asyncIterator]();s||(a=c.throw)===null||a===void 0||a.call(c,this.reason).catch(()=>{}),(l=c.return)===null||l===void 0||l.call(c).catch(()=>{})}),e(i).then(a=>Object.assign(Object.assign({},a),{message:{[Symbol.asyncIterator](){let l=a.message[Symbol.asyncIterator]();return{next(){return l.next().then(c=>(c.done==!0&&(s=!0,o()),c),r)}}}}}),r)}function jv(t){let{signal:e,cleanup:n}=Mv(t.timeoutMs),r=Ov(t.signal,e);return[r.signal,function(i){let s=ue.from(e.aborted?Kd(e):i);return r.abort(s),n(),Promise.reject(s)},function(){n(),r.abort()}]}function $v(t,e){var n;return(n=e?.concat().reverse().reduce((r,o)=>o(r),t))!==null&&n!==void 0?n:t}function Hv(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var Ei=function(t){return this instanceof Ei?(this.v=t,this):new Ei(t)},tT=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),o,i=[];return o={},a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(p){return function(S){return Promise.resolve(S).then(p,h)}}function a(p,S){r[p]&&(o[p]=function(T){return new Promise(function(O,g){i.push([p,T,O,g])>1||l(p,T)})},S&&(o[p]=S(o[p])))}function l(p,S){try{c(r[p](S))}catch(T){m(i[0][3],T)}}function c(p){p.value instanceof Ei?Promise.resolve(p.value.v).then(f,h):m(i[0][2],p)}function f(p){l("next",p)}function h(p){l("throw",p)}function m(p,S){p(S),i.shift(),i.length&&l(i[0][0],i[0][1])}};function rm(t){var e;Hv();let n=(e=t.useBinaryFormat)!==null&&e!==void 0?e:!1;return{async unary(r,o,i,s,a,l,c){var f;let{serialize:h,parse:m}=bl(o,n,t.jsonOptions,t.binaryOptions);return s=s===void 0?t.defaultTimeoutMs:s<=0?void 0:s,await tm({interceptors:t.interceptors,signal:i,timeoutMs:s,req:{stream:!1,service:r,method:o,url:Ul(t.baseUrl,r,o),init:{method:"POST",credentials:(f=t.credentials)!==null&&f!==void 0?f:"same-origin",redirect:"error",mode:"cors"},header:jl(o.kind,n,s,a,!1),contextValues:c??Fl(),message:l},next:async p=>{var S;let T=t.useHttpGet===!0&&o.idempotency===ii.NoSideEffects,O=null;T?p=em(p,h(p.message),n):O=h(p.message);let d=await((S=t.fetch)!==null&&S!==void 0?S:globalThis.fetch)(p.url,Object.assign(Object.assign({},p.init),{headers:p.header,signal:p.signal,body:O})),{isUnaryError:v,unaryError:x}=$l(o.kind,d.status,d.headers);if(v)throw ki(await d.json(),Hd(...zl(d.headers)),x);let[C,I]=zl(d.headers);return{stream:!1,service:r,method:o,header:C,message:n?m(new Uint8Array(await d.arrayBuffer())):o.O.fromJson(await d.json(),ql(t.jsonOptions)),trailer:I}}})},async stream(r,o,i,s,a,l,c){var f;let{serialize:h,parse:m}=bl(o,n,t.jsonOptions,t.binaryOptions);function p(T,O,g){return tT(this,arguments,function*(){let v=Wd(T).getReader(),x=!1;for(;;){let C=yield Ei(v.read());if(C.done)break;let{flags:I,data:B}=C.value;if((I&Dl)===Dl){x=!0;let P=Xd(B);if(P.error){let R=P.error;throw g.forEach((E,N)=>{R.metadata.append(N,E)}),R}P.metadata.forEach((R,E)=>O.set(E,R));continue}yield yield Ei(m(B))}if(!x)throw"missing EndStreamResponse"})}async function S(T){if(o.kind!=A.ServerStreaming)throw"The fetch API does not support streaming request bodies";let O=await T[Symbol.asyncIterator]().next();if(O.done==!0)throw"missing request message";return Yd(0,h(O.value))}return s=s===void 0?t.defaultTimeoutMs:s<=0?void 0:s,await nm({interceptors:t.interceptors,timeoutMs:s,signal:i,req:{stream:!0,service:r,method:o,url:Ul(t.baseUrl,r,o),init:{method:"POST",credentials:(f=t.credentials)!==null&&f!==void 0?f:"same-origin",redirect:"error",mode:"cors"},header:jl(o.kind,n,s,a,!1),contextValues:c??Fl(),message:l},next:async T=>{var O;let d=await((O=t.fetch)!==null&&O!==void 0?O:globalThis.fetch)(T.url,Object.assign(Object.assign({},T.init),{headers:T.header,signal:T.signal,body:await S(T.message)}));if($l(o.kind,d.status,d.headers),d.body===null)throw"missing response body";let v=new Headers;return Object.assign(Object.assign({},T),{header:d.headers,trailer:v,message:p(d.body,v,d.headers)})}})}}}var nT="https://demo.justshare.com",xi=rm({baseUrl:`${nT}/api`||"error"}),qx=qn(Sv,xi),Wv=qn(Pv,xi),bx=qn(Tv,xi),Dx=qn(kv,xi),_x=qn(Rv,xi);function rT(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=Math.random()*16|0,n=t==="x"?e:e&3|8;return n.toString(16)})}function Ji(t,e){return new Ye({id:rT(),tags:e,type:{case:"data",value:new vi({type:{case:"url",value:{url:t}}})}})}var $=st(bn(),1),Xv=()=>{let[t,e]=(0,it.useState)(void 0),[n,r]=(0,it.useState)(document.title||window.location.href),[o,i]=(0,it.useState)(void 0),[s,a]=(0,it.useState)(["browser/save"]),[l,c]=(0,it.useState)(window.location.href),[f,h]=(0,it.useState)(""),[m,p]=(0,it.useState)([]),[S,T]=(0,it.useState)("tags"),[O,g]=(0,it.useState)(void 0);(0,it.useEffect)(()=>{let R=E=>{};return document.addEventListener("keydown",R),document.addEventListener("mouseup",d),()=>{document.removeEventListener("keydown",R),document.removeEventListener("mouseup",d)}},[]);let d=()=>{let R=window.getSelection()?.toString();R&&h(R)},v=R=>{a([...s,R]),i("")},x=()=>{f&&(p([...m,f]),h(""))},C=async()=>{g(void 0);try{let R=await Wv.analyze(Ji(l,s));console.log(R)}catch(R){console.error(R)}},I=async()=>{e(void 0);let R=Ji(l,s);chrome.runtime.sendMessage({action:aa,data:R.toJson()},E=>{console.log("content","save response",E)})},B=R=>{p(m.filter((E,N)=>N!==R))},P=R=>{p(s.filter((E,N)=>N!==R))};return(0,$.jsxs)("div",{id:"floating-panel",children:[(0,$.jsx)("input",{type:"text",value:n,onChange:R=>r(R.target.value)}),(0,$.jsxs)("div",{className:"tablist",children:[(0,$.jsx)("button",{onClick:()=>T("tags"),children:"Tags"}),(0,$.jsx)("button",{onClick:()=>T("annotations"),children:"Annotations"})]}),(0,$.jsxs)("div",{children:[S==="analyze"&&(0,$.jsxs)("div",{children:[(0,$.jsx)("button",{className:"button-primary",onClick:C,children:"Analyze"}),O&&(0,$.jsx)("ul",{children:O.map((R,E)=>R.tags.map((N,F)=>(0,$.jsx)("button",{onClick:()=>v(N),children:N},F)))})]}),S==="tags"&&(0,$.jsxs)("div",{children:[(0,$.jsx)("input",{type:"text",value:o,placeholder:"tag",onChange:R=>i(R.target.value)}),(0,$.jsx)("button",{className:"button-primary",onClick:()=>o&&v(o),children:"Add"}),s.length>0&&(0,$.jsx)("table",{className:"table",children:(0,$.jsx)("tbody",{children:s.map((R,E)=>(0,$.jsx)("tr",{className:"table-row",children:(0,$.jsxs)("td",{className:"table-cell",children:[R,(0,$.jsx)("button",{className:"button-primary",onClick:()=>P(E),children:"Remove"})]})},E))})})]}),S==="annotations"&&(0,$.jsxs)("div",{children:[(0,$.jsx)("textarea",{rows:4,value:f,onChange:R=>h(R.target.value)}),(0,$.jsx)("button",{className:"button-primary",onClick:x,children:"Add"}),m.length>0&&(0,$.jsx)("table",{className:"table",children:(0,$.jsx)("tbody",{children:m.map((R,E)=>(0,$.jsx)("tr",{className:"table-row",children:(0,$.jsxs)("td",{className:"table-cell",children:[R,(0,$.jsx)("button",{className:"button-primary",onClick:()=>B(E),children:"Remove"})]})},E))})})]})]}),(0,$.jsx)("div",{style:{display:"flex",gap:"10px"},children:(0,$.jsx)("button",{className:"button-primary",onClick:I,children:"Save"})}),t&&(0,$.jsx)("div",{style:{color:"red"},children:t})]})};var _={},cT=0;function rw(t,e){let n=`atom${++cT}`,r={toString:()=>n};return typeof t=="function"?r.read=t:(r.init=t,r.read=function(o){return o(this)},r.write=function(o,i,s){return i(this,typeof s=="function"?s(o(this)):s)}),e&&(r.write=e),r}var om=t=>"init"in t,im=t=>!!t.write,Yl=new WeakMap,fT=(t,e)=>{Yl.set(t,e),t.catch(()=>{}).finally(()=>Yl.delete(t))},Zv=(t,e)=>{let n=Yl.get(t);n&&(Yl.delete(t),n(e))},ew=(t,e)=>{t.status="fulfilled",t.value=e},tw=(t,e)=>{t.status="rejected",t.reason=e},dT=t=>typeof t?.then=="function",Ni=(t,e)=>!!t&&"v"in t&&"v"in e&&Object.is(t.v,e.v),nw=(t,e)=>!!t&&"e"in t&&"e"in e&&Object.is(t.e,e.e),eo=t=>!!t&&"v"in t&&t.v instanceof Promise,mT=(t,e)=>"v"in t&&"v"in e&&t.v.orig&&t.v.orig===e.v.orig,Wl=t=>{if("e"in t)throw t.e;return t.v},ow=()=>{let t=new WeakMap,e=new WeakMap,n=new Map,r,o;(_.env?_.env.MODE:void 0)!=="production"&&(r=new Set,o=new Set);let i=P=>t.get(P),s=(P,R)=>{(_.env?_.env.MODE:void 0)!=="production"&&Object.freeze(R);let E=t.get(P);if(t.set(P,R),n.has(P)||n.set(P,E),eo(E)){let N="v"in R?R.v instanceof Promise?R.v:Promise.resolve(R.v):Promise.reject(R.e);E.v!==N&&Zv(E.v,N)}},a=(P,R,E)=>{let N=new Map,F=!1;E.forEach((b,U)=>{!b&&U===P&&(b=R),b?(N.set(U,b),R.d.get(U)!==b&&(F=!0)):(_.env?_.env.MODE:void 0)!=="production"&&console.warn("[Bug] atom state not found")}),(F||R.d.size!==N.size)&&(R.d=N)},l=(P,R,E)=>{let N=i(P),F={d:N?.d||new Map,v:R};if(E&&a(P,F,E),Ni(N,F)&&N.d===F.d)return N;if(eo(N)&&eo(F)&&mT(N,F)){if(N.d===F.d)return N;F.v=N.v}return s(P,F),F},c=(P,R,E,N)=>{if(dT(R)){let F,b=()=>{let q=i(P);if(!eo(q)||q.v!==U)return;let ce=l(P,U,E);e.has(P)&&q.d!==ce.d&&C(P,ce,q.d)},U=new Promise((q,ce)=>{let G=!1;R.then(Q=>{G||(G=!0,ew(U,Q),q(Q),b())},Q=>{G||(G=!0,tw(U,Q),ce(Q),b())}),F=Q=>{G||(G=!0,Q.then(ve=>ew(U,ve),ve=>tw(U,ve)),q(Q))}});return U.orig=R,U.status="pending",fT(U,q=>{q&&F(q),N?.()}),l(P,U,E)}return l(P,R,E)},f=(P,R,E)=>{let N=i(P),F={d:N?.d||new Map,e:R};return E&&a(P,F,E),nw(N,F)&&N.d===F.d?N:(s(P,F),F)},h=(P,R)=>{let E=i(P);if(!R&&E&&(e.has(P)||Array.from(E.d).every(([G,Q])=>{if(G===P)return!0;let ve=h(G);return ve===Q||Ni(ve,Q)})))return E;let N=new Map,F=!0,b=G=>{if(G===P){let ve=i(G);if(ve)return N.set(G,ve),Wl(ve);if(om(G))return N.set(G,void 0),G.init;throw new Error("no atom init")}let Q=h(G);return N.set(G,Q),Wl(Q)},U,q,ce={get signal(){return U||(U=new AbortController),U.signal},get setSelf(){return(_.env?_.env.MODE:void 0)!=="production"&&!im(P)&&console.warn("setSelf function cannot be used with read-only atom"),!q&&im(P)&&(q=(...G)=>{if((_.env?_.env.MODE:void 0)!=="production"&&F&&console.warn("setSelf function cannot be called in sync"),!F)return d(P,...G)}),q}};try{let G=P.read(b,ce);return c(P,G,N,()=>U?.abort())}catch(G){return f(P,G,N)}finally{F=!1}},m=P=>Wl(h(P)),p=P=>{let R=e.get(P);return R||(R=v(P)),R},S=(P,R)=>!R.l.size&&(!R.t.size||R.t.size===1&&R.t.has(P)),T=P=>{let R=e.get(P);R&&S(P,R)&&x(P)},O=P=>{let R=new Map,E=new WeakMap,N=U=>{var q;let ce=new Set((q=e.get(U))==null?void 0:q.t);return n.forEach((G,Q)=>{var ve;(ve=i(Q))!=null&&ve.d.has(U)&&ce.add(Q)}),ce},F=U=>{N(U).forEach(q=>{q!==U&&(R.set(q,(R.get(q)||new Set).add(U)),E.set(q,(E.get(q)||0)+1),F(q))})};F(P);let b=U=>{N(U).forEach(q=>{var ce;if(q!==U){let G=E.get(q);if(G&&E.set(q,--G),!G){let Q=!!((ce=R.get(q))!=null&&ce.size);if(Q){let ve=i(q),dw=h(q,!0);Q=!Ni(ve,dw)}Q||R.forEach(ve=>ve.delete(q))}b(q)}})};b(P)},g=(P,...R)=>{let E=!0,N=U=>Wl(h(U)),F=(U,...q)=>{let ce;if(U===P){if(!om(U))throw new Error("atom not writable");let G=i(U),Q=c(U,q[0]);Ni(G,Q)||O(U)}else ce=g(U,...q);if(!E){let G=I();(_.env?_.env.MODE:void 0)!=="production"&&r.forEach(Q=>Q({type:"async-write",flushed:G}))}return ce},b=P.write(N,F,...R);return E=!1,b},d=(P,...R)=>{let E=g(P,...R),N=I();return(_.env?_.env.MODE:void 0)!=="production"&&r.forEach(F=>F({type:"write",flushed:N})),E},v=(P,R,E)=>{var N;let F=E||[];(N=i(P))==null||N.d.forEach((U,q)=>{let ce=e.get(q);ce?ce.t.add(P):q!==P&&v(q,P,F)}),h(P);let b={t:new Set(R&&[R]),l:new Set};if(e.set(P,b),(_.env?_.env.MODE:void 0)!=="production"&&o.add(P),im(P)&&P.onMount){let{onMount:U}=P;F.push(()=>{let q=U((...ce)=>d(P,...ce));q&&(b.u=q)})}return E||F.forEach(U=>U()),b},x=P=>{var R;let E=(R=e.get(P))==null?void 0:R.u;E&&E(),e.delete(P),(_.env?_.env.MODE:void 0)!=="production"&&o.delete(P);let N=i(P);N?(eo(N)&&Zv(N.v),N.d.forEach((F,b)=>{if(b!==P){let U=e.get(b);U&&(U.t.delete(P),S(b,U)&&x(b))}})):(_.env?_.env.MODE:void 0)!=="production"&&console.warn("[Bug] could not find atom state to unmount",P)},C=(P,R,E)=>{let N=new Set(R.d.keys());E?.forEach((F,b)=>{if(N.has(b)){N.delete(b);return}let U=e.get(b);U&&(U.t.delete(P),S(b,U)&&x(b))}),N.forEach(F=>{let b=e.get(F);b?b.t.add(P):e.has(P)&&v(F,P)})},I=()=>{let P;for((_.env?_.env.MODE:void 0)!=="production"&&(P=new Set);n.size;){let R=Array.from(n);n.clear(),R.forEach(([E,N])=>{let F=i(E);if(F){let b=e.get(E);b&&F.d!==N?.d&&C(E,F,N?.d),b&&!(!eo(N)&&(Ni(N,F)||nw(N,F)))&&(b.l.forEach(U=>U()),(_.env?_.env.MODE:void 0)!=="production"&&P.add(E))}else(_.env?_.env.MODE:void 0)!=="production"&&console.warn("[Bug] no atom state to flush")})}if((_.env?_.env.MODE:void 0)!=="production")return P},B=(P,R)=>{let E=p(P),N=I(),F=E.l;return F.add(R),(_.env?_.env.MODE:void 0)!=="production"&&r.forEach(b=>b({type:"sub",flushed:N})),()=>{F.delete(R),T(P),(_.env?_.env.MODE:void 0)!=="production"&&r.forEach(b=>b({type:"unsub"}))}};return(_.env?_.env.MODE:void 0)!=="production"?{get:m,set:d,sub:B,dev_subscribe_store:(P,R)=>{if(R!==2)throw new Error("The current StoreListener revision is 2.");return r.add(P),()=>{r.delete(P)}},dev_get_mounted_atoms:()=>o.values(),dev_get_atom_state:P=>t.get(P),dev_get_mounted:P=>e.get(P),dev_restore_atoms:P=>{for(let[E,N]of P)om(E)&&(c(E,N),O(E));let R=I();r.forEach(E=>E({type:"restore",flushed:R}))}}:{get:m,set:d,sub:B}},sm;(_.env?_.env.MODE:void 0)!=="production"&&(typeof globalThis.__NUMBER_OF_JOTAI_INSTANCES__=="number"?++globalThis.__NUMBER_OF_JOTAI_INSTANCES__:globalThis.__NUMBER_OF_JOTAI_INSTANCES__=1);var iw=()=>(sm||((_.env?_.env.MODE:void 0)!=="production"&&globalThis.__NUMBER_OF_JOTAI_INSTANCES__!==1&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"),sm=ow()),sm);var Ce=st(gn(),1);var sw={},pT=(0,Ce.createContext)(void 0),aw=t=>{let e=(0,Ce.useContext)(pT);return t?.store||e||iw()};var gT=t=>typeof t?.then=="function",yT=Ce.default.use||(t=>{if(t.status==="pending")throw t;if(t.status==="fulfilled")return t.value;throw t.status==="rejected"?t.reason:(t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}),t)});function hT(t,e){let n=aw(e),[[r,o,i],s]=(0,Ce.useReducer)(c=>{let f=n.get(t);return Object.is(c[0],f)&&c[1]===n&&c[2]===t?c:[f,n,t]},void 0,()=>[n.get(t),n,t]),a=r;(o!==n||i!==t)&&(s(),a=n.get(t));let l=e?.delay;return(0,Ce.useEffect)(()=>{let c=n.sub(t,()=>{if(typeof l=="number"){setTimeout(s,l);return}s()});return s(),c},[n,t,l]),(0,Ce.useDebugValue)(a),gT(a)?yT(a):a}function vT(t,e){let n=aw(e);return(0,Ce.useCallback)((...o)=>{if((sw.env?sw.env.MODE:void 0)!=="production"&&!("write"in t))throw new Error("not writable atom");return n.set(t,...o)},[n,t])}function lw(t,e){return[hT(t,e),vT(t,e)]}var _e=st(bn(),1),wT=rw([]),ST={padding:"10px",backgroundColor:"white",border:"1px solid #ccc",color:"black",maxHeight:"300px",overflowY:"auto",zIndex:9999,right:"10px",bottom:"10px",position:"fixed"},PT=t=>{switch(t.type.case){case"data":let e=t.type.value;switch(e.type.case){case"url":return e.type.value.url}break}return"unknown"},uw=()=>{let[t,e]=(0,to.useState)(!1),[n,r]=(0,to.useState)(void 0),[o,i]=lw(wT);(0,to.useEffect)(()=>{let l=c=>{c.ctrlKey&&c.key==="l"&&(c.preventDefault(),e(!t))};return document.addEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)}},[t]),(0,to.useEffect)(()=>{chrome.runtime.sendMessage({action:_h,data:"TODO make url?"},l=>{l.data&&(r(l.data),e(!0))})},[]);let s=()=>{if(!n)return;let l=new URL(n.from),c=Ji(n.to,["browser/history",l.host]);chrome.runtime.sendMessage({action:aa,data:c},f=>{e(!1)}),r(void 0)},a=()=>{e(!1),r(void 0)};return o.length===0&&!t?null:(0,_e.jsxs)("div",{id:"floating-panel",style:ST,children:[(0,_e.jsx)("ul",{children:o.map(l=>(0,_e.jsxs)("li",{children:[(0,_e.jsx)("button",{className:"btn",style:{userSelect:"none"},onClick:()=>{i(c=>c.filter(f=>f.id!==l.id))},children:"X"}),PT(l)]}))}),n?(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsx)("h5",{children:"Save this page?"}),(0,_e.jsxs)("div",{className:"flex flex-row",children:[(0,_e.jsx)("button",{className:"btn",onClick:s,children:"Yes"}),(0,_e.jsx)("button",{className:"btn",onClick:a,children:"No"})]})]}):(0,_e.jsx)(Xv,{})]})};var am=st(bn(),1),Dn=document.createElement("div");Dn.setAttribute("id","justshare-root");document.body.appendChild(Dn);Dn.style.width="0";Dn.style.height="0";Dn.style.padding="0";Dn.style.margin="0";document.addEventListener("NEXT_JS_PARAMS",function(t){let e=JSON.parse(t.detail);console.log("NEXT_JS_PARAMS",e);let n=e[20][1],i=JSON.parse(n.substring(3))[3].chat.messages.map(s=>`[${s.role}] ${s.content}`);console.log(i)});var TT=fw.default.createRoot(Dn);TT.render((0,am.jsx)(cw.default.StrictMode,{children:(0,am.jsx)(uw,{})}));})(); /*! Bundled license information: react/cjs/react.production.min.js: diff --git a/js/dist/extension/content.js.map b/js/dist/extension/content.js.map index d6f6c7b3..5c28d04e 100644 --- a/js/dist/extension/content.js.map +++ b/js/dist/extension/content.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../../../node_modules/react/cjs/react.production.min.js", "../../../node_modules/react/index.js", "../../../node_modules/react-dom/node_modules/scheduler/cjs/scheduler.production.min.js", "../../../node_modules/react-dom/node_modules/scheduler/index.js", "../../../node_modules/react-dom/cjs/react-dom.production.min.js", "../../../node_modules/react-dom/index.js", "../../../node_modules/react-dom/client.js", "../../../node_modules/source-map/lib/base64.js", "../../../node_modules/source-map/lib/base64-vlq.js", "../../../node_modules/source-map/lib/util.js", "../../../node_modules/source-map/lib/array-set.js", "../../../node_modules/source-map/lib/mapping-list.js", "../../../node_modules/source-map/lib/source-map-generator.js", "../../../node_modules/source-map/lib/binary-search.js", "../../../node_modules/source-map/lib/quick-sort.js", "../../../node_modules/source-map/lib/source-map-consumer.js", "../../../node_modules/source-map/lib/source-node.js", "../../../node_modules/source-map/source-map.js", "node-modules-polyfills:path", "node-modules-polyfills-commonjs:path", "node-modules-polyfills:fs", "node-modules-polyfills-commonjs:fs", "../../../node_modules/buffer-from/index.js", "../../../node_modules/source-map-support/source-map-support.js", "../../../node_modules/react/cjs/react-jsx-runtime.production.min.js", "../../../node_modules/react/jsx-runtime.js", "../../extension/content.tsx", "../../../node_modules/source-map-support/register.js", "../../extension/FloatingPanel.tsx", "../../extension/shared.tsx", "../../extension/NewSaveWizard.tsx", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/assert.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/enum.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/message.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/message-type.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/proto-runtime.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/field.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/google/varint.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/binary-encoding.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/field-wrapper.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/scalars.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/binary-format-common.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/binary-format-proto3.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/proto-base64.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/json-format-common.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/json-format-proto3.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/util-common.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/field-list.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/names.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/field.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/proto3.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/binary-format-proto2.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/json-format-proto2.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/proto2.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/service-type.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/descriptor_pb.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/empty_pb.js", "../../rpc/user/user_pb.ts", "../../rpc/content/chatgpt/conversation_pb.ts", "../../rpc/content/browser/history_pb.ts", "../../rpc/content/blog_pb.ts", "../../rpc/content/content_pb.ts", "../../rpc/protoflow_pb.ts", "../../rpc/ai_pb.ts", "../../rpc/protoflow_connect.ts", "../../rpc/content/content_connect.ts", "../../rpc/user/user_connect.ts", "../../rpc/chat/chat_pb.ts", "../../rpc/chat/chat_connect.ts", "../../rpc/event/event_pb.ts", "../../rpc/event/event_connect.ts", "../../../node_modules/@connectrpc/connect/dist/esm/code.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/code-string.js", "../../../node_modules/@connectrpc/connect/dist/esm/connect-error.js", "../../../node_modules/@connectrpc/connect/dist/esm/http-headers.js", "../../../node_modules/@connectrpc/connect/dist/esm/any-client.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/envelope.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.js", "../../../node_modules/@connectrpc/connect/dist/esm/promise-client.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/signals.js", "../../../node_modules/@connectrpc/connect/dist/esm/context-values.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/create-method-url.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/normalize.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/serialization.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/content-type.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/error-json.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/end-stream.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/headers.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/http-status.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/trailer-mux.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/version.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/request-header.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/validate-response.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/get-request.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/run-call.js", "../../../node_modules/@connectrpc/connect-web/dist/esm/assert-fetch-api.js", "../../../node_modules/@connectrpc/connect-web/dist/esm/connect-transport.js", "../../site/service.ts", "../../extension/util.ts", "../../../node_modules/jotai/esm/vanilla.mjs", "../../../node_modules/jotai/esm/react.mjs"], - "sourcesContent": ["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n", "/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // \u201Csources\u201D entry. This value is prepended to the individual\n // entries in the \u201Csource\u201D field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // \u201CsourceRoot\u201D, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n throw new Error(\n 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n );\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n", "/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\nvar splitPath = function(filename) {\n return splitPathRe.exec(filename).slice(1);\n};\n\n// path.resolve([from ...], to)\n// posix version\nexport function resolve() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : '/';\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexport function normalize(path) {\n var isPathAbsolute = isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isPathAbsolute).join('/');\n\n if (!path && !isPathAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexport function isAbsolute(path) {\n return path.charAt(0) === '/';\n}\n\n// posix version\nexport function join() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n}\n\n\n// path.relative(from, to)\n// posix version\nexport function relative(from, to) {\n from = resolve(from).substr(1);\n to = resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n}\n\nexport var sep = '/';\nexport var delimiter = ':';\n\nexport function dirname(path) {\n var result = splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n}\n\nexport function basename(path, ext) {\n var f = splitPath(path)[2];\n // TODO: make this comparison case-insensitive on windows?\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n}\n\n\nexport function extname(path) {\n return splitPath(path)[3];\n}\nexport default {\n extname: extname,\n basename: basename,\n dirname: dirname,\n sep: sep,\n delimiter: delimiter,\n relative: relative,\n join: join,\n isAbsolute: isAbsolute,\n normalize: normalize,\n resolve: resolve\n};\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b' ?\n function (str, start, len) { return str.substr(start, len) } :\n function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n", "\nconst polyfill = require('path')\n\nif (polyfill && polyfill.default) {\n module.exports = polyfill.default\n for (let k in polyfill) {\n module.exports[k] = polyfill[k]\n }\n} else if (polyfill) {\n module.exports = polyfill\n}\n\n\n", "export default {};\n", "\nconst polyfill = require('fs')\n\nif (polyfill && polyfill.default) {\n module.exports = polyfill.default\n for (let k in polyfill) {\n module.exports[k] = polyfill[k]\n }\n} else if (polyfill) {\n module.exports = polyfill\n}\n\n\n", "/* eslint-disable node/no-deprecated-api */\n\nvar toString = Object.prototype.toString\n\nvar isModern = (\n typeof Buffer !== 'undefined' &&\n typeof Buffer.alloc === 'function' &&\n typeof Buffer.allocUnsafe === 'function' &&\n typeof Buffer.from === 'function'\n)\n\nfunction isArrayBuffer (input) {\n return toString.call(input).slice(8, -1) === 'ArrayBuffer'\n}\n\nfunction fromArrayBuffer (obj, byteOffset, length) {\n byteOffset >>>= 0\n\n var maxLength = obj.byteLength - byteOffset\n\n if (maxLength < 0) {\n throw new RangeError(\"'offset' is out of bounds\")\n }\n\n if (length === undefined) {\n length = maxLength\n } else {\n length >>>= 0\n\n if (length > maxLength) {\n throw new RangeError(\"'length' is out of bounds\")\n }\n }\n\n return isModern\n ? Buffer.from(obj.slice(byteOffset, byteOffset + length))\n : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length)))\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n return isModern\n ? Buffer.from(string, encoding)\n : new Buffer(string, encoding)\n}\n\nfunction bufferFrom (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (isArrayBuffer(value)) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n return isModern\n ? Buffer.from(value)\n : new Buffer(value)\n}\n\nmodule.exports = bufferFrom\n", "var SourceMapConsumer = require('source-map').SourceMapConsumer;\nvar path = require('path');\n\nvar fs;\ntry {\n fs = require('fs');\n if (!fs.existsSync || !fs.readFileSync) {\n // fs doesn't have all methods we need\n fs = null;\n }\n} catch (err) {\n /* nop */\n}\n\nvar bufferFrom = require('buffer-from');\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param {NodeModule} mod\n * @param {string} request\n */\nfunction dynamicRequire(mod, request) {\n return mod.require(request);\n}\n\n// Only install once if called multiple times\nvar errorFormatterInstalled = false;\nvar uncaughtShimInstalled = false;\n\n// If true, the caches are reset before a stack trace formatting operation\nvar emptyCacheBetweenOperations = false;\n\n// Supports {browser, node, auto}\nvar environment = \"auto\";\n\n// Maps a file path to a string containing the file contents\nvar fileContentsCache = {};\n\n// Maps a file path to a source map for that file\nvar sourceMapCache = {};\n\n// Regex for detecting source maps\nvar reSourceMap = /^data:application\\/json[^,]+base64,/;\n\n// Priority list of retrieve handlers\nvar retrieveFileHandlers = [];\nvar retrieveMapHandlers = [];\n\nfunction isInBrowser() {\n if (environment === \"browser\")\n return true;\n if (environment === \"node\")\n return false;\n return ((typeof window !== 'undefined') && (typeof XMLHttpRequest === 'function') && !(window.require && window.module && window.process && window.process.type === \"renderer\"));\n}\n\nfunction hasGlobalProcessEventEmitter() {\n return ((typeof process === 'object') && (process !== null) && (typeof process.on === 'function'));\n}\n\nfunction globalProcessVersion() {\n if ((typeof process === 'object') && (process !== null)) {\n return process.version;\n } else {\n return '';\n }\n}\n\nfunction globalProcessStderr() {\n if ((typeof process === 'object') && (process !== null)) {\n return process.stderr;\n }\n}\n\nfunction globalProcessExit(code) {\n if ((typeof process === 'object') && (process !== null) && (typeof process.exit === 'function')) {\n return process.exit(code);\n }\n}\n\nfunction handlerExec(list) {\n return function(arg) {\n for (var i = 0; i < list.length; i++) {\n var ret = list[i](arg);\n if (ret) {\n return ret;\n }\n }\n return null;\n };\n}\n\nvar retrieveFile = handlerExec(retrieveFileHandlers);\n\nretrieveFileHandlers.push(function(path) {\n // Trim the path to make sure there is no extra whitespace.\n path = path.trim();\n if (/^file:/.test(path)) {\n // existsSync/readFileSync can't handle file protocol, but once stripped, it works\n path = path.replace(/file:\\/\\/\\/(\\w:)?/, function(protocol, drive) {\n return drive ?\n '' : // file:///C:/dir/file -> C:/dir/file\n '/'; // file:///root-dir/file -> /root-dir/file\n });\n }\n if (path in fileContentsCache) {\n return fileContentsCache[path];\n }\n\n var contents = '';\n try {\n if (!fs) {\n // Use SJAX if we are in the browser\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path, /** async */ false);\n xhr.send(null);\n if (xhr.readyState === 4 && xhr.status === 200) {\n contents = xhr.responseText;\n }\n } else if (fs.existsSync(path)) {\n // Otherwise, use the filesystem\n contents = fs.readFileSync(path, 'utf8');\n }\n } catch (er) {\n /* ignore any errors */\n }\n\n return fileContentsCache[path] = contents;\n});\n\n// Support URLs relative to a directory, but be careful about a protocol prefix\n// in case we are in the browser (i.e. directories may start with \"http://\" or \"file:///\")\nfunction supportRelativeURL(file, url) {\n if (!file) return url;\n var dir = path.dirname(file);\n var match = /^\\w+:\\/\\/[^\\/]*/.exec(dir);\n var protocol = match ? match[0] : '';\n var startPath = dir.slice(protocol.length);\n if (protocol && /^\\/\\w\\:/.test(startPath)) {\n // handle file:///C:/ paths\n protocol += '/';\n return protocol + path.resolve(dir.slice(protocol.length), url).replace(/\\\\/g, '/');\n }\n return protocol + path.resolve(dir.slice(protocol.length), url);\n}\n\nfunction retrieveSourceMapURL(source) {\n var fileData;\n\n if (isInBrowser()) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', source, false);\n xhr.send(null);\n fileData = xhr.readyState === 4 ? xhr.responseText : null;\n\n // Support providing a sourceMappingURL via the SourceMap header\n var sourceMapHeader = xhr.getResponseHeader(\"SourceMap\") ||\n xhr.getResponseHeader(\"X-SourceMap\");\n if (sourceMapHeader) {\n return sourceMapHeader;\n }\n } catch (e) {\n }\n }\n\n // Get the URL of the source map\n fileData = retrieveFile(source);\n var re = /(?:\\/\\/[@#][\\s]*sourceMappingURL=([^\\s'\"]+)[\\s]*$)|(?:\\/\\*[@#][\\s]*sourceMappingURL=([^\\s*'\"]+)[\\s]*(?:\\*\\/)[\\s]*$)/mg;\n // Keep executing the search to find the *last* sourceMappingURL to avoid\n // picking up sourceMappingURLs from comments, strings, etc.\n var lastMatch, match;\n while (match = re.exec(fileData)) lastMatch = match;\n if (!lastMatch) return null;\n return lastMatch[1];\n};\n\n// Can be overridden by the retrieveSourceMap option to install. Takes a\n// generated source filename; returns a {map, optional url} object, or null if\n// there is no source map. The map field may be either a string or the parsed\n// JSON object (ie, it must be a valid argument to the SourceMapConsumer\n// constructor).\nvar retrieveSourceMap = handlerExec(retrieveMapHandlers);\nretrieveMapHandlers.push(function(source) {\n var sourceMappingURL = retrieveSourceMapURL(source);\n if (!sourceMappingURL) return null;\n\n // Read the contents of the source map\n var sourceMapData;\n if (reSourceMap.test(sourceMappingURL)) {\n // Support source map URL as a data url\n var rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(',') + 1);\n sourceMapData = bufferFrom(rawData, \"base64\").toString();\n sourceMappingURL = source;\n } else {\n // Support source map URLs relative to the source URL\n sourceMappingURL = supportRelativeURL(source, sourceMappingURL);\n sourceMapData = retrieveFile(sourceMappingURL);\n }\n\n if (!sourceMapData) {\n return null;\n }\n\n return {\n url: sourceMappingURL,\n map: sourceMapData\n };\n});\n\nfunction mapSourcePosition(position) {\n var sourceMap = sourceMapCache[position.source];\n if (!sourceMap) {\n // Call the (overrideable) retrieveSourceMap function to get the source map.\n var urlAndMap = retrieveSourceMap(position.source);\n if (urlAndMap) {\n sourceMap = sourceMapCache[position.source] = {\n url: urlAndMap.url,\n map: new SourceMapConsumer(urlAndMap.map)\n };\n\n // Load all sources stored inline with the source map into the file cache\n // to pretend like they are already loaded. They may not exist on disk.\n if (sourceMap.map.sourcesContent) {\n sourceMap.map.sources.forEach(function(source, i) {\n var contents = sourceMap.map.sourcesContent[i];\n if (contents) {\n var url = supportRelativeURL(sourceMap.url, source);\n fileContentsCache[url] = contents;\n }\n });\n }\n } else {\n sourceMap = sourceMapCache[position.source] = {\n url: null,\n map: null\n };\n }\n }\n\n // Resolve the source URL relative to the URL of the source map\n if (sourceMap && sourceMap.map && typeof sourceMap.map.originalPositionFor === 'function') {\n var originalPosition = sourceMap.map.originalPositionFor(position);\n\n // Only return the original position if a matching line was found. If no\n // matching line is found then we return position instead, which will cause\n // the stack trace to print the path and line for the compiled file. It is\n // better to give a precise location in the compiled file than a vague\n // location in the original file.\n if (originalPosition.source !== null) {\n originalPosition.source = supportRelativeURL(\n sourceMap.url, originalPosition.source);\n return originalPosition;\n }\n }\n\n return position;\n}\n\n// Parses code generated by FormatEvalOrigin(), a function inside V8:\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js\nfunction mapEvalOrigin(origin) {\n // Most eval() calls are in this format\n var match = /^eval at ([^(]+) \\((.+):(\\d+):(\\d+)\\)$/.exec(origin);\n if (match) {\n var position = mapSourcePosition({\n source: match[2],\n line: +match[3],\n column: match[4] - 1\n });\n return 'eval at ' + match[1] + ' (' + position.source + ':' +\n position.line + ':' + (position.column + 1) + ')';\n }\n\n // Parse nested eval() calls using recursion\n match = /^eval at ([^(]+) \\((.+)\\)$/.exec(origin);\n if (match) {\n return 'eval at ' + match[1] + ' (' + mapEvalOrigin(match[2]) + ')';\n }\n\n // Make sure we still return useful information if we didn't find anything\n return origin;\n}\n\n// This is copied almost verbatim from the V8 source code at\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js. The\n// implementation of wrapCallSite() used to just forward to the actual source\n// code of CallSite.prototype.toString but unfortunately a new release of V8\n// did something to the prototype chain and broke the shim. The only fix I\n// could find was copy/paste.\nfunction CallSiteToString() {\n var fileName;\n var fileLocation = \"\";\n if (this.isNative()) {\n fileLocation = \"native\";\n } else {\n fileName = this.getScriptNameOrSourceURL();\n if (!fileName && this.isEval()) {\n fileLocation = this.getEvalOrigin();\n fileLocation += \", \"; // Expecting source position to follow.\n }\n\n if (fileName) {\n fileLocation += fileName;\n } else {\n // Source code does not originate from a file and is not native, but we\n // can still get the source position inside the source string, e.g. in\n // an eval string.\n fileLocation += \"\";\n }\n var lineNumber = this.getLineNumber();\n if (lineNumber != null) {\n fileLocation += \":\" + lineNumber;\n var columnNumber = this.getColumnNumber();\n if (columnNumber) {\n fileLocation += \":\" + columnNumber;\n }\n }\n }\n\n var line = \"\";\n var functionName = this.getFunctionName();\n var addSuffix = true;\n var isConstructor = this.isConstructor();\n var isMethodCall = !(this.isToplevel() || isConstructor);\n if (isMethodCall) {\n var typeName = this.getTypeName();\n // Fixes shim to be backward compatable with Node v0 to v4\n if (typeName === \"[object Object]\") {\n typeName = \"null\";\n }\n var methodName = this.getMethodName();\n if (functionName) {\n if (typeName && functionName.indexOf(typeName) != 0) {\n line += typeName + \".\";\n }\n line += functionName;\n if (methodName && functionName.indexOf(\".\" + methodName) != functionName.length - methodName.length - 1) {\n line += \" [as \" + methodName + \"]\";\n }\n } else {\n line += typeName + \".\" + (methodName || \"\");\n }\n } else if (isConstructor) {\n line += \"new \" + (functionName || \"\");\n } else if (functionName) {\n line += functionName;\n } else {\n line += fileLocation;\n addSuffix = false;\n }\n if (addSuffix) {\n line += \" (\" + fileLocation + \")\";\n }\n return line;\n}\n\nfunction cloneCallSite(frame) {\n var object = {};\n Object.getOwnPropertyNames(Object.getPrototypeOf(frame)).forEach(function(name) {\n object[name] = /^(?:is|get)/.test(name) ? function() { return frame[name].call(frame); } : frame[name];\n });\n object.toString = CallSiteToString;\n return object;\n}\n\nfunction wrapCallSite(frame, state) {\n // provides interface backward compatibility\n if (state === undefined) {\n state = { nextPosition: null, curPosition: null }\n }\n if(frame.isNative()) {\n state.curPosition = null;\n return frame;\n }\n\n // Most call sites will return the source file from getFileName(), but code\n // passed to eval() ending in \"//# sourceURL=...\" will return the source file\n // from getScriptNameOrSourceURL() instead\n var source = frame.getFileName() || frame.getScriptNameOrSourceURL();\n if (source) {\n var line = frame.getLineNumber();\n var column = frame.getColumnNumber() - 1;\n\n // Fix position in Node where some (internal) code is prepended.\n // See https://github.com/evanw/node-source-map-support/issues/36\n // Header removed in node at ^10.16 || >=11.11.0\n // v11 is not an LTS candidate, we can just test the one version with it.\n // Test node versions for: 10.16-19, 10.20+, 12-19, 20-99, 100+, or 11.11\n var noHeader = /^v(10\\.1[6-9]|10\\.[2-9][0-9]|10\\.[0-9]{3,}|1[2-9]\\d*|[2-9]\\d|\\d{3,}|11\\.11)/;\n var headerLength = noHeader.test(globalProcessVersion()) ? 0 : 62;\n if (line === 1 && column > headerLength && !isInBrowser() && !frame.isEval()) {\n column -= headerLength;\n }\n\n var position = mapSourcePosition({\n source: source,\n line: line,\n column: column\n });\n state.curPosition = position;\n frame = cloneCallSite(frame);\n var originalFunctionName = frame.getFunctionName;\n frame.getFunctionName = function() {\n if (state.nextPosition == null) {\n return originalFunctionName();\n }\n return state.nextPosition.name || originalFunctionName();\n };\n frame.getFileName = function() { return position.source; };\n frame.getLineNumber = function() { return position.line; };\n frame.getColumnNumber = function() { return position.column + 1; };\n frame.getScriptNameOrSourceURL = function() { return position.source; };\n return frame;\n }\n\n // Code called using eval() needs special handling\n var origin = frame.isEval() && frame.getEvalOrigin();\n if (origin) {\n origin = mapEvalOrigin(origin);\n frame = cloneCallSite(frame);\n frame.getEvalOrigin = function() { return origin; };\n return frame;\n }\n\n // If we get here then we were unable to change the source position\n return frame;\n}\n\n// This function is part of the V8 stack trace API, for more info see:\n// https://v8.dev/docs/stack-trace-api\nfunction prepareStackTrace(error, stack) {\n if (emptyCacheBetweenOperations) {\n fileContentsCache = {};\n sourceMapCache = {};\n }\n\n var name = error.name || 'Error';\n var message = error.message || '';\n var errorString = name + \": \" + message;\n\n var state = { nextPosition: null, curPosition: null };\n var processedStack = [];\n for (var i = stack.length - 1; i >= 0; i--) {\n processedStack.push('\\n at ' + wrapCallSite(stack[i], state));\n state.nextPosition = state.curPosition;\n }\n state.curPosition = state.nextPosition = null;\n return errorString + processedStack.reverse().join('');\n}\n\n// Generate position and snippet of original source with pointer\nfunction getErrorSource(error) {\n var match = /\\n at [^(]+ \\((.*):(\\d+):(\\d+)\\)/.exec(error.stack);\n if (match) {\n var source = match[1];\n var line = +match[2];\n var column = +match[3];\n\n // Support the inline sourceContents inside the source map\n var contents = fileContentsCache[source];\n\n // Support files on disk\n if (!contents && fs && fs.existsSync(source)) {\n try {\n contents = fs.readFileSync(source, 'utf8');\n } catch (er) {\n contents = '';\n }\n }\n\n // Format the line from the original source code like node does\n if (contents) {\n var code = contents.split(/(?:\\r\\n|\\r|\\n)/)[line - 1];\n if (code) {\n return source + ':' + line + '\\n' + code + '\\n' +\n new Array(column).join(' ') + '^';\n }\n }\n }\n return null;\n}\n\nfunction printErrorAndExit (error) {\n var source = getErrorSource(error);\n\n // Ensure error is printed synchronously and not truncated\n var stderr = globalProcessStderr();\n if (stderr && stderr._handle && stderr._handle.setBlocking) {\n stderr._handle.setBlocking(true);\n }\n\n if (source) {\n console.error();\n console.error(source);\n }\n\n console.error(error.stack);\n globalProcessExit(1);\n}\n\nfunction shimEmitUncaughtException () {\n var origEmit = process.emit;\n\n process.emit = function (type) {\n if (type === 'uncaughtException') {\n var hasStack = (arguments[1] && arguments[1].stack);\n var hasListeners = (this.listeners(type).length > 0);\n\n if (hasStack && !hasListeners) {\n return printErrorAndExit(arguments[1]);\n }\n }\n\n return origEmit.apply(this, arguments);\n };\n}\n\nvar originalRetrieveFileHandlers = retrieveFileHandlers.slice(0);\nvar originalRetrieveMapHandlers = retrieveMapHandlers.slice(0);\n\nexports.wrapCallSite = wrapCallSite;\nexports.getErrorSource = getErrorSource;\nexports.mapSourcePosition = mapSourcePosition;\nexports.retrieveSourceMap = retrieveSourceMap;\n\nexports.install = function(options) {\n options = options || {};\n\n if (options.environment) {\n environment = options.environment;\n if ([\"node\", \"browser\", \"auto\"].indexOf(environment) === -1) {\n throw new Error(\"environment \" + environment + \" was unknown. Available options are {auto, browser, node}\")\n }\n }\n\n // Allow sources to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveFile) {\n if (options.overrideRetrieveFile) {\n retrieveFileHandlers.length = 0;\n }\n\n retrieveFileHandlers.unshift(options.retrieveFile);\n }\n\n // Allow source maps to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveSourceMap) {\n if (options.overrideRetrieveSourceMap) {\n retrieveMapHandlers.length = 0;\n }\n\n retrieveMapHandlers.unshift(options.retrieveSourceMap);\n }\n\n // Support runtime transpilers that include inline source maps\n if (options.hookRequire && !isInBrowser()) {\n // Use dynamicRequire to avoid including in browser bundles\n var Module = dynamicRequire(module, 'module');\n var $compile = Module.prototype._compile;\n\n if (!$compile.__sourceMapSupport) {\n Module.prototype._compile = function(content, filename) {\n fileContentsCache[filename] = content;\n sourceMapCache[filename] = undefined;\n return $compile.call(this, content, filename);\n };\n\n Module.prototype._compile.__sourceMapSupport = true;\n }\n }\n\n // Configure options\n if (!emptyCacheBetweenOperations) {\n emptyCacheBetweenOperations = 'emptyCacheBetweenOperations' in options ?\n options.emptyCacheBetweenOperations : false;\n }\n\n // Install the error reformatter\n if (!errorFormatterInstalled) {\n errorFormatterInstalled = true;\n Error.prepareStackTrace = prepareStackTrace;\n }\n\n if (!uncaughtShimInstalled) {\n var installHandler = 'handleUncaughtExceptions' in options ?\n options.handleUncaughtExceptions : true;\n\n // Do not override 'uncaughtException' with our own handler in Node.js\n // Worker threads. Workers pass the error to the main thread as an event,\n // rather than printing something to stderr and exiting.\n try {\n // We need to use `dynamicRequire` because `require` on it's own will be optimized by WebPack/Browserify.\n var worker_threads = dynamicRequire(module, 'worker_threads');\n if (worker_threads.isMainThread === false) {\n installHandler = false;\n }\n } catch(e) {}\n\n // Provide the option to not install the uncaught exception handler. This is\n // to support other uncaught exception handlers (in test frameworks, for\n // example). If this handler is not installed and there are no other uncaught\n // exception handlers, uncaught exceptions will be caught by node's built-in\n // exception handler and the process will still be terminated. However, the\n // generated JavaScript code will be shown above the stack trace instead of\n // the original source code.\n if (installHandler && hasGlobalProcessEventEmitter()) {\n uncaughtShimInstalled = true;\n shimEmitUncaughtException();\n }\n }\n};\n\nexports.resetRetrieveHandlers = function() {\n retrieveFileHandlers.length = 0;\n retrieveMapHandlers.length = 0;\n\n retrieveFileHandlers = originalRetrieveFileHandlers.slice(0);\n retrieveMapHandlers = originalRetrieveMapHandlers.slice(0);\n\n retrieveSourceMap = handlerExec(retrieveMapHandlers);\n retrieveFile = handlerExec(retrieveFileHandlers);\n}\n", "/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n", "import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport 'source-map-support/register';\nimport {FloatingPanel} from \"./FloatingPanel\";\n\n// TODO breadchris more logic can be added here to improve performance https://github.com/evanw/esbuild/blob/7d11ef1e24a3f0981e45e37200957268c4e22619/CHANGELOG.md?plain=1#L1009\n// new EventSource('/esbuild').addEventListener('change', () => location.reload())\n\nconst rootElem = document.createElement(\"div\");\nrootElem.setAttribute(\"id\", \"lunabrain-root\");\ndocument.body.appendChild(rootElem);\n\n// let shadowRoot = rootElem.attachShadow({mode: 'open'});\n// rootElem.style.width = '0';\n// rootElem.style.height = '0';\n// rootElem.style.padding = '0';\n// rootElem.style.margin = '0';\n//\n// shadowRoot.appendChild(rootElem);\n\nrootElem.style.width = '0';\nrootElem.style.height = '0';\nrootElem.style.padding = '0';\nrootElem.style.margin = '0';\n\nfunction injectScriptFile(scriptName: string) {\n const script = document.createElement('script');\n const u = chrome.runtime.getURL(scriptName);\n script.src = u;\n (document.head || document.documentElement).appendChild(script);\n script.onload = function() {\n this.remove();\n };\n}\n\n// Listen for the event from the injected script\ndocument.addEventListener('NEXT_JS_PARAMS', function (e) {\n const data = JSON.parse(e.detail);\n console.log('NEXT_JS_PARAMS', data);\n const msgStr: string = data[20][1];\n const msgData = JSON.parse(msgStr.substring(3));\n const messages = msgData[3]['chat']['messages']\n const formatted = messages.map((msg: any) => {\n return `[${msg['role']}] ${msg['content']}`;\n });\n console.log(formatted);\n});\n\n// TODO breadchris make configurable\n// injectScriptFile('injected.js');\n\nconst root = ReactDOM.createRoot(rootElem);\nroot.render(\n \n \n \n);", "require('./').install();\n", "import React, { useState, useEffect } from 'react';\nimport {contentGet, contentSave, TabContent} from \"./shared\";\nimport {NewSaveWizard} from \"./NewSaveWizard\";\nimport {urlContent} from \"./util\";\nimport {atom} from \"jotai\";\nimport {Content} from \"@/rpc/content/content_pb\";\nimport {useAtom} from \"jotai\";\n\ninterface FloatingPanelProps {}\n\n// TODO breadchris get page content https://github.com/omnivore-app/omnivore/blob/main/pkg/extension/src/scripts/content/prepare-content.js#L274\n\nexport const contentAtom = atom([]);\n\nconst floatingPanelStyle: React.CSSProperties = {\n padding: '10px',\n backgroundColor: 'white',\n border: '1px solid #ccc',\n color: 'black',\n maxHeight: '300px',\n overflowY: 'auto',\n zIndex: 9999,\n right: '10px',\n bottom: '10px',\n position: 'fixed',\n}\n\nconst getContent = (content: Content) => {\n switch (content.type.case) {\n case 'data':\n const d = content.type.value;\n switch (d.type.case) {\n case 'url':\n return d.type.value.url;\n }\n break;\n }\n return 'unknown';\n}\n\nexport const FloatingPanel: React.FC = () => {\n const [visible, setVisible] = useState(false);\n const [tabContent, setTabContent] = useState(undefined);\n const [content, setContent] = useAtom(contentAtom);\n\n useEffect(() => {\n const listener = (event: KeyboardEvent) => {\n if (event.ctrlKey && event.key === 'l') {\n event.preventDefault();\n setVisible(!visible);\n }\n }\n document.addEventListener('keydown', listener);\n return () => {\n document.removeEventListener('keydown', listener)\n }\n }, [visible]);\n\n useEffect(() => {\n chrome.runtime.sendMessage(\n { action: contentGet, data: \"TODO make url?\" },\n (response) => {\n if (response.data) {\n setTabContent(response.data);\n setVisible(true);\n }\n }\n );\n }, []);\n\n const saveContent = () => {\n if (!tabContent) {\n return;\n }\n const u = new URL(tabContent.from);\n const content = urlContent(tabContent.to, ['browser/history', u.host])\n chrome.runtime.sendMessage(\n { action: contentSave, data: content },\n (response) => {\n // if (response.error) {\n // console.error(response.error);\n // return;\n // }\n setVisible(false)\n }\n );\n setTabContent(undefined);\n }\n\n const dontSave = () => {\n setVisible(false);\n setTabContent(undefined);\n }\n\n if (content.length === 0 && !visible) {\n return null;\n }\n\n return (\n
\n
    \n {content.map((c) => {\n return (\n
  • \n \n {getContent(c)}\n
  • \n );\n })}\n
\n {tabContent ? (\n <>\n
Save this page?
\n
\n \n \n
\n \n ) : (\n \n )}\n
\n );\n};\n", "\nexport type TabContent = {\n from: string;\n to: string;\n}\nexport const contentGet = 'content/get';\nexport const contentSave = 'content/save';\nexport const historyGet = 'history/get';\nexport const historyDelete = 'history/delete';\n", "import React, {useEffect, useState} from \"react\";\nimport {contentService} from \"@/service\";\nimport {urlContent} from \"./util\";\nimport { Content } from \"@/rpc/content/content_pb\";\nimport {contentSave} from \"./shared\";\nimport toast from \"react-hot-toast\";\n\ninterface SaveWizardProps {}\n\nexport const NewSaveWizard: React.FC = () => {\n const [error, setError] = useState(undefined);\n const [title, setTitle] = useState(document.title || window.location.href);\n const [tag, setTag] = useState(undefined);\n const [tags, setTags] = useState(['browser/save']);\n const [url, setUrl] = useState(window.location.href);\n const [annotation, setAnnotation] = useState('');\n const [annotations, setAnnotations] = useState([]);\n const [selectedValue, setSelectedValue] = useState(\"tags\");\n const [analysis, setAnalysis] = useState(undefined);\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n document.addEventListener('mouseup', handleTextHighlight);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('mouseup', handleTextHighlight);\n };\n }, []);\n\n const handleTextHighlight = () => {\n const highlightedText = window.getSelection()?.toString();\n if (highlightedText) {\n setAnnotation(highlightedText);\n }\n };\n\n const handleAddTag = (addTag: string) => {\n setTags([...tags, addTag]);\n setTag('');\n }\n\n const handleAddAnnotation = () => {\n if (annotation) {\n setAnnotations([...annotations, annotation]);\n setAnnotation('');\n }\n };\n\n const analyze = async () => {\n setAnalysis(undefined)\n try {\n const res = await contentService.analyze(\n urlContent(url, tags)\n )\n console.log(res)\n // setAnalysis(res.content)\n } catch (e: any) {\n console.error(e)\n }\n }\n\n const handleSave = async () => {\n setError(undefined);\n const content = urlContent(url, tags);\n chrome.runtime.sendMessage(\n { action: contentSave, data: content.toJson() },\n (response) => {\n // if (response && response.error) {\n // setError(response.error);\n // }\n console.log('content', 'save response', response);\n }\n );\n }\n\n const handleRemove = (id: number) => {\n setAnnotations(annotations.filter((annotation, idx) => idx !== id));\n };\n\n const handleRemoveTag = (id: number) => {\n setAnnotations(tags.filter((annotation, idx) => idx !== id));\n };\n\n return (\n
\n setTitle(e.target.value)} />\n
\n \n \n
\n
\n {/* Analyze content */}\n {selectedValue === 'analyze' && (\n
\n \n {analysis && (\n
    \n {analysis.map((content, idx) => (\n content.tags.map((t, idx) => (\n \n ))\n ))}\n
\n )}\n
\n )}\n {selectedValue === 'tags' && (\n
\n setTag(e.target.value)} />\n \n {tags.length > 0 && (\n \n \n {tags.map((tag, idx) => (\n \n \n \n ))}\n \n
\n {tag}\n \n
\n )}\n
\n )}\n\n {/* Annotations content */}\n {selectedValue === 'annotations' && (\n
\n \n \n {annotations.length > 0 && (\n \n \n {annotations.map((annotation, idx) => (\n \n \n \n ))}\n \n
\n {annotation}\n \n
\n )}\n
\n )}\n
\n
\n \n
\n {error && (\n
{error}
\n )}\n
\n );\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Assert that condition is truthy or throw error (with message)\n */\nexport function assert(condition, msg) {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- we want the implicit conversion to boolean\n if (!condition) {\n throw new Error(msg);\n }\n}\nconst FLOAT32_MAX = 3.4028234663852886e38, FLOAT32_MIN = -3.4028234663852886e38, UINT32_MAX = 0xffffffff, INT32_MAX = 0x7fffffff, INT32_MIN = -0x80000000;\n/**\n * Assert a valid signed protobuf 32-bit integer.\n */\nexport function assertInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid int 32: \" + typeof arg);\n if (!Number.isInteger(arg) || arg > INT32_MAX || arg < INT32_MIN)\n throw new Error(\"invalid int 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer.\n */\nexport function assertUInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid uint 32: \" + typeof arg);\n if (!Number.isInteger(arg) || arg > UINT32_MAX || arg < 0)\n throw new Error(\"invalid uint 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid protobuf float value.\n */\nexport function assertFloat32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid float 32: \" + typeof arg);\n if (!Number.isFinite(arg))\n return;\n if (arg > FLOAT32_MAX || arg < FLOAT32_MIN)\n throw new Error(\"invalid float 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { assert } from \"./assert.js\";\nconst enumTypeSymbol = Symbol(\"@bufbuild/protobuf/enum-type\");\n/**\n * Get reflection information from a generated enum.\n * If this function is called on something other than a generated\n * enum, it raises an error.\n */\nexport function getEnumType(enumObject) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-explicit-any\n const t = enumObject[enumTypeSymbol];\n assert(t, \"missing enum type on enum object\");\n return t; // eslint-disable-line @typescript-eslint/no-unsafe-return\n}\n/**\n * Sets reflection information on a generated enum.\n */\nexport function setEnumType(enumObject, typeName, values, opt) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n enumObject[enumTypeSymbol] = makeEnumType(typeName, values.map((v) => ({\n no: v.no,\n name: v.name,\n localName: enumObject[v.no],\n })), opt);\n}\n/**\n * Create a new EnumType with the given values.\n */\nexport function makeEnumType(typeName, values, \n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n_opt) {\n const names = Object.create(null);\n const numbers = Object.create(null);\n const normalValues = [];\n for (const value of values) {\n // We do not surface options at this time\n // const value: EnumValueInfo = {...v, options: v.options ?? emptyReadonlyObject};\n const n = normalizeEnumValue(value);\n normalValues.push(n);\n names[value.name] = n;\n numbers[value.no] = n;\n }\n return {\n typeName,\n values: normalValues,\n // We do not surface options at this time\n // options: opt?.options ?? Object.create(null),\n findName(name) {\n return names[name];\n },\n findNumber(no) {\n return numbers[no];\n },\n };\n}\n/**\n * Create a new enum object with the given values.\n * Sets reflection information.\n */\nexport function makeEnum(typeName, values, opt) {\n const enumObject = {};\n for (const value of values) {\n const n = normalizeEnumValue(value);\n enumObject[n.localName] = n.no;\n enumObject[n.no] = n.localName;\n }\n setEnumType(enumObject, typeName, values, opt);\n return enumObject;\n}\nfunction normalizeEnumValue(value) {\n if (\"localName\" in value) {\n return value;\n }\n return Object.assign(Object.assign({}, value), { localName: value.name });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Message is the base class of every message, generated, or created at\n * runtime.\n *\n * It is _not_ safe to extend this class. If you want to create a message at\n * run time, use proto3.makeMessageType().\n */\nexport class Message {\n /**\n * Compare with a message of the same type.\n */\n equals(other) {\n return this.getType().runtime.util.equals(this.getType(), this, other);\n }\n /**\n * Create a deep copy.\n */\n clone() {\n return this.getType().runtime.util.clone(this);\n }\n /**\n * Parse from binary data, merging fields.\n *\n * Repeated fields are appended. Map entries are added, overwriting\n * existing keys.\n *\n * If a message field is already present, it will be merged with the\n * new data.\n */\n fromBinary(bytes, options) {\n const type = this.getType(), format = type.runtime.bin, opt = format.makeReadOptions(options);\n format.readMessage(this, opt.readerFactory(bytes), bytes.byteLength, opt);\n return this;\n }\n /**\n * Parse a message from a JSON value.\n */\n fromJson(jsonValue, options) {\n const type = this.getType(), format = type.runtime.json, opt = format.makeReadOptions(options);\n format.readMessage(type, jsonValue, opt, this);\n return this;\n }\n /**\n * Parse a message from a JSON string.\n */\n fromJsonString(jsonString, options) {\n let json;\n try {\n json = JSON.parse(jsonString);\n }\n catch (e) {\n throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${e instanceof Error ? e.message : String(e)}`);\n }\n return this.fromJson(json, options);\n }\n /**\n * Serialize the message to binary data.\n */\n toBinary(options) {\n const type = this.getType(), bin = type.runtime.bin, opt = bin.makeWriteOptions(options), writer = opt.writerFactory();\n bin.writeMessage(this, writer, opt);\n return writer.finish();\n }\n /**\n * Serialize the message to a JSON value, a JavaScript value that can be\n * passed to JSON.stringify().\n */\n toJson(options) {\n const type = this.getType(), json = type.runtime.json, opt = json.makeWriteOptions(options);\n return json.writeMessage(this, opt);\n }\n /**\n * Serialize the message to a JSON string.\n */\n toJsonString(options) {\n var _a;\n const value = this.toJson(options);\n return JSON.stringify(value, null, (_a = options === null || options === void 0 ? void 0 : options.prettySpaces) !== null && _a !== void 0 ? _a : 0);\n }\n /**\n * Override for serialization behavior. This will be invoked when calling\n * JSON.stringify on this message (i.e. JSON.stringify(msg)).\n *\n * Note that this will not serialize google.protobuf.Any with a packed\n * message because the protobuf JSON format specifies that it needs to be\n * unpacked, and this is only possible with a type registry to look up the\n * message type. As a result, attempting to serialize a message with this\n * type will throw an Error.\n *\n * This method is protected because you should not need to invoke it\n * directly -- instead use JSON.stringify or toJsonString for\n * stringified JSON. Alternatively, if actual JSON is desired, you should\n * use toJson.\n */\n toJSON() {\n return this.toJson({\n emitDefaultValues: true,\n });\n }\n /**\n * Retrieve the MessageType of this message - a singleton that represents\n * the protobuf message declaration and provides metadata for reflection-\n * based operations.\n */\n getType() {\n // Any class that extends Message _must_ provide a complete static\n // implementation of MessageType.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return\n return Object.getPrototypeOf(this).constructor;\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\n/**\n * Create a new message type using the given runtime.\n */\nexport function makeMessageType(runtime, typeName, fields, opt) {\n var _a;\n const localName = (_a = opt === null || opt === void 0 ? void 0 : opt.localName) !== null && _a !== void 0 ? _a : typeName.substring(typeName.lastIndexOf(\".\") + 1);\n const type = {\n [localName]: function (data) {\n runtime.util.initFields(this);\n runtime.util.initPartial(data, this);\n },\n }[localName];\n Object.setPrototypeOf(type.prototype, new Message());\n Object.assign(type, {\n runtime,\n typeName,\n fields: runtime.util.newFieldList(fields),\n fromBinary(bytes, options) {\n return new type().fromBinary(bytes, options);\n },\n fromJson(jsonValue, options) {\n return new type().fromJson(jsonValue, options);\n },\n fromJsonString(jsonString, options) {\n return new type().fromJsonString(jsonString, options);\n },\n equals(a, b) {\n return runtime.util.equals(type, a, b);\n },\n });\n return type;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { getEnumType, makeEnum, makeEnumType } from \"./enum.js\";\nimport { makeMessageType } from \"./message-type.js\";\nexport function makeProtoRuntime(syntax, json, bin, util) {\n return {\n syntax,\n json,\n bin,\n util,\n makeMessageType(typeName, fields, opt) {\n return makeMessageType(this, typeName, fields, opt);\n },\n makeEnum,\n makeEnumType,\n getEnumType,\n };\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Scalar value types. This is a subset of field types declared by protobuf\n * enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE\n * are omitted, but the numerical values are identical.\n */\nexport var ScalarType;\n(function (ScalarType) {\n // 0 is reserved for errors.\n // Order is weird for historical reasons.\n ScalarType[ScalarType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n ScalarType[ScalarType[\"FLOAT\"] = 2] = \"FLOAT\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT64\"] = 3] = \"INT64\";\n ScalarType[ScalarType[\"UINT64\"] = 4] = \"UINT64\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT32\"] = 5] = \"INT32\";\n ScalarType[ScalarType[\"FIXED64\"] = 6] = \"FIXED64\";\n ScalarType[ScalarType[\"FIXED32\"] = 7] = \"FIXED32\";\n ScalarType[ScalarType[\"BOOL\"] = 8] = \"BOOL\";\n ScalarType[ScalarType[\"STRING\"] = 9] = \"STRING\";\n // Tag-delimited aggregate.\n // Group type is deprecated and not supported in proto3. However, Proto3\n // implementations should still be able to parse the group wire format and\n // treat group fields as unknown fields.\n // TYPE_GROUP = 10,\n // TYPE_MESSAGE = 11, // Length-delimited aggregate.\n // New in version 2.\n ScalarType[ScalarType[\"BYTES\"] = 12] = \"BYTES\";\n ScalarType[ScalarType[\"UINT32\"] = 13] = \"UINT32\";\n // TYPE_ENUM = 14,\n ScalarType[ScalarType[\"SFIXED32\"] = 15] = \"SFIXED32\";\n ScalarType[ScalarType[\"SFIXED64\"] = 16] = \"SFIXED64\";\n ScalarType[ScalarType[\"SINT32\"] = 17] = \"SINT32\";\n ScalarType[ScalarType[\"SINT64\"] = 18] = \"SINT64\";\n})(ScalarType || (ScalarType = {}));\n/**\n * JavaScript representation of fields with 64 bit integral types (int64, uint64,\n * sint64, fixed64, sfixed64).\n *\n * This is a subset of google.protobuf.FieldOptions.JSType, which defines JS_NORMAL,\n * JS_STRING, and JS_NUMBER. Protobuf-ES uses BigInt by default, but will use\n * String if `[jstype = JS_STRING]` is specified.\n *\n * ```protobuf\n * uint64 field_a = 1; // BigInt\n * uint64 field_b = 2 [jstype = JS_NORMAL]; // BigInt\n * uint64 field_b = 2 [jstype = JS_NUMBER]; // BigInt\n * uint64 field_b = 2 [jstype = JS_STRING]; // String\n * ```\n */\nexport var LongType;\n(function (LongType) {\n /**\n * Use JavaScript BigInt.\n */\n LongType[LongType[\"BIGINT\"] = 0] = \"BIGINT\";\n /**\n * Use JavaScript String.\n *\n * Field option `[jstype = JS_STRING]`.\n */\n LongType[LongType[\"STRING\"] = 1] = \"STRING\";\n})(LongType || (LongType = {}));\n", "// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nexport function varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nexport function varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = (bits.hi & 0x80000000);\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1FFFFF) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xFFFFFF;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xFFFFFF;\n const high = (hi >> 16) & 0xFFFF;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + (mid * 6777216) + (high * 6710656);\n let digitB = mid + (high * 8147497);\n let digitC = (high * 2);\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return digitC.toString() + decimalFrom1e7WithLeadingZeros(digitB) +\n decimalFrom1e7WithLeadingZeros(digitA);\n}\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nexport function varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nexport function varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { assert } from \"./private/assert.js\";\nimport { int64FromString, int64ToString, uInt64ToString, } from \"./google/varint.js\";\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" &&\n typeof dv.getBigInt64 === \"function\" &&\n typeof dv.getBigUint64 === \"function\" &&\n typeof dv.setBigInt64 === \"function\" &&\n typeof dv.setBigUint64 === \"function\" &&\n (typeof process != \"object\" ||\n typeof process.env != \"object\" ||\n process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\"), MAX = BigInt(\"9223372036854775807\"), UMIN = BigInt(\"0\"), UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(`int64 invalid: ${value}`);\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(`uint64 invalid: ${value}`);\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n },\n };\n }\n const assertInt64String = (value) => assert(/^-?[0-9]+$/.test(value), `int64 invalid: ${value}`);\n const assertUInt64String = (value) => assert(/^[0-9]+$/.test(value), `uint64 invalid: ${value}`);\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return int64FromString(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return int64FromString(value);\n },\n dec(lo, hi) {\n return int64ToString(lo, hi);\n },\n uDec(lo, hi) {\n return uInt64ToString(lo, hi);\n },\n };\n}\nexport const protoInt64 = makeInt64Support();\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { varint32read, varint32write, varint64read, varint64write, } from \"./google/varint.js\";\nimport { assertFloat32, assertInt32, assertUInt32 } from \"./private/assert.js\";\nimport { protoInt64 } from \"./proto-int64.js\";\n/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/restrict-plus-operands */\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nexport var WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\nexport class BinaryWriter {\n constructor(textEncoder) {\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.textEncoder = textEncoder !== null && textEncoder !== void 0 ? textEncoder : new TextEncoder();\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.textEncoder.encode(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = protoInt64.enc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n let tc = protoInt64.enc(value), \n // zigzag encode\n sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n let tc = protoInt64.uEnc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nexport class BinaryReader {\n constructor(buf, textDecoder) {\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read; // dirty cast for `this` and access to protected `buf`\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n this.textDecoder = textDecoder !== null && textDecoder !== void 0 ? textDecoder : new TextDecoder();\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element on the wire and return the skipped data.\n * Supports WireType.StartGroup since v2.0.0-alpha.23.\n */\n skip(wireType) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // eslint-disable-next-line\n // @ts-ignore TS7029: Fallthrough case in switch\n case WireType.Bit64:\n this.pos += 4;\n // eslint-disable-next-line\n // @ts-ignore TS7029: Fallthrough case in switch\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n // From descriptor.proto: Group type is deprecated, not supported in proto3.\n // But we must still be able to parse and treat as unknown.\n let t;\n while ((t = this.tag()[1]) !== WireType.EndGroup) {\n this.skip(t);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n hi = (hi >>> 1) ^ s;\n return protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.textDecoder.decode(this.bytes());\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\nimport { ScalarType } from \"../field.js\";\n/**\n * Wrap a primitive message field value in its corresponding wrapper\n * message. This function is idempotent.\n */\nexport function wrapField(type, value) {\n if (value instanceof Message || !type.fieldWrapper) {\n return value;\n }\n return type.fieldWrapper.wrapField(value);\n}\n/**\n * If the given field uses one of the well-known wrapper types, return\n * the primitive type it wraps.\n */\nexport function getUnwrappedFieldType(field) {\n if (field.fieldKind !== \"message\") {\n return undefined;\n }\n if (field.repeated) {\n return undefined;\n }\n if (field.oneof != undefined) {\n return undefined;\n }\n return wktWrapperToScalarType[field.message.typeName];\n}\nconst wktWrapperToScalarType = {\n \"google.protobuf.DoubleValue\": ScalarType.DOUBLE,\n \"google.protobuf.FloatValue\": ScalarType.FLOAT,\n \"google.protobuf.Int64Value\": ScalarType.INT64,\n \"google.protobuf.UInt64Value\": ScalarType.UINT64,\n \"google.protobuf.Int32Value\": ScalarType.INT32,\n \"google.protobuf.UInt32Value\": ScalarType.UINT32,\n \"google.protobuf.BoolValue\": ScalarType.BOOL,\n \"google.protobuf.StringValue\": ScalarType.STRING,\n \"google.protobuf.BytesValue\": ScalarType.BYTES,\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { LongType, ScalarType } from \"../field.js\";\nimport { WireType } from \"../binary-encoding.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Returns true if both scalar values are equal.\n */\nexport function scalarEquals(type, a, b) {\n if (a === b) {\n // This correctly matches equal values except BYTES and (possibly) 64-bit integers.\n return true;\n }\n // Special case BYTES - we need to compare each byte individually\n if (type == ScalarType.BYTES) {\n if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n // Special case 64-bit integers - we support number, string and bigint representation.\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (type) {\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // Loose comparison will match between 0n, 0 and \"0\".\n return a == b;\n }\n // Anything that hasn't been caught by strict comparison or special cased\n // BYTES and 64-bit integers is not equal.\n return false;\n}\n/**\n * Returns the default value for the given scalar type, following\n * proto3 semantics.\n */\nexport function scalarDefaultValue(type, longType) {\n switch (type) {\n case ScalarType.BOOL:\n return false;\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n return longType == 0 ? protoInt64.zero : \"0\";\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n return 0.0;\n case ScalarType.BYTES:\n return new Uint8Array(0);\n case ScalarType.STRING:\n return \"\";\n default:\n // Handles INT32, UINT32, SINT32, FIXED32, SFIXED32.\n // We do not use individual cases to save a few bytes code size.\n return 0;\n }\n}\n/**\n * Get information for writing a scalar value.\n *\n * Returns tuple:\n * [0]: appropriate WireType\n * [1]: name of the appropriate method of IBinaryWriter\n * [2]: whether the given value is a default value for proto3 semantics\n *\n * If argument `value` is omitted, [2] is always false.\n */\nexport function scalarTypeInfo(type, value) {\n const isUndefined = value === undefined;\n let wireType = WireType.Varint;\n let isIntrinsicDefault = value === 0;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- INT32, UINT32, SINT32 are covered by the defaults\n switch (type) {\n case ScalarType.STRING:\n isIntrinsicDefault = isUndefined || !value.length;\n wireType = WireType.LengthDelimited;\n break;\n case ScalarType.BOOL:\n isIntrinsicDefault = value === false;\n break;\n case ScalarType.DOUBLE:\n wireType = WireType.Bit64;\n break;\n case ScalarType.FLOAT:\n wireType = WireType.Bit32;\n break;\n case ScalarType.INT64:\n isIntrinsicDefault = isUndefined || value == 0; // Loose comparison matches 0n, 0 and \"0\"\n break;\n case ScalarType.UINT64:\n isIntrinsicDefault = isUndefined || value == 0; // Loose comparison matches 0n, 0 and \"0\"\n break;\n case ScalarType.FIXED64:\n isIntrinsicDefault = isUndefined || value == 0; // Loose comparison matches 0n, 0 and \"0\"\n wireType = WireType.Bit64;\n break;\n case ScalarType.BYTES:\n isIntrinsicDefault = isUndefined || !value.byteLength;\n wireType = WireType.LengthDelimited;\n break;\n case ScalarType.FIXED32:\n wireType = WireType.Bit32;\n break;\n case ScalarType.SFIXED32:\n wireType = WireType.Bit32;\n break;\n case ScalarType.SFIXED64:\n isIntrinsicDefault = isUndefined || value == 0;\n wireType = WireType.Bit64;\n break;\n case ScalarType.SINT64:\n isIntrinsicDefault = isUndefined || value == 0;\n break;\n }\n const method = ScalarType[type].toLowerCase();\n return [wireType, method, isUndefined || isIntrinsicDefault];\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { BinaryReader, BinaryWriter, WireType } from \"../binary-encoding.js\";\nimport { Message } from \"../message.js\";\nimport { LongType, ScalarType } from \"../field.js\";\nimport { wrapField } from \"./field-wrapper.js\";\nimport { scalarDefaultValue, scalarTypeInfo } from \"./scalars.js\";\nimport { assert } from \"./assert.js\";\n/* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unnecessary-condition, no-case-declarations, prefer-const */\nconst unknownFieldsSymbol = Symbol(\"@bufbuild/protobuf/unknown-fields\");\n// Default options for parsing binary data.\nconst readDefaults = {\n readUnknownFields: true,\n readerFactory: (bytes) => new BinaryReader(bytes),\n};\n// Default options for serializing binary data.\nconst writeDefaults = {\n writeUnknownFields: true,\n writerFactory: () => new BinaryWriter(),\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, readDefaults), options) : readDefaults;\n}\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, writeDefaults), options) : writeDefaults;\n}\nexport function makeBinaryFormatCommon() {\n return {\n makeReadOptions,\n makeWriteOptions,\n listUnknownFields(message) {\n var _a;\n return (_a = message[unknownFieldsSymbol]) !== null && _a !== void 0 ? _a : [];\n },\n discardUnknownFields(message) {\n delete message[unknownFieldsSymbol];\n },\n writeUnknownFields(message, writer) {\n const m = message;\n const c = m[unknownFieldsSymbol];\n if (c) {\n for (const f of c) {\n writer.tag(f.no, f.wireType).raw(f.data);\n }\n }\n },\n onUnknownField(message, no, wireType, data) {\n const m = message;\n if (!Array.isArray(m[unknownFieldsSymbol])) {\n m[unknownFieldsSymbol] = [];\n }\n m[unknownFieldsSymbol].push({ no, wireType, data });\n },\n readMessage(message, reader, lengthOrEndTagFieldNo, options, delimitedMessageEncoding) {\n const type = message.getType();\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n const end = delimitedMessageEncoding\n ? reader.len\n : reader.pos + lengthOrEndTagFieldNo;\n let fieldNo, wireType;\n while (reader.pos < end) {\n [fieldNo, wireType] = reader.tag();\n if (wireType == WireType.EndGroup) {\n break;\n }\n const field = type.fields.find(fieldNo);\n if (!field) {\n const data = reader.skip(wireType);\n if (options.readUnknownFields) {\n this.onUnknownField(message, fieldNo, wireType, data);\n }\n continue;\n }\n let target = message, repeated = field.repeated, localName = field.localName;\n if (field.oneof) {\n target = target[field.oneof.localName];\n if (target.case != localName) {\n delete target.value;\n }\n target.case = localName;\n localName = \"value\";\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n const scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n let read = readScalar;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n if (field.kind == \"scalar\" && field.L > 0) {\n read = readScalarLTString;\n }\n if (repeated) {\n let arr = target[localName]; // safe to assume presence of array, oneof cannot contain repeated values\n if (wireType == WireType.LengthDelimited &&\n scalarType != ScalarType.STRING &&\n scalarType != ScalarType.BYTES) {\n let e = reader.uint32() + reader.pos;\n while (reader.pos < e) {\n arr.push(read(reader, scalarType));\n }\n }\n else {\n arr.push(read(reader, scalarType));\n }\n }\n else {\n target[localName] = read(reader, scalarType);\n }\n break;\n case \"message\":\n const messageType = field.T;\n if (repeated) {\n // safe to assume presence of array, oneof cannot contain repeated values\n target[localName].push(readMessageField(reader, new messageType(), options, field));\n }\n else {\n if (target[localName] instanceof Message) {\n readMessageField(reader, target[localName], options, field);\n }\n else {\n target[localName] = readMessageField(reader, new messageType(), options, field);\n if (messageType.fieldWrapper &&\n !field.oneof &&\n !field.repeated) {\n target[localName] = messageType.fieldWrapper.unwrapField(target[localName]);\n }\n }\n }\n break;\n case \"map\":\n let [mapKey, mapVal] = readMapEntry(field, reader, options);\n // safe to assume presence of map object, oneof cannot contain repeated values\n target[localName][mapKey] = mapVal;\n break;\n }\n }\n if (delimitedMessageEncoding && // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n (wireType != WireType.EndGroup || fieldNo !== lengthOrEndTagFieldNo)) {\n throw new Error(`invalid end group tag`);\n }\n },\n };\n}\n// Read a message, avoiding MessageType.fromBinary() to re-use the\n// BinaryReadOptions and the IBinaryReader.\nfunction readMessageField(reader, message, options, field) {\n const format = message.getType().runtime.bin;\n const delimited = field === null || field === void 0 ? void 0 : field.delimited;\n format.readMessage(message, reader, delimited ? field === null || field === void 0 ? void 0 : field.no : reader.uint32(), // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n options, delimited);\n return message;\n}\n// Read a map field, expecting key field = 1, value field = 2\nfunction readMapEntry(field, reader, options) {\n const length = reader.uint32(), end = reader.pos + length;\n let key, val;\n while (reader.pos < end) {\n let [fieldNo] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = readScalar(reader, field.K);\n break;\n case 2:\n switch (field.V.kind) {\n case \"scalar\":\n val = readScalar(reader, field.V.T);\n break;\n case \"enum\":\n val = reader.int32();\n break;\n case \"message\":\n val = readMessageField(reader, new field.V.T(), options, undefined);\n break;\n }\n break;\n }\n }\n if (key === undefined) {\n let keyRaw = scalarDefaultValue(field.K, LongType.BIGINT);\n key =\n field.K == ScalarType.BOOL\n ? keyRaw.toString()\n : keyRaw;\n }\n if (typeof key != \"string\" && typeof key != \"number\") {\n key = key.toString();\n }\n if (val === undefined) {\n switch (field.V.kind) {\n case \"scalar\":\n val = scalarDefaultValue(field.V.T, LongType.BIGINT);\n break;\n case \"enum\":\n val = 0;\n break;\n case \"message\":\n val = new field.V.T();\n break;\n }\n }\n return [key, val];\n}\n// Read a scalar value, but return 64 bit integral types (int64, uint64,\n// sint64, fixed64, sfixed64) as string instead of bigint.\nexport function readScalarLTString(reader, type) {\n const v = readScalar(reader, type);\n return typeof v == \"bigint\" ? v.toString() : v;\n}\n// Does not use scalarTypeInfo() for better performance.\nfunction readScalar(reader, type) {\n switch (type) {\n case ScalarType.STRING:\n return reader.string();\n case ScalarType.BOOL:\n return reader.bool();\n case ScalarType.DOUBLE:\n return reader.double();\n case ScalarType.FLOAT:\n return reader.float();\n case ScalarType.INT32:\n return reader.int32();\n case ScalarType.INT64:\n return reader.int64();\n case ScalarType.UINT64:\n return reader.uint64();\n case ScalarType.FIXED64:\n return reader.fixed64();\n case ScalarType.BYTES:\n return reader.bytes();\n case ScalarType.FIXED32:\n return reader.fixed32();\n case ScalarType.SFIXED32:\n return reader.sfixed32();\n case ScalarType.SFIXED64:\n return reader.sfixed64();\n case ScalarType.SINT64:\n return reader.sint64();\n case ScalarType.UINT32:\n return reader.uint32();\n case ScalarType.SINT32:\n return reader.sint32();\n }\n}\nexport function writeMapEntry(writer, options, field, key, value) {\n writer.tag(field.no, WireType.LengthDelimited);\n writer.fork();\n // javascript only allows number or string for object properties\n // we convert from our representation to the protobuf type\n let keyValue = key;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- we deliberately handle just the special cases for map keys\n switch (field.K) {\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n keyValue = Number.parseInt(key);\n break;\n case ScalarType.BOOL:\n assert(key == \"true\" || key == \"false\");\n keyValue = key == \"true\";\n break;\n }\n // write key, expecting key field number = 1\n writeScalar(writer, field.K, 1, keyValue, true);\n // write value, expecting value field number = 2\n switch (field.V.kind) {\n case \"scalar\":\n writeScalar(writer, field.V.T, 2, value, true);\n break;\n case \"enum\":\n writeScalar(writer, ScalarType.INT32, 2, value, true);\n break;\n case \"message\":\n writer.tag(2, WireType.LengthDelimited).bytes(value.toBinary(options));\n break;\n }\n writer.join();\n}\nexport function writeMessageField(writer, options, field, value) {\n if (value !== undefined) {\n const message = wrapField(field.T, value);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (field === null || field === void 0 ? void 0 : field.delimited)\n writer\n .tag(field.no, WireType.StartGroup)\n .raw(message.toBinary(options))\n .tag(field.no, WireType.EndGroup);\n else\n writer\n .tag(field.no, WireType.LengthDelimited)\n .bytes(message.toBinary(options));\n }\n}\nexport function writeScalar(writer, type, fieldNo, value, emitIntrinsicDefault) {\n let [wireType, method, isIntrinsicDefault] = scalarTypeInfo(type, value);\n if (!isIntrinsicDefault || emitIntrinsicDefault) {\n writer.tag(fieldNo, wireType)[method](value);\n }\n}\nexport function writePacked(writer, type, fieldNo, value) {\n if (!value.length) {\n return;\n }\n writer.tag(fieldNo, WireType.LengthDelimited).fork();\n let [, method] = scalarTypeInfo(type);\n for (let i = 0; i < value.length; i++) {\n writer[method](value[i]);\n }\n writer.join();\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ScalarType } from \"../field.js\";\nimport { makeBinaryFormatCommon, writeMapEntry, writeMessageField, writePacked, writeScalar, } from \"./binary-format-common.js\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions, prefer-const, no-case-declarations */\nexport function makeBinaryFormatProto3() {\n return Object.assign(Object.assign({}, makeBinaryFormatCommon()), { writeMessage(message, writer, options) {\n const type = message.getType();\n for (const field of type.fields.byNumber()) {\n let value, // this will be our field value, whether it is member of a oneof or regular field\n repeated = field.repeated, localName = field.localName;\n if (field.oneof) {\n const oneof = message[field.oneof.localName];\n if (oneof.case !== localName) {\n continue; // field is not selected, skip\n }\n value = oneof.value;\n }\n else {\n value = message[localName];\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (repeated) {\n if (field.packed) {\n writePacked(writer, scalarType, field.no, value);\n }\n else {\n for (const item of value) {\n writeScalar(writer, scalarType, field.no, item, true);\n }\n }\n }\n else {\n if (value !== undefined) {\n writeScalar(writer, scalarType, field.no, value, !!field.oneof || field.opt);\n }\n }\n break;\n case \"message\":\n if (repeated) {\n for (const item of value) {\n writeMessageField(writer, options, field, item);\n }\n }\n else {\n writeMessageField(writer, options, field, value);\n }\n break;\n case \"map\":\n for (const [key, val] of Object.entries(value)) {\n writeMapEntry(writer, options, field, key, val);\n }\n break;\n }\n }\n if (options.writeUnknownFields) {\n this.writeUnknownFields(message, writer);\n }\n return writer;\n } });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unnecessary-condition, prefer-const */\n// lookup table from base64 character to byte\nlet encTable = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".split(\"\");\n// lookup table from base64 character *code* to byte because lookup by number is fast\nlet decTable = [];\nfor (let i = 0; i < encTable.length; i++)\n decTable[encTable[i].charCodeAt(0)] = i;\n// support base64url variants\ndecTable[\"-\".charCodeAt(0)] = encTable.indexOf(\"+\");\ndecTable[\"_\".charCodeAt(0)] = encTable.indexOf(\"/\");\nexport const protoBase64 = {\n /**\n * Decodes a base64 string to a byte array.\n *\n * - ignores white-space, including line breaks and tabs\n * - allows inner padding (can decode concatenated base64 strings)\n * - does not require padding\n * - understands base64url encoding:\n * \"-\" instead of \"+\",\n * \"_\" instead of \"/\",\n * no padding\n */\n dec(base64Str) {\n // estimate byte size, not accounting for inner padding and whitespace\n let es = (base64Str.length * 3) / 4;\n if (base64Str[base64Str.length - 2] == \"=\")\n es -= 2;\n else if (base64Str[base64Str.length - 1] == \"=\")\n es -= 1;\n let bytes = new Uint8Array(es), bytePos = 0, // position in byte array\n groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // previous byte\n for (let i = 0; i < base64Str.length; i++) {\n b = decTable[base64Str.charCodeAt(i)];\n if (b === undefined) {\n switch (base64Str[i]) {\n // @ts-ignore TS7029: Fallthrough case in switch\n case \"=\":\n groupPos = 0; // reset state when padding found\n // @ts-ignore TS7029: Fallthrough case in switch\n case \"\\n\":\n case \"\\r\":\n case \"\\t\":\n case \" \":\n continue; // skip white-space, and padding\n default:\n throw Error(\"invalid base64 string.\");\n }\n }\n switch (groupPos) {\n case 0:\n p = b;\n groupPos = 1;\n break;\n case 1:\n bytes[bytePos++] = (p << 2) | ((b & 48) >> 4);\n p = b;\n groupPos = 2;\n break;\n case 2:\n bytes[bytePos++] = ((p & 15) << 4) | ((b & 60) >> 2);\n p = b;\n groupPos = 3;\n break;\n case 3:\n bytes[bytePos++] = ((p & 3) << 6) | b;\n groupPos = 0;\n break;\n }\n }\n if (groupPos == 1)\n throw Error(\"invalid base64 string.\");\n return bytes.subarray(0, bytePos);\n },\n /**\n * Encode a byte array to a base64 string.\n */\n enc(bytes) {\n let base64 = \"\", groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // carry over from previous byte\n for (let i = 0; i < bytes.length; i++) {\n b = bytes[i];\n switch (groupPos) {\n case 0:\n base64 += encTable[b >> 2];\n p = (b & 3) << 4;\n groupPos = 1;\n break;\n case 1:\n base64 += encTable[p | (b >> 4)];\n p = (b & 15) << 2;\n groupPos = 2;\n break;\n case 2:\n base64 += encTable[p | (b >> 6)];\n base64 += encTable[b & 63];\n groupPos = 0;\n break;\n }\n }\n // add output padding\n if (groupPos) {\n base64 += encTable[p];\n base64 += \"=\";\n if (groupPos == 1)\n base64 += \"=\";\n }\n return base64;\n },\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\nimport { LongType, ScalarType } from \"../field.js\";\nimport { assert, assertFloat32, assertInt32, assertUInt32 } from \"./assert.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { protoBase64 } from \"../proto-base64.js\";\n/* eslint-disable no-case-declarations, @typescript-eslint/restrict-plus-operands,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\n// Default options for parsing JSON.\nconst jsonReadDefaults = {\n ignoreUnknownFields: false,\n};\n// Default options for serializing to JSON.\nconst jsonWriteDefaults = {\n emitDefaultValues: false,\n enumAsInteger: false,\n useProtoFieldName: false,\n prettySpaces: 0,\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, jsonReadDefaults), options) : jsonReadDefaults;\n}\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, jsonWriteDefaults), options) : jsonWriteDefaults;\n}\nexport function makeJsonFormatCommon(makeWriteField) {\n const writeField = makeWriteField(writeEnum, writeScalar);\n return {\n makeReadOptions,\n makeWriteOptions,\n readMessage(type, json, options, message) {\n if (json == null || Array.isArray(json) || typeof json != \"object\") {\n throw new Error(`cannot decode message ${type.typeName} from JSON: ${this.debug(json)}`);\n }\n message = message !== null && message !== void 0 ? message : new type();\n const oneofSeen = {};\n for (const [jsonKey, jsonValue] of Object.entries(json)) {\n const field = type.fields.findJsonName(jsonKey);\n if (!field) {\n if (!options.ignoreUnknownFields) {\n throw new Error(`cannot decode message ${type.typeName} from JSON: key \"${jsonKey}\" is unknown`);\n }\n continue;\n }\n let localName = field.localName;\n let target = message;\n if (field.oneof) {\n if (jsonValue === null && field.kind == \"scalar\") {\n // see conformance test Required.Proto3.JsonInput.OneofFieldNull{First,Second}\n continue;\n }\n const seen = oneofSeen[field.oneof.localName];\n if (seen) {\n throw new Error(`cannot decode message ${type.typeName} from JSON: multiple keys for oneof \"${field.oneof.name}\" present: \"${seen}\", \"${jsonKey}\"`);\n }\n oneofSeen[field.oneof.localName] = jsonKey;\n target = target[field.oneof.localName] = { case: localName };\n localName = \"value\";\n }\n if (field.repeated) {\n if (jsonValue === null) {\n continue;\n }\n if (!Array.isArray(jsonValue)) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`);\n }\n const targetArray = target[localName];\n for (const jsonItem of jsonValue) {\n if (jsonItem === null) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonItem)}`);\n }\n let val;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- \"map\" is invalid for repeated fields\n switch (field.kind) {\n case \"message\":\n val = field.T.fromJson(jsonItem, options);\n break;\n case \"enum\":\n val = readEnum(field.T, jsonItem, options.ignoreUnknownFields);\n if (val === undefined)\n continue;\n break;\n case \"scalar\":\n try {\n val = readScalar(field.T, jsonItem, field.L);\n }\n catch (e) {\n let m = `cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonItem)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n targetArray.push(val);\n }\n }\n else if (field.kind == \"map\") {\n if (jsonValue === null) {\n continue;\n }\n if (Array.isArray(jsonValue) || typeof jsonValue != \"object\") {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`);\n }\n const targetMap = target[localName];\n for (const [jsonMapKey, jsonMapValue] of Object.entries(jsonValue)) {\n if (jsonMapValue === null) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: map value null`);\n }\n let val;\n switch (field.V.kind) {\n case \"message\":\n val = field.V.T.fromJson(jsonMapValue, options);\n break;\n case \"enum\":\n val = readEnum(field.V.T, jsonMapValue, options.ignoreUnknownFields);\n if (val === undefined)\n continue;\n break;\n case \"scalar\":\n try {\n val = readScalar(field.V.T, jsonMapValue, LongType.BIGINT);\n }\n catch (e) {\n let m = `cannot decode map value for field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n try {\n targetMap[readScalar(field.K, field.K == ScalarType.BOOL\n ? jsonMapKey == \"true\"\n ? true\n : jsonMapKey == \"false\"\n ? false\n : jsonMapKey\n : jsonMapKey, LongType.BIGINT).toString()] = val;\n }\n catch (e) {\n let m = `cannot decode map key for field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n }\n }\n else {\n switch (field.kind) {\n case \"message\":\n const messageType = field.T;\n if (jsonValue === null &&\n messageType.typeName != \"google.protobuf.Value\") {\n if (field.oneof) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: null is invalid for oneof field \"${jsonKey}\"`);\n }\n continue;\n }\n if (target[localName] instanceof Message) {\n target[localName].fromJson(jsonValue, options);\n }\n else {\n target[localName] = messageType.fromJson(jsonValue, options);\n if (messageType.fieldWrapper && !field.oneof) {\n target[localName] = messageType.fieldWrapper.unwrapField(target[localName]);\n }\n }\n break;\n case \"enum\":\n const enumValue = readEnum(field.T, jsonValue, options.ignoreUnknownFields);\n if (enumValue !== undefined) {\n target[localName] = enumValue;\n }\n break;\n case \"scalar\":\n try {\n target[localName] = readScalar(field.T, jsonValue, field.L);\n }\n catch (e) {\n let m = `cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n }\n }\n return message;\n },\n writeMessage(message, options) {\n const type = message.getType();\n const json = {};\n let field;\n try {\n for (const member of type.fields.byMember()) {\n let jsonValue;\n if (member.kind == \"oneof\") {\n const oneof = message[member.localName];\n if (oneof.value === undefined) {\n continue;\n }\n field = member.findField(oneof.case);\n if (!field) {\n throw \"oneof case not found: \" + oneof.case;\n }\n jsonValue = writeField(field, oneof.value, options);\n }\n else {\n field = member;\n jsonValue = writeField(field, message[field.localName], options);\n }\n if (jsonValue !== undefined) {\n json[options.useProtoFieldName ? field.name : field.jsonName] =\n jsonValue;\n }\n }\n }\n catch (e) {\n const m = field\n ? `cannot encode field ${type.typeName}.${field.name} to JSON`\n : `cannot encode message ${type.typeName} to JSON`;\n const r = e instanceof Error ? e.message : String(e);\n throw new Error(m + (r.length > 0 ? `: ${r}` : \"\"));\n }\n return json;\n },\n readScalar,\n writeScalar,\n debug: debugJsonValue,\n };\n}\nfunction debugJsonValue(json) {\n if (json === null) {\n return \"null\";\n }\n switch (typeof json) {\n case \"object\":\n return Array.isArray(json) ? \"array\" : \"object\";\n case \"string\":\n return json.length > 100 ? \"string\" : `\"${json.split('\"').join('\\\\\"')}\"`;\n default:\n return String(json);\n }\n}\n// May throw an error. If the error message is non-blank, it should be shown.\n// It is up to the caller to provide context.\nfunction readScalar(type, json, longType) {\n // every valid case in the switch below returns, and every fall\n // through is regarded as a failure.\n switch (type) {\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n if (json === null)\n return 0.0;\n if (json === \"NaN\")\n return Number.NaN;\n if (json === \"Infinity\")\n return Number.POSITIVE_INFINITY;\n if (json === \"-Infinity\")\n return Number.NEGATIVE_INFINITY;\n if (json === \"\") {\n // empty string is not a number\n break;\n }\n if (typeof json == \"string\" && json.trim().length !== json.length) {\n // extra whitespace\n break;\n }\n if (typeof json != \"string\" && typeof json != \"number\") {\n break;\n }\n const float = Number(json);\n if (Number.isNaN(float)) {\n // not a number\n break;\n }\n if (!Number.isFinite(float)) {\n // infinity and -infinity are handled by string representation above, so this is an error\n break;\n }\n if (type == ScalarType.FLOAT)\n assertFloat32(float);\n return float;\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.UINT32:\n if (json === null)\n return 0;\n let int32;\n if (typeof json == \"number\")\n int32 = json;\n else if (typeof json == \"string\" && json.length > 0) {\n if (json.trim().length === json.length)\n int32 = Number(json);\n }\n if (int32 === undefined)\n break;\n if (type == ScalarType.UINT32)\n assertUInt32(int32);\n else\n assertInt32(int32);\n return int32;\n // int64, fixed64, uint64: JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n if (json === null)\n return protoInt64.zero;\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n const long = protoInt64.parse(json);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n return longType ? long.toString() : long;\n case ScalarType.FIXED64:\n case ScalarType.UINT64:\n if (json === null)\n return protoInt64.zero;\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n const uLong = protoInt64.uParse(json);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n return longType ? uLong.toString() : uLong;\n // bool:\n case ScalarType.BOOL:\n if (json === null)\n return false;\n if (typeof json !== \"boolean\")\n break;\n return json;\n // string:\n case ScalarType.STRING:\n if (json === null)\n return \"\";\n if (typeof json !== \"string\") {\n break;\n }\n // A string must always contain UTF-8 encoded or 7-bit ASCII.\n // We validate with encodeURIComponent, which appears to be the fastest widely available option.\n try {\n encodeURIComponent(json);\n }\n catch (e) {\n throw new Error(\"invalid UTF8\");\n }\n return json;\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n if (json === null || json === \"\")\n return new Uint8Array(0);\n if (typeof json !== \"string\")\n break;\n return protoBase64.dec(json);\n }\n throw new Error();\n}\nfunction readEnum(type, json, ignoreUnknownFields) {\n if (json === null) {\n // proto3 requires 0 to be default value for all enums\n return 0;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (typeof json) {\n case \"number\":\n if (Number.isInteger(json)) {\n return json;\n }\n break;\n case \"string\":\n const value = type.findName(json);\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n if (value || ignoreUnknownFields) {\n return value === null || value === void 0 ? void 0 : value.no;\n }\n break;\n }\n throw new Error(`cannot decode enum ${type.typeName} from JSON: ${debugJsonValue(json)}`);\n}\nfunction writeEnum(type, value, emitIntrinsicDefault, enumAsInteger) {\n var _a;\n if (value === undefined) {\n return value;\n }\n if (value === 0 && !emitIntrinsicDefault) {\n // proto3 requires 0 to be default value for all enums\n return undefined;\n }\n if (enumAsInteger) {\n return value;\n }\n if (type.typeName == \"google.protobuf.NullValue\") {\n return null;\n }\n const val = type.findNumber(value);\n return (_a = val === null || val === void 0 ? void 0 : val.name) !== null && _a !== void 0 ? _a : value; // if we don't know the enum value, just return the number\n}\nfunction writeScalar(type, value, emitIntrinsicDefault) {\n if (value === undefined) {\n return undefined;\n }\n switch (type) {\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n assert(typeof value == \"number\");\n return value != 0 || emitIntrinsicDefault ? value : undefined;\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.FLOAT:\n // assertFloat32(value);\n case ScalarType.DOUBLE: // eslint-disable-line no-fallthrough\n assert(typeof value == \"number\");\n if (Number.isNaN(value))\n return \"NaN\";\n if (value === Number.POSITIVE_INFINITY)\n return \"Infinity\";\n if (value === Number.NEGATIVE_INFINITY)\n return \"-Infinity\";\n return value !== 0 || emitIntrinsicDefault ? value : undefined;\n // string:\n case ScalarType.STRING:\n assert(typeof value == \"string\");\n return value.length > 0 || emitIntrinsicDefault ? value : undefined;\n // bool:\n case ScalarType.BOOL:\n assert(typeof value == \"boolean\");\n return value || emitIntrinsicDefault ? value : undefined;\n // JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n assert(typeof value == \"bigint\" ||\n typeof value == \"string\" ||\n typeof value == \"number\");\n // We use implicit conversion with `value != 0` to catch both 0n and \"0\"\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return emitIntrinsicDefault || value != 0\n ? value.toString(10)\n : undefined;\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n assert(value instanceof Uint8Array);\n return emitIntrinsicDefault || value.byteLength > 0\n ? protoBase64.enc(value)\n : undefined;\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { wrapField } from \"./field-wrapper.js\";\nimport { assert } from \"./assert.js\";\nimport { makeJsonFormatCommon } from \"./json-format-common.js\";\n/* eslint-disable no-case-declarations, @typescript-eslint/restrict-plus-operands,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nexport function makeJsonFormatProto3() {\n return makeJsonFormatCommon((writeEnum, writeScalar) => {\n return function writeField(field, value, options) {\n if (field.kind == \"map\") {\n const jsonObj = {};\n switch (field.V.kind) {\n case \"scalar\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n const val = writeScalar(field.V.T, entryValue, true);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"message\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n // JSON standard allows only (double quoted) string as property key\n jsonObj[entryKey.toString()] = entryValue.toJson(options);\n }\n break;\n case \"enum\":\n const enumType = field.V.T;\n for (const [entryKey, entryValue] of Object.entries(value)) {\n assert(entryValue === undefined || typeof entryValue == \"number\");\n const val = writeEnum(enumType, entryValue, true, options.enumAsInteger);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n }\n return options.emitDefaultValues || Object.keys(jsonObj).length > 0\n ? jsonObj\n : undefined;\n }\n else if (field.repeated) {\n const jsonArr = [];\n switch (field.kind) {\n case \"scalar\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeScalar(field.T, value[i], true));\n }\n break;\n case \"enum\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeEnum(field.T, value[i], true, options.enumAsInteger));\n }\n break;\n case \"message\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(wrapField(field.T, value[i]).toJson(options));\n }\n break;\n }\n return options.emitDefaultValues || jsonArr.length > 0\n ? jsonArr\n : undefined;\n }\n else {\n switch (field.kind) {\n case \"scalar\":\n return writeScalar(field.T, value, !!field.oneof || field.opt || options.emitDefaultValues);\n case \"enum\":\n return writeEnum(field.T, value, !!field.oneof || field.opt || options.emitDefaultValues, options.enumAsInteger);\n case \"message\":\n return value !== undefined\n ? wrapField(field.T, value).toJson(options)\n : undefined;\n }\n }\n };\n });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { setEnumType } from \"./enum.js\";\nimport { Message } from \"../message.js\";\nimport { ScalarType } from \"../field.js\";\nimport { scalarEquals } from \"./scalars.js\";\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-argument,no-case-declarations */\nexport function makeUtilCommon() {\n return {\n setEnumType,\n initPartial(source, target) {\n if (source === undefined) {\n return;\n }\n const type = target.getType();\n for (const member of type.fields.byMember()) {\n const localName = member.localName, t = target, s = source;\n if (s[localName] === undefined) {\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n const sk = s[localName].case;\n if (sk === undefined) {\n continue;\n }\n const sourceField = member.findField(sk);\n let val = s[localName].value;\n if (sourceField &&\n sourceField.kind == \"message\" &&\n !(val instanceof sourceField.T)) {\n val = new sourceField.T(val);\n }\n else if (sourceField &&\n sourceField.kind === \"scalar\" &&\n sourceField.T === ScalarType.BYTES) {\n val = toU8Arr(val);\n }\n t[localName] = { case: sk, value: val };\n break;\n case \"scalar\":\n case \"enum\":\n let copy = s[localName];\n if (member.T === ScalarType.BYTES) {\n copy = member.repeated\n ? copy.map(toU8Arr)\n : toU8Arr(copy);\n }\n t[localName] = copy;\n break;\n case \"map\":\n switch (member.V.kind) {\n case \"scalar\":\n case \"enum\":\n if (member.V.T === ScalarType.BYTES) {\n for (const [k, v] of Object.entries(s[localName])) {\n t[localName][k] = toU8Arr(v);\n }\n }\n else {\n Object.assign(t[localName], s[localName]);\n }\n break;\n case \"message\":\n const messageType = member.V.T;\n for (const k of Object.keys(s[localName])) {\n let val = s[localName][k];\n if (!messageType.fieldWrapper) {\n // We only take partial input for messages that are not a wrapper type.\n // For those messages, we recursively normalize the partial input.\n val = new messageType(val);\n }\n t[localName][k] = val;\n }\n break;\n }\n break;\n case \"message\":\n const mt = member.T;\n if (member.repeated) {\n t[localName] = s[localName].map((val) => val instanceof mt ? val : new mt(val));\n }\n else if (s[localName] !== undefined) {\n const val = s[localName];\n if (mt.fieldWrapper) {\n if (\n // We can't use BytesValue.typeName as that will create a circular import\n mt.typeName === \"google.protobuf.BytesValue\") {\n t[localName] = toU8Arr(val);\n }\n else {\n t[localName] = val;\n }\n }\n else {\n t[localName] = val instanceof mt ? val : new mt(val);\n }\n }\n break;\n }\n }\n },\n equals(type, a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return type.fields.byMember().every((m) => {\n const va = a[m.localName];\n const vb = b[m.localName];\n if (m.repeated) {\n if (va.length !== vb.length) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- repeated fields are never \"map\"\n switch (m.kind) {\n case \"message\":\n return va.every((a, i) => m.T.equals(a, vb[i]));\n case \"scalar\":\n return va.every((a, i) => scalarEquals(m.T, a, vb[i]));\n case \"enum\":\n return va.every((a, i) => scalarEquals(ScalarType.INT32, a, vb[i]));\n }\n throw new Error(`repeated cannot contain ${m.kind}`);\n }\n switch (m.kind) {\n case \"message\":\n return m.T.equals(va, vb);\n case \"enum\":\n return scalarEquals(ScalarType.INT32, va, vb);\n case \"scalar\":\n return scalarEquals(m.T, va, vb);\n case \"oneof\":\n if (va.case !== vb.case) {\n return false;\n }\n const s = m.findField(va.case);\n if (s === undefined) {\n return true;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- oneof fields are never \"map\"\n switch (s.kind) {\n case \"message\":\n return s.T.equals(va.value, vb.value);\n case \"enum\":\n return scalarEquals(ScalarType.INT32, va.value, vb.value);\n case \"scalar\":\n return scalarEquals(s.T, va.value, vb.value);\n }\n throw new Error(`oneof cannot contain ${s.kind}`);\n case \"map\":\n const keys = Object.keys(va).concat(Object.keys(vb));\n switch (m.V.kind) {\n case \"message\":\n const messageType = m.V.T;\n return keys.every((k) => messageType.equals(va[k], vb[k]));\n case \"enum\":\n return keys.every((k) => scalarEquals(ScalarType.INT32, va[k], vb[k]));\n case \"scalar\":\n const scalarType = m.V.T;\n return keys.every((k) => scalarEquals(scalarType, va[k], vb[k]));\n }\n break;\n }\n });\n },\n clone(message) {\n const type = message.getType(), target = new type(), any = target;\n for (const member of type.fields.byMember()) {\n const source = message[member.localName];\n let copy;\n if (member.repeated) {\n copy = source.map(cloneSingularField);\n }\n else if (member.kind == \"map\") {\n copy = any[member.localName];\n for (const [key, v] of Object.entries(source)) {\n copy[key] = cloneSingularField(v);\n }\n }\n else if (member.kind == \"oneof\") {\n const f = member.findField(source.case);\n copy = f\n ? { case: source.case, value: cloneSingularField(source.value) }\n : { case: undefined };\n }\n else {\n copy = cloneSingularField(source);\n }\n any[member.localName] = copy;\n }\n return target;\n },\n };\n}\n// clone a single field value - i.e. the element type of repeated fields, the value type of maps\nfunction cloneSingularField(value) {\n if (value === undefined) {\n return value;\n }\n if (value instanceof Message) {\n return value.clone();\n }\n if (value instanceof Uint8Array) {\n const c = new Uint8Array(value.byteLength);\n c.set(value);\n return c;\n }\n return value;\n}\n// converts any ArrayLike to Uint8Array if necessary.\nfunction toU8Arr(input) {\n return input instanceof Uint8Array ? input : new Uint8Array(input);\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nexport class InternalFieldList {\n constructor(fields, normalizer) {\n this._fields = fields;\n this._normalizer = normalizer;\n }\n findJsonName(jsonName) {\n if (!this.jsonNames) {\n const t = {};\n for (const f of this.list()) {\n t[f.jsonName] = t[f.name] = f;\n }\n this.jsonNames = t;\n }\n return this.jsonNames[jsonName];\n }\n find(fieldNo) {\n if (!this.numbers) {\n const t = {};\n for (const f of this.list()) {\n t[f.no] = f;\n }\n this.numbers = t;\n }\n return this.numbers[fieldNo];\n }\n list() {\n if (!this.all) {\n this.all = this._normalizer(this._fields);\n }\n return this.all;\n }\n byNumber() {\n if (!this.numbersAsc) {\n this.numbersAsc = this.list()\n .concat()\n .sort((a, b) => a.no - b.no);\n }\n return this.numbersAsc;\n }\n byMember() {\n if (!this.members) {\n this.members = [];\n const a = this.members;\n let o;\n for (const f of this.list()) {\n if (f.oneof) {\n if (f.oneof !== o) {\n o = f.oneof;\n a.push(o);\n }\n }\n else {\n a.push(f);\n }\n }\n }\n return this.members;\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Returns the name of a protobuf element in generated code.\n *\n * Field names - including oneofs - are converted to lowerCamelCase. For\n * messages, enumerations and services, the package name is stripped from\n * the type name. For nested messages and enumerations, the names are joined\n * with an underscore. For methods, the first character is made lowercase.\n */\nexport function localName(desc) {\n switch (desc.kind) {\n case \"field\":\n return localFieldName(desc.name, desc.oneof !== undefined);\n case \"oneof\":\n return localOneofName(desc.name);\n case \"enum\":\n case \"message\":\n case \"service\": {\n const pkg = desc.file.proto.package;\n const offset = pkg === undefined ? 0 : pkg.length + 1;\n const name = desc.typeName.substring(offset).replace(/\\./g, \"_\");\n // For services, we only care about safe identifiers, not safe object properties,\n // but we have shipped v1 with a bug that respected object properties, and we\n // do not want to introduce a breaking change, so we continue to escape for\n // safe object properties.\n // See https://github.com/bufbuild/protobuf-es/pull/391\n return safeObjectProperty(safeIdentifier(name));\n }\n case \"enum_value\": {\n const sharedPrefix = desc.parent.sharedPrefix;\n if (sharedPrefix === undefined) {\n return desc.name;\n }\n const name = desc.name.substring(sharedPrefix.length);\n return safeObjectProperty(name);\n }\n case \"rpc\": {\n let name = desc.name;\n if (name.length == 0) {\n return name;\n }\n name = name[0].toLowerCase() + name.substring(1);\n return safeObjectProperty(name);\n }\n }\n}\n/**\n * Returns the name of a field in generated code.\n */\nexport function localFieldName(protoName, inOneof) {\n const name = protoCamelCase(protoName);\n if (inOneof) {\n // oneof member names are not properties, but values of the `case` property.\n return name;\n }\n return safeObjectProperty(safeMessageProperty(name));\n}\n/**\n * Returns the name of a oneof group in generated code.\n */\nexport function localOneofName(protoName) {\n return localFieldName(protoName, false);\n}\n/**\n * Returns the JSON name for a protobuf field, exactly like protoc does.\n */\nexport const fieldJsonName = protoCamelCase;\n/**\n * Finds a prefix shared by enum values, for example `MY_ENUM_` for\n * `enum MyEnum {MY_ENUM_A=0; MY_ENUM_B=1;}`.\n */\nexport function findEnumSharedPrefix(enumName, valueNames) {\n const prefix = camelToSnakeCase(enumName) + \"_\";\n for (const name of valueNames) {\n if (!name.toLowerCase().startsWith(prefix)) {\n return undefined;\n }\n const shortName = name.substring(prefix.length);\n if (shortName.length == 0) {\n return undefined;\n }\n if (/^\\d/.test(shortName)) {\n // identifiers must not start with numbers\n return undefined;\n }\n }\n return prefix;\n}\n/**\n * Converts lowerCamelCase or UpperCamelCase into lower_snake_case.\n * This is used to find shared prefixes in an enum.\n */\nfunction camelToSnakeCase(camel) {\n return (camel.substring(0, 1) + camel.substring(1).replace(/[A-Z]/g, (c) => \"_\" + c)).toLowerCase();\n}\n/**\n * Converts snake_case to protoCamelCase according to the convention\n * used by protoc to convert a field name to a JSON name.\n */\nfunction protoCamelCase(snakeCase) {\n let capNext = false;\n const b = [];\n for (let i = 0; i < snakeCase.length; i++) {\n let c = snakeCase.charAt(i);\n switch (c) {\n case \"_\":\n capNext = true;\n break;\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n b.push(c);\n capNext = false;\n break;\n default:\n if (capNext) {\n capNext = false;\n c = c.toUpperCase();\n }\n b.push(c);\n break;\n }\n }\n return b.join(\"\");\n}\n/**\n * Names that cannot be used for identifiers, such as class names,\n * but _can_ be used for object properties.\n */\nconst reservedIdentifiers = new Set([\n // ECMAScript 2015 keywords\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"const\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"delete\",\n \"do\",\n \"else\",\n \"export\",\n \"extends\",\n \"false\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"import\",\n \"in\",\n \"instanceof\",\n \"new\",\n \"null\",\n \"return\",\n \"super\",\n \"switch\",\n \"this\",\n \"throw\",\n \"true\",\n \"try\",\n \"typeof\",\n \"var\",\n \"void\",\n \"while\",\n \"with\",\n \"yield\",\n // ECMAScript 2015 future reserved keywords\n \"enum\",\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n // Class name cannot be 'Object' when targeting ES5 with module CommonJS\n \"Object\",\n // TypeScript keywords that cannot be used for types (as opposed to variables)\n \"bigint\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n // Identifiers reserved for the runtime, so we can generate legible code\n \"globalThis\",\n \"Uint8Array\",\n \"Partial\",\n]);\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nconst reservedObjectProperties = new Set([\n // names reserved by JavaScript\n \"constructor\",\n \"toString\",\n \"toJSON\",\n \"valueOf\",\n]);\n/**\n * Names that cannot be used for object properties because they are reserved\n * by the runtime.\n */\nconst reservedMessageProperties = new Set([\n // names reserved by the runtime\n \"getType\",\n \"clone\",\n \"equals\",\n \"fromBinary\",\n \"fromJson\",\n \"fromJsonString\",\n \"toBinary\",\n \"toJson\",\n \"toJsonString\",\n // names reserved by the runtime for the future\n \"toObject\",\n]);\nconst fallback = (name) => `${name}$`;\n/**\n * Will wrap names that are Object prototype properties or names reserved\n * for `Message`s.\n */\nconst safeMessageProperty = (name) => {\n if (reservedMessageProperties.has(name)) {\n return fallback(name);\n }\n return name;\n};\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nexport const safeObjectProperty = (name) => {\n if (reservedObjectProperties.has(name)) {\n return fallback(name);\n }\n return name;\n};\n/**\n * Names that can be used for identifiers or class properties\n */\nexport const safeIdentifier = (name) => {\n if (reservedIdentifiers.has(name)) {\n return fallback(name);\n }\n return name;\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { localOneofName } from \"./names.js\";\nimport { assert } from \"./assert.js\";\nexport class InternalOneofInfo {\n constructor(name) {\n this.kind = \"oneof\";\n this.repeated = false;\n this.packed = false;\n this.opt = false;\n this.default = undefined;\n this.fields = [];\n this.name = name;\n this.localName = localOneofName(name);\n }\n addField(field) {\n assert(field.oneof === this, `field ${field.name} not one of ${this.name}`);\n this.fields.push(field);\n }\n findField(localName) {\n if (!this._lookup) {\n this._lookup = Object.create(null);\n for (let i = 0; i < this.fields.length; i++) {\n this._lookup[this.fields[i].localName] = this.fields[i];\n }\n }\n return this._lookup[localName];\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { makeProtoRuntime } from \"./private/proto-runtime.js\";\nimport { makeBinaryFormatProto3 } from \"./private/binary-format-proto3.js\";\nimport { makeJsonFormatProto3 } from \"./private/json-format-proto3.js\";\nimport { makeUtilCommon } from \"./private/util-common.js\";\nimport { InternalFieldList } from \"./private/field-list.js\";\nimport { scalarDefaultValue } from \"./private/scalars.js\";\nimport { LongType, ScalarType } from \"./field.js\";\nimport { InternalOneofInfo } from \"./private/field.js\";\nimport { localFieldName, fieldJsonName } from \"./private/names.js\";\n/**\n * Provides functionality for messages defined with the proto3 syntax.\n */\nexport const proto3 = makeProtoRuntime(\"proto3\", makeJsonFormatProto3(), makeBinaryFormatProto3(), Object.assign(Object.assign({}, makeUtilCommon()), { newFieldList(fields) {\n return new InternalFieldList(fields, normalizeFieldInfosProto3);\n },\n initFields(target) {\n for (const member of target.getType().fields.byMember()) {\n if (member.opt) {\n continue;\n }\n const name = member.localName, t = target;\n if (member.repeated) {\n t[name] = [];\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n t[name] = { case: undefined };\n break;\n case \"enum\":\n t[name] = 0;\n break;\n case \"map\":\n t[name] = {};\n break;\n case \"scalar\":\n t[name] = scalarDefaultValue(member.T, member.L); // eslint-disable-line @typescript-eslint/no-unsafe-assignment\n break;\n case \"message\":\n // message fields are always optional in proto3\n break;\n }\n }\n } }));\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nfunction normalizeFieldInfosProto3(fieldInfos) {\n var _a, _b, _c, _d;\n const r = [];\n let o;\n for (const field of typeof fieldInfos == \"function\"\n ? fieldInfos()\n : fieldInfos) {\n const f = field;\n f.localName = localFieldName(field.name, field.oneof !== undefined);\n f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : fieldJsonName(field.name);\n f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false;\n if (field.kind == \"scalar\") {\n f.L = (_c = field.L) !== null && _c !== void 0 ? _c : LongType.BIGINT;\n }\n // We do not surface options at this time\n // f.options = field.options ?? emptyReadonlyObject;\n if (field.oneof !== undefined) {\n const ooname = typeof field.oneof == \"string\" ? field.oneof : field.oneof.name;\n if (!o || o.name != ooname) {\n o = new InternalOneofInfo(ooname);\n }\n f.oneof = o;\n o.addField(f);\n }\n // proto3 specific:\n if (field.kind == \"message\") {\n f.delimited = false;\n }\n // From the proto3 language guide:\n // > In proto3, repeated fields of scalar numeric types are packed by default.\n // This information is incomplete - according to the conformance tests, BOOL\n // and ENUM are packed by default as well. This means only STRING and BYTES\n // are not packed by default, which makes sense because they are length-delimited.\n f.packed =\n (_d = field.packed) !== null && _d !== void 0 ? _d : (field.kind == \"enum\" ||\n (field.kind == \"scalar\" &&\n field.T != ScalarType.BYTES &&\n field.T != ScalarType.STRING));\n r.push(f);\n }\n return r;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ScalarType } from \"../field.js\";\nimport { makeBinaryFormatCommon, writeMapEntry, writeMessageField, writePacked, writeScalar, } from \"./binary-format-common.js\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions, no-case-declarations, prefer-const */\nexport function makeBinaryFormatProto2() {\n return Object.assign(Object.assign({}, makeBinaryFormatCommon()), { writeMessage(message, writer, options) {\n const type = message.getType();\n let field;\n try {\n for (field of type.fields.byNumber()) {\n let value, // this will be our field value, whether it is member of a oneof or not\n repeated = field.repeated, localName = field.localName;\n if (field.oneof) {\n const oneof = message[field.oneof.localName];\n if (oneof.case !== localName) {\n continue; // field is not selected, skip\n }\n value = oneof.value;\n }\n else {\n value = message[localName];\n // In contrast to proto3, we raise an error if a non-optional (proto2 required)\n // field is missing a value.\n if (value === undefined && !field.oneof && !field.opt) {\n throw new Error(`cannot encode field ${type.typeName}.${field.name} to binary: required field not set`);\n }\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (repeated) {\n if (field.packed) {\n writePacked(writer, scalarType, field.no, value);\n }\n else {\n for (const item of value) {\n writeScalar(writer, scalarType, field.no, item, true);\n }\n }\n }\n else {\n if (value !== undefined) {\n // In contrast to proto3, we do not skip intrinsic default values.\n // Explicit default values are not special cased either.\n writeScalar(writer, scalarType, field.no, value, true);\n }\n }\n break;\n case \"message\":\n if (repeated) {\n for (const item of value) {\n writeMessageField(writer, options, field, item);\n }\n }\n else {\n writeMessageField(writer, options, field, value);\n }\n break;\n case \"map\":\n for (const [key, val] of Object.entries(value)) {\n writeMapEntry(writer, options, field, key, val);\n }\n break;\n }\n }\n }\n catch (e) {\n let m = field\n ? `cannot encode field ${type.typeName}.${field === null || field === void 0 ? void 0 : field.name} to binary`\n : `cannot encode message ${type.typeName} to binary`;\n let r = e instanceof Error ? e.message : String(e);\n throw new Error(m + (r.length > 0 ? `: ${r}` : \"\"));\n }\n if (options.writeUnknownFields) {\n this.writeUnknownFields(message, writer);\n }\n return writer;\n } });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { wrapField } from \"./field-wrapper.js\";\nimport { assert } from \"./assert.js\";\nimport { makeJsonFormatCommon } from \"./json-format-common.js\";\n/* eslint-disable no-case-declarations, @typescript-eslint/restrict-plus-operands,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nexport function makeJsonFormatProto2() {\n return makeJsonFormatCommon((writeEnum, writeScalar) => {\n return function writeField(field, value, options) {\n if (field.kind == \"map\") {\n const jsonObj = {};\n switch (field.V.kind) {\n case \"scalar\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n const val = writeScalar(field.V.T, entryValue, true);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"message\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n // JSON standard allows only (double quoted) string as property key\n jsonObj[entryKey.toString()] = entryValue.toJson(options);\n }\n break;\n case \"enum\":\n const enumType = field.V.T;\n for (const [entryKey, entryValue] of Object.entries(value)) {\n assert(entryValue === undefined || typeof entryValue == \"number\");\n const val = writeEnum(enumType, entryValue, true, options.enumAsInteger);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n }\n return options.emitDefaultValues || Object.keys(jsonObj).length > 0\n ? jsonObj\n : undefined;\n }\n else if (field.repeated) {\n const jsonArr = [];\n switch (field.kind) {\n case \"scalar\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeScalar(field.T, value[i], true));\n }\n break;\n case \"enum\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeEnum(field.T, value[i], true, options.enumAsInteger));\n }\n break;\n case \"message\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(value[i].toJson(options));\n }\n break;\n }\n return options.emitDefaultValues || jsonArr.length > 0\n ? jsonArr\n : undefined;\n }\n else {\n // In contrast to proto3, we raise an error if a non-optional (proto2 required)\n // field is missing a value.\n if (value === undefined) {\n if (!field.oneof && !field.opt) {\n throw `required field not set`;\n }\n return undefined;\n }\n switch (field.kind) {\n case \"scalar\":\n // In contrast to proto3, we do not skip intrinsic default values.\n // Explicit default values are not special cased either.\n return writeScalar(field.T, value, true);\n case \"enum\":\n // In contrast to proto3, we do not skip intrinsic default values.\n // Explicit default values are not special cased either.\n return writeEnum(field.T, value, true, options.enumAsInteger);\n case \"message\":\n return wrapField(field.T, value).toJson(options);\n }\n }\n };\n });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { makeProtoRuntime } from \"./private/proto-runtime.js\";\nimport { makeBinaryFormatProto2 } from \"./private/binary-format-proto2.js\";\nimport { makeUtilCommon } from \"./private/util-common.js\";\nimport { InternalFieldList } from \"./private/field-list.js\";\nimport { InternalOneofInfo } from \"./private/field.js\";\nimport { localFieldName, fieldJsonName } from \"./private/names.js\";\nimport { makeJsonFormatProto2 } from \"./private/json-format-proto2.js\";\nimport { LongType } from \"./field.js\";\n/**\n * Provides functionality for messages defined with the proto2 syntax.\n */\nexport const proto2 = makeProtoRuntime(\"proto2\", makeJsonFormatProto2(), makeBinaryFormatProto2(), Object.assign(Object.assign({}, makeUtilCommon()), { newFieldList(fields) {\n return new InternalFieldList(fields, normalizeFieldInfosProto2);\n },\n initFields(target) {\n for (const member of target.getType().fields.byMember()) {\n const name = member.localName, t = target;\n if (member.repeated) {\n t[name] = [];\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n t[name] = { case: undefined };\n break;\n case \"map\":\n t[name] = {};\n break;\n case \"scalar\":\n case \"enum\":\n case \"message\":\n // In contrast to proto3, enum and scalar fields have no intrinsic default value,\n // only an optional explicit default value.\n // Unlike proto3 intrinsic default values, proto2 explicit default values are not\n // set on construction, because they are not omitted on the wire. If we did set\n // default values on construction, a deserialize-serialize round-trip would add\n // fields to a message.\n break;\n }\n }\n } }));\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nfunction normalizeFieldInfosProto2(fieldInfos) {\n var _a, _b, _c, _d, _e;\n const r = [];\n let o;\n for (const field of typeof fieldInfos == \"function\"\n ? fieldInfos()\n : fieldInfos) {\n const f = field;\n f.localName = localFieldName(field.name, field.oneof !== undefined);\n f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : fieldJsonName(field.name);\n f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false;\n if (field.kind == \"scalar\") {\n f.L = (_c = field.L) !== null && _c !== void 0 ? _c : LongType.BIGINT;\n }\n // We do not surface options at this time\n // f.options = field.options ?? emptyReadonlyObject;\n if (field.oneof !== undefined) {\n const ooname = typeof field.oneof == \"string\" ? field.oneof : field.oneof.name;\n if (!o || o.name != ooname) {\n o = new InternalOneofInfo(ooname);\n }\n f.oneof = o;\n o.addField(f);\n }\n // proto2 specific:\n if (field.kind == \"message\") {\n f.delimited = (_d = field.delimited) !== null && _d !== void 0 ? _d : false;\n }\n // In contrast to proto3, repeated fields are unpacked except when explicitly specified.\n f.packed = (_e = field.packed) !== null && _e !== void 0 ? _e : false;\n r.push(f);\n }\n return r;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * MethodKind represents the four method types that can be declared in\n * protobuf with the `stream` keyword:\n *\n * 1. Unary: rpc (Input) returns (Output)\n * 2. ServerStreaming: rpc (Input) returns (stream Output)\n * 3. ClientStreaming: rpc (stream Input) returns (Output)\n * 4. BiDiStreaming: rpc (stream Input) returns (stream Output)\n */\nexport var MethodKind;\n(function (MethodKind) {\n MethodKind[MethodKind[\"Unary\"] = 0] = \"Unary\";\n MethodKind[MethodKind[\"ServerStreaming\"] = 1] = \"ServerStreaming\";\n MethodKind[MethodKind[\"ClientStreaming\"] = 2] = \"ClientStreaming\";\n MethodKind[MethodKind[\"BiDiStreaming\"] = 3] = \"BiDiStreaming\";\n})(MethodKind || (MethodKind = {}));\n/**\n * Is this method side-effect-free (or safe in HTTP parlance), or just\n * idempotent, or neither? HTTP based RPC implementation may choose GET verb\n * for safe methods, and PUT verb for idempotent methods instead of the\n * default POST.\n *\n * This enum matches the protobuf enum google.protobuf.MethodOptions.IdempotencyLevel,\n * defined in the well-known type google/protobuf/descriptor.proto, but\n * drops UNKNOWN.\n */\nexport var MethodIdempotency;\n(function (MethodIdempotency) {\n /**\n * Idempotent, no side effects.\n */\n MethodIdempotency[MethodIdempotency[\"NoSideEffects\"] = 1] = \"NoSideEffects\";\n /**\n * Idempotent, but may have side effects.\n */\n MethodIdempotency[MethodIdempotency[\"Idempotent\"] = 2] = \"Idempotent\";\n})(MethodIdempotency || (MethodIdempotency = {}));\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// Author: kenton@google.com (Kenton Varda)\n// Based on original Protocol Buffers design by\n// Sanjay Ghemawat, Jeff Dean, and others.\n//\n// The messages in this file describe the definitions found in .proto files.\n// A valid .proto file can be translated directly to a FileDescriptorProto\n// without any other information (e.g. without reading its imports).\n// @generated by protoc-gen-es v1.6.0 with parameter \"bootstrap_wkt=true,ts_nocheck=false,target=ts\"\n// @generated from file google/protobuf/descriptor.proto (package google.protobuf, syntax proto2)\n/* eslint-disable */\nimport { proto2 } from \"../../proto2.js\";\nimport { Message } from \"../../message.js\";\n/**\n * The full set of known editions.\n *\n * @generated from enum google.protobuf.Edition\n */\nexport var Edition;\n(function (Edition) {\n /**\n * A placeholder for an unknown edition value.\n *\n * @generated from enum value: EDITION_UNKNOWN = 0;\n */\n Edition[Edition[\"EDITION_UNKNOWN\"] = 0] = \"EDITION_UNKNOWN\";\n /**\n * Legacy syntax \"editions\". These pre-date editions, but behave much like\n * distinct editions. These can't be used to specify the edition of proto\n * files, but feature definitions must supply proto2/proto3 defaults for\n * backwards compatibility.\n *\n * @generated from enum value: EDITION_PROTO2 = 998;\n */\n Edition[Edition[\"EDITION_PROTO2\"] = 998] = \"EDITION_PROTO2\";\n /**\n * @generated from enum value: EDITION_PROTO3 = 999;\n */\n Edition[Edition[\"EDITION_PROTO3\"] = 999] = \"EDITION_PROTO3\";\n /**\n * Editions that have been released. The specific values are arbitrary and\n * should not be depended on, but they will always be time-ordered for easy\n * comparison.\n *\n * @generated from enum value: EDITION_2023 = 1000;\n */\n Edition[Edition[\"EDITION_2023\"] = 1000] = \"EDITION_2023\";\n /**\n * Placeholder editions for testing feature resolution. These should not be\n * used or relyed on outside of tests.\n *\n * @generated from enum value: EDITION_1_TEST_ONLY = 1;\n */\n Edition[Edition[\"EDITION_1_TEST_ONLY\"] = 1] = \"EDITION_1_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_2_TEST_ONLY = 2;\n */\n Edition[Edition[\"EDITION_2_TEST_ONLY\"] = 2] = \"EDITION_2_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99997_TEST_ONLY = 99997;\n */\n Edition[Edition[\"EDITION_99997_TEST_ONLY\"] = 99997] = \"EDITION_99997_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99998_TEST_ONLY = 99998;\n */\n Edition[Edition[\"EDITION_99998_TEST_ONLY\"] = 99998] = \"EDITION_99998_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99999_TEST_ONLY = 99999;\n */\n Edition[Edition[\"EDITION_99999_TEST_ONLY\"] = 99999] = \"EDITION_99999_TEST_ONLY\";\n})(Edition || (Edition = {}));\n// Retrieve enum metadata with: proto2.getEnumType(Edition)\nproto2.util.setEnumType(Edition, \"google.protobuf.Edition\", [\n { no: 0, name: \"EDITION_UNKNOWN\" },\n { no: 998, name: \"EDITION_PROTO2\" },\n { no: 999, name: \"EDITION_PROTO3\" },\n { no: 1000, name: \"EDITION_2023\" },\n { no: 1, name: \"EDITION_1_TEST_ONLY\" },\n { no: 2, name: \"EDITION_2_TEST_ONLY\" },\n { no: 99997, name: \"EDITION_99997_TEST_ONLY\" },\n { no: 99998, name: \"EDITION_99998_TEST_ONLY\" },\n { no: 99999, name: \"EDITION_99999_TEST_ONLY\" },\n]);\n/**\n * The protocol compiler can output a FileDescriptorSet containing the .proto\n * files it parses.\n *\n * @generated from message google.protobuf.FileDescriptorSet\n */\nexport class FileDescriptorSet extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FileDescriptorProto file = 1;\n */\n this.file = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FileDescriptorSet().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FileDescriptorSet().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FileDescriptorSet().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FileDescriptorSet, a, b);\n }\n}\nFileDescriptorSet.runtime = proto2;\nFileDescriptorSet.typeName = \"google.protobuf.FileDescriptorSet\";\nFileDescriptorSet.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"file\", kind: \"message\", T: FileDescriptorProto, repeated: true },\n]);\n/**\n * Describes a complete .proto file.\n *\n * @generated from message google.protobuf.FileDescriptorProto\n */\nexport class FileDescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * Names of files imported by this file.\n *\n * @generated from field: repeated string dependency = 3;\n */\n this.dependency = [];\n /**\n * Indexes of the public imported files in the dependency list above.\n *\n * @generated from field: repeated int32 public_dependency = 10;\n */\n this.publicDependency = [];\n /**\n * Indexes of the weak imported files in the dependency list.\n * For Google-internal migration only. Do not use.\n *\n * @generated from field: repeated int32 weak_dependency = 11;\n */\n this.weakDependency = [];\n /**\n * All top-level definitions in this file.\n *\n * @generated from field: repeated google.protobuf.DescriptorProto message_type = 4;\n */\n this.messageType = [];\n /**\n * @generated from field: repeated google.protobuf.EnumDescriptorProto enum_type = 5;\n */\n this.enumType = [];\n /**\n * @generated from field: repeated google.protobuf.ServiceDescriptorProto service = 6;\n */\n this.service = [];\n /**\n * @generated from field: repeated google.protobuf.FieldDescriptorProto extension = 7;\n */\n this.extension = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FileDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FileDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FileDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FileDescriptorProto, a, b);\n }\n}\nFileDescriptorProto.runtime = proto2;\nFileDescriptorProto.typeName = \"google.protobuf.FileDescriptorProto\";\nFileDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"dependency\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 10, name: \"public_dependency\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true },\n { no: 11, name: \"weak_dependency\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true },\n { no: 4, name: \"message_type\", kind: \"message\", T: DescriptorProto, repeated: true },\n { no: 5, name: \"enum_type\", kind: \"message\", T: EnumDescriptorProto, repeated: true },\n { no: 6, name: \"service\", kind: \"message\", T: ServiceDescriptorProto, repeated: true },\n { no: 7, name: \"extension\", kind: \"message\", T: FieldDescriptorProto, repeated: true },\n { no: 8, name: \"options\", kind: \"message\", T: FileOptions, opt: true },\n { no: 9, name: \"source_code_info\", kind: \"message\", T: SourceCodeInfo, opt: true },\n { no: 12, name: \"syntax\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 14, name: \"edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n]);\n/**\n * Describes a message type.\n *\n * @generated from message google.protobuf.DescriptorProto\n */\nexport class DescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FieldDescriptorProto field = 2;\n */\n this.field = [];\n /**\n * @generated from field: repeated google.protobuf.FieldDescriptorProto extension = 6;\n */\n this.extension = [];\n /**\n * @generated from field: repeated google.protobuf.DescriptorProto nested_type = 3;\n */\n this.nestedType = [];\n /**\n * @generated from field: repeated google.protobuf.EnumDescriptorProto enum_type = 4;\n */\n this.enumType = [];\n /**\n * @generated from field: repeated google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;\n */\n this.extensionRange = [];\n /**\n * @generated from field: repeated google.protobuf.OneofDescriptorProto oneof_decl = 8;\n */\n this.oneofDecl = [];\n /**\n * @generated from field: repeated google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;\n */\n this.reservedRange = [];\n /**\n * Reserved field names, which may not be used by fields in the same message.\n * A given name may only be reserved once.\n *\n * @generated from field: repeated string reserved_name = 10;\n */\n this.reservedName = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new DescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new DescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new DescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(DescriptorProto, a, b);\n }\n}\nDescriptorProto.runtime = proto2;\nDescriptorProto.typeName = \"google.protobuf.DescriptorProto\";\nDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"field\", kind: \"message\", T: FieldDescriptorProto, repeated: true },\n { no: 6, name: \"extension\", kind: \"message\", T: FieldDescriptorProto, repeated: true },\n { no: 3, name: \"nested_type\", kind: \"message\", T: DescriptorProto, repeated: true },\n { no: 4, name: \"enum_type\", kind: \"message\", T: EnumDescriptorProto, repeated: true },\n { no: 5, name: \"extension_range\", kind: \"message\", T: DescriptorProto_ExtensionRange, repeated: true },\n { no: 8, name: \"oneof_decl\", kind: \"message\", T: OneofDescriptorProto, repeated: true },\n { no: 7, name: \"options\", kind: \"message\", T: MessageOptions, opt: true },\n { no: 9, name: \"reserved_range\", kind: \"message\", T: DescriptorProto_ReservedRange, repeated: true },\n { no: 10, name: \"reserved_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.DescriptorProto.ExtensionRange\n */\nexport class DescriptorProto_ExtensionRange extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new DescriptorProto_ExtensionRange().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new DescriptorProto_ExtensionRange().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new DescriptorProto_ExtensionRange().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(DescriptorProto_ExtensionRange, a, b);\n }\n}\nDescriptorProto_ExtensionRange.runtime = proto2;\nDescriptorProto_ExtensionRange.typeName = \"google.protobuf.DescriptorProto.ExtensionRange\";\nDescriptorProto_ExtensionRange.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"start\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 3, name: \"options\", kind: \"message\", T: ExtensionRangeOptions, opt: true },\n]);\n/**\n * Range of reserved tag numbers. Reserved tag numbers may not be used by\n * fields or extension ranges in the same message. Reserved ranges may\n * not overlap.\n *\n * @generated from message google.protobuf.DescriptorProto.ReservedRange\n */\nexport class DescriptorProto_ReservedRange extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new DescriptorProto_ReservedRange().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new DescriptorProto_ReservedRange().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new DescriptorProto_ReservedRange().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(DescriptorProto_ReservedRange, a, b);\n }\n}\nDescriptorProto_ReservedRange.runtime = proto2;\nDescriptorProto_ReservedRange.typeName = \"google.protobuf.DescriptorProto.ReservedRange\";\nDescriptorProto_ReservedRange.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"start\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n]);\n/**\n * @generated from message google.protobuf.ExtensionRangeOptions\n */\nexport class ExtensionRangeOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n /**\n * For external users: DO NOT USE. We are in the process of open sourcing\n * extension declaration and executing internal cleanups before it can be\n * used externally.\n *\n * @generated from field: repeated google.protobuf.ExtensionRangeOptions.Declaration declaration = 2;\n */\n this.declaration = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ExtensionRangeOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ExtensionRangeOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ExtensionRangeOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ExtensionRangeOptions, a, b);\n }\n}\nExtensionRangeOptions.runtime = proto2;\nExtensionRangeOptions.typeName = \"google.protobuf.ExtensionRangeOptions\";\nExtensionRangeOptions.fields = proto2.util.newFieldList(() => [\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n { no: 2, name: \"declaration\", kind: \"message\", T: ExtensionRangeOptions_Declaration, repeated: true },\n { no: 50, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 3, name: \"verification\", kind: \"enum\", T: proto2.getEnumType(ExtensionRangeOptions_VerificationState), opt: true, default: ExtensionRangeOptions_VerificationState.UNVERIFIED },\n]);\n/**\n * The verification state of the extension range.\n *\n * @generated from enum google.protobuf.ExtensionRangeOptions.VerificationState\n */\nexport var ExtensionRangeOptions_VerificationState;\n(function (ExtensionRangeOptions_VerificationState) {\n /**\n * All the extensions of the range must be declared.\n *\n * @generated from enum value: DECLARATION = 0;\n */\n ExtensionRangeOptions_VerificationState[ExtensionRangeOptions_VerificationState[\"DECLARATION\"] = 0] = \"DECLARATION\";\n /**\n * @generated from enum value: UNVERIFIED = 1;\n */\n ExtensionRangeOptions_VerificationState[ExtensionRangeOptions_VerificationState[\"UNVERIFIED\"] = 1] = \"UNVERIFIED\";\n})(ExtensionRangeOptions_VerificationState || (ExtensionRangeOptions_VerificationState = {}));\n// Retrieve enum metadata with: proto2.getEnumType(ExtensionRangeOptions_VerificationState)\nproto2.util.setEnumType(ExtensionRangeOptions_VerificationState, \"google.protobuf.ExtensionRangeOptions.VerificationState\", [\n { no: 0, name: \"DECLARATION\" },\n { no: 1, name: \"UNVERIFIED\" },\n]);\n/**\n * @generated from message google.protobuf.ExtensionRangeOptions.Declaration\n */\nexport class ExtensionRangeOptions_Declaration extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ExtensionRangeOptions_Declaration().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ExtensionRangeOptions_Declaration().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ExtensionRangeOptions_Declaration().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ExtensionRangeOptions_Declaration, a, b);\n }\n}\nExtensionRangeOptions_Declaration.runtime = proto2;\nExtensionRangeOptions_Declaration.typeName = \"google.protobuf.ExtensionRangeOptions.Declaration\";\nExtensionRangeOptions_Declaration.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"full_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"reserved\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 6, name: \"repeated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n]);\n/**\n * Describes a field within a message.\n *\n * @generated from message google.protobuf.FieldDescriptorProto\n */\nexport class FieldDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FieldDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FieldDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FieldDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FieldDescriptorProto, a, b);\n }\n}\nFieldDescriptorProto.runtime = proto2;\nFieldDescriptorProto.typeName = \"google.protobuf.FieldDescriptorProto\";\nFieldDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"label\", kind: \"enum\", T: proto2.getEnumType(FieldDescriptorProto_Label), opt: true },\n { no: 5, name: \"type\", kind: \"enum\", T: proto2.getEnumType(FieldDescriptorProto_Type), opt: true },\n { no: 6, name: \"type_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"extendee\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 7, name: \"default_value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 9, name: \"oneof_index\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"json_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 8, name: \"options\", kind: \"message\", T: FieldOptions, opt: true },\n { no: 17, name: \"proto3_optional\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n]);\n/**\n * @generated from enum google.protobuf.FieldDescriptorProto.Type\n */\nexport var FieldDescriptorProto_Type;\n(function (FieldDescriptorProto_Type) {\n /**\n * 0 is reserved for errors.\n * Order is weird for historical reasons.\n *\n * @generated from enum value: TYPE_DOUBLE = 1;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"DOUBLE\"] = 1] = \"DOUBLE\";\n /**\n * @generated from enum value: TYPE_FLOAT = 2;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FLOAT\"] = 2] = \"FLOAT\";\n /**\n * Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n * negative values are likely.\n *\n * @generated from enum value: TYPE_INT64 = 3;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"INT64\"] = 3] = \"INT64\";\n /**\n * @generated from enum value: TYPE_UINT64 = 4;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"UINT64\"] = 4] = \"UINT64\";\n /**\n * Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n * negative values are likely.\n *\n * @generated from enum value: TYPE_INT32 = 5;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"INT32\"] = 5] = \"INT32\";\n /**\n * @generated from enum value: TYPE_FIXED64 = 6;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FIXED64\"] = 6] = \"FIXED64\";\n /**\n * @generated from enum value: TYPE_FIXED32 = 7;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FIXED32\"] = 7] = \"FIXED32\";\n /**\n * @generated from enum value: TYPE_BOOL = 8;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"BOOL\"] = 8] = \"BOOL\";\n /**\n * @generated from enum value: TYPE_STRING = 9;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"STRING\"] = 9] = \"STRING\";\n /**\n * Tag-delimited aggregate.\n * Group type is deprecated and not supported after google.protobuf. However, Proto3\n * implementations should still be able to parse the group wire format and\n * treat group fields as unknown fields. In Editions, the group wire format\n * can be enabled via the `message_encoding` feature.\n *\n * @generated from enum value: TYPE_GROUP = 10;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"GROUP\"] = 10] = \"GROUP\";\n /**\n * Length-delimited aggregate.\n *\n * @generated from enum value: TYPE_MESSAGE = 11;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"MESSAGE\"] = 11] = \"MESSAGE\";\n /**\n * New in version 2.\n *\n * @generated from enum value: TYPE_BYTES = 12;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"BYTES\"] = 12] = \"BYTES\";\n /**\n * @generated from enum value: TYPE_UINT32 = 13;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"UINT32\"] = 13] = \"UINT32\";\n /**\n * @generated from enum value: TYPE_ENUM = 14;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"ENUM\"] = 14] = \"ENUM\";\n /**\n * @generated from enum value: TYPE_SFIXED32 = 15;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SFIXED32\"] = 15] = \"SFIXED32\";\n /**\n * @generated from enum value: TYPE_SFIXED64 = 16;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SFIXED64\"] = 16] = \"SFIXED64\";\n /**\n * Uses ZigZag encoding.\n *\n * @generated from enum value: TYPE_SINT32 = 17;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SINT32\"] = 17] = \"SINT32\";\n /**\n * Uses ZigZag encoding.\n *\n * @generated from enum value: TYPE_SINT64 = 18;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SINT64\"] = 18] = \"SINT64\";\n})(FieldDescriptorProto_Type || (FieldDescriptorProto_Type = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldDescriptorProto_Type)\nproto2.util.setEnumType(FieldDescriptorProto_Type, \"google.protobuf.FieldDescriptorProto.Type\", [\n { no: 1, name: \"TYPE_DOUBLE\" },\n { no: 2, name: \"TYPE_FLOAT\" },\n { no: 3, name: \"TYPE_INT64\" },\n { no: 4, name: \"TYPE_UINT64\" },\n { no: 5, name: \"TYPE_INT32\" },\n { no: 6, name: \"TYPE_FIXED64\" },\n { no: 7, name: \"TYPE_FIXED32\" },\n { no: 8, name: \"TYPE_BOOL\" },\n { no: 9, name: \"TYPE_STRING\" },\n { no: 10, name: \"TYPE_GROUP\" },\n { no: 11, name: \"TYPE_MESSAGE\" },\n { no: 12, name: \"TYPE_BYTES\" },\n { no: 13, name: \"TYPE_UINT32\" },\n { no: 14, name: \"TYPE_ENUM\" },\n { no: 15, name: \"TYPE_SFIXED32\" },\n { no: 16, name: \"TYPE_SFIXED64\" },\n { no: 17, name: \"TYPE_SINT32\" },\n { no: 18, name: \"TYPE_SINT64\" },\n]);\n/**\n * @generated from enum google.protobuf.FieldDescriptorProto.Label\n */\nexport var FieldDescriptorProto_Label;\n(function (FieldDescriptorProto_Label) {\n /**\n * 0 is reserved for errors\n *\n * @generated from enum value: LABEL_OPTIONAL = 1;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"OPTIONAL\"] = 1] = \"OPTIONAL\";\n /**\n * @generated from enum value: LABEL_REPEATED = 3;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"REPEATED\"] = 3] = \"REPEATED\";\n /**\n * The required label is only allowed in google.protobuf. In proto3 and Editions\n * it's explicitly prohibited. In Editions, the `field_presence` feature\n * can be used to get this behavior.\n *\n * @generated from enum value: LABEL_REQUIRED = 2;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"REQUIRED\"] = 2] = \"REQUIRED\";\n})(FieldDescriptorProto_Label || (FieldDescriptorProto_Label = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldDescriptorProto_Label)\nproto2.util.setEnumType(FieldDescriptorProto_Label, \"google.protobuf.FieldDescriptorProto.Label\", [\n { no: 1, name: \"LABEL_OPTIONAL\" },\n { no: 3, name: \"LABEL_REPEATED\" },\n { no: 2, name: \"LABEL_REQUIRED\" },\n]);\n/**\n * Describes a oneof.\n *\n * @generated from message google.protobuf.OneofDescriptorProto\n */\nexport class OneofDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new OneofDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new OneofDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new OneofDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(OneofDescriptorProto, a, b);\n }\n}\nOneofDescriptorProto.runtime = proto2;\nOneofDescriptorProto.typeName = \"google.protobuf.OneofDescriptorProto\";\nOneofDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"options\", kind: \"message\", T: OneofOptions, opt: true },\n]);\n/**\n * Describes an enum type.\n *\n * @generated from message google.protobuf.EnumDescriptorProto\n */\nexport class EnumDescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.EnumValueDescriptorProto value = 2;\n */\n this.value = [];\n /**\n * Range of reserved numeric values. Reserved numeric values may not be used\n * by enum values in the same enum declaration. Reserved ranges may not\n * overlap.\n *\n * @generated from field: repeated google.protobuf.EnumDescriptorProto.EnumReservedRange reserved_range = 4;\n */\n this.reservedRange = [];\n /**\n * Reserved enum value names, which may not be reused. A given name may only\n * be reserved once.\n *\n * @generated from field: repeated string reserved_name = 5;\n */\n this.reservedName = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumDescriptorProto, a, b);\n }\n}\nEnumDescriptorProto.runtime = proto2;\nEnumDescriptorProto.typeName = \"google.protobuf.EnumDescriptorProto\";\nEnumDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"value\", kind: \"message\", T: EnumValueDescriptorProto, repeated: true },\n { no: 3, name: \"options\", kind: \"message\", T: EnumOptions, opt: true },\n { no: 4, name: \"reserved_range\", kind: \"message\", T: EnumDescriptorProto_EnumReservedRange, repeated: true },\n { no: 5, name: \"reserved_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n]);\n/**\n * Range of reserved numeric values. Reserved values may not be used by\n * entries in the same enum. Reserved ranges may not overlap.\n *\n * Note that this is distinct from DescriptorProto.ReservedRange in that it\n * is inclusive such that it can appropriately represent the entire int32\n * domain.\n *\n * @generated from message google.protobuf.EnumDescriptorProto.EnumReservedRange\n */\nexport class EnumDescriptorProto_EnumReservedRange extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumDescriptorProto_EnumReservedRange().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumDescriptorProto_EnumReservedRange().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumDescriptorProto_EnumReservedRange().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumDescriptorProto_EnumReservedRange, a, b);\n }\n}\nEnumDescriptorProto_EnumReservedRange.runtime = proto2;\nEnumDescriptorProto_EnumReservedRange.typeName = \"google.protobuf.EnumDescriptorProto.EnumReservedRange\";\nEnumDescriptorProto_EnumReservedRange.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"start\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n]);\n/**\n * Describes a value within an enum.\n *\n * @generated from message google.protobuf.EnumValueDescriptorProto\n */\nexport class EnumValueDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumValueDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumValueDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumValueDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumValueDescriptorProto, a, b);\n }\n}\nEnumValueDescriptorProto.runtime = proto2;\nEnumValueDescriptorProto.typeName = \"google.protobuf.EnumValueDescriptorProto\";\nEnumValueDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 3, name: \"options\", kind: \"message\", T: EnumValueOptions, opt: true },\n]);\n/**\n * Describes a service.\n *\n * @generated from message google.protobuf.ServiceDescriptorProto\n */\nexport class ServiceDescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.MethodDescriptorProto method = 2;\n */\n this.method = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ServiceDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ServiceDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ServiceDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ServiceDescriptorProto, a, b);\n }\n}\nServiceDescriptorProto.runtime = proto2;\nServiceDescriptorProto.typeName = \"google.protobuf.ServiceDescriptorProto\";\nServiceDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"method\", kind: \"message\", T: MethodDescriptorProto, repeated: true },\n { no: 3, name: \"options\", kind: \"message\", T: ServiceOptions, opt: true },\n]);\n/**\n * Describes a method of a service.\n *\n * @generated from message google.protobuf.MethodDescriptorProto\n */\nexport class MethodDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new MethodDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new MethodDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new MethodDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(MethodDescriptorProto, a, b);\n }\n}\nMethodDescriptorProto.runtime = proto2;\nMethodDescriptorProto.typeName = \"google.protobuf.MethodDescriptorProto\";\nMethodDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"input_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"output_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"options\", kind: \"message\", T: MethodOptions, opt: true },\n { no: 5, name: \"client_streaming\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 6, name: \"server_streaming\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n]);\n/**\n * @generated from message google.protobuf.FileOptions\n */\nexport class FileOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here.\n * See the documentation for the \"Options\" section above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FileOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FileOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FileOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FileOptions, a, b);\n }\n}\nFileOptions.runtime = proto2;\nFileOptions.typeName = \"google.protobuf.FileOptions\";\nFileOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"java_package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 8, name: \"java_outer_classname\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 10, name: \"java_multiple_files\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 20, name: \"java_generate_equals_and_hash\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 27, name: \"java_string_check_utf8\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 9, name: \"optimize_for\", kind: \"enum\", T: proto2.getEnumType(FileOptions_OptimizeMode), opt: true, default: FileOptions_OptimizeMode.SPEED },\n { no: 11, name: \"go_package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 16, name: \"cc_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 17, name: \"java_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 18, name: \"py_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 42, name: \"php_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 23, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 31, name: \"cc_enable_arenas\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: true },\n { no: 36, name: \"objc_class_prefix\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 37, name: \"csharp_namespace\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 39, name: \"swift_prefix\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 40, name: \"php_class_prefix\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 41, name: \"php_namespace\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 44, name: \"php_metadata_namespace\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 45, name: \"ruby_package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 50, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * Generated classes can be optimized for speed or code size.\n *\n * @generated from enum google.protobuf.FileOptions.OptimizeMode\n */\nexport var FileOptions_OptimizeMode;\n(function (FileOptions_OptimizeMode) {\n /**\n * Generate complete code for parsing, serialization,\n *\n * @generated from enum value: SPEED = 1;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"SPEED\"] = 1] = \"SPEED\";\n /**\n * etc.\n *\n * Use ReflectionOps to implement these methods.\n *\n * @generated from enum value: CODE_SIZE = 2;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"CODE_SIZE\"] = 2] = \"CODE_SIZE\";\n /**\n * Generate code using MessageLite and the lite runtime.\n *\n * @generated from enum value: LITE_RUNTIME = 3;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"LITE_RUNTIME\"] = 3] = \"LITE_RUNTIME\";\n})(FileOptions_OptimizeMode || (FileOptions_OptimizeMode = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FileOptions_OptimizeMode)\nproto2.util.setEnumType(FileOptions_OptimizeMode, \"google.protobuf.FileOptions.OptimizeMode\", [\n { no: 1, name: \"SPEED\" },\n { no: 2, name: \"CODE_SIZE\" },\n { no: 3, name: \"LITE_RUNTIME\" },\n]);\n/**\n * @generated from message google.protobuf.MessageOptions\n */\nexport class MessageOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new MessageOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new MessageOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new MessageOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(MessageOptions, a, b);\n }\n}\nMessageOptions.runtime = proto2;\nMessageOptions.typeName = \"google.protobuf.MessageOptions\";\nMessageOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"message_set_wire_format\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 2, name: \"no_standard_descriptor_accessor\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 3, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 7, name: \"map_entry\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 11, name: \"deprecated_legacy_json_field_conflicts\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 12, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.FieldOptions\n */\nexport class FieldOptions extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FieldOptions.OptionTargetType targets = 19;\n */\n this.targets = [];\n /**\n * @generated from field: repeated google.protobuf.FieldOptions.EditionDefault edition_defaults = 20;\n */\n this.editionDefaults = [];\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FieldOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FieldOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FieldOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FieldOptions, a, b);\n }\n}\nFieldOptions.runtime = proto2;\nFieldOptions.typeName = \"google.protobuf.FieldOptions\";\nFieldOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"ctype\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_CType), opt: true, default: FieldOptions_CType.STRING },\n { no: 2, name: \"packed\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 6, name: \"jstype\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_JSType), opt: true, default: FieldOptions_JSType.JS_NORMAL },\n { no: 5, name: \"lazy\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 15, name: \"unverified_lazy\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 3, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 10, name: \"weak\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 16, name: \"debug_redact\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 17, name: \"retention\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_OptionRetention), opt: true },\n { no: 19, name: \"targets\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_OptionTargetType), repeated: true },\n { no: 20, name: \"edition_defaults\", kind: \"message\", T: FieldOptions_EditionDefault, repeated: true },\n { no: 21, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from enum google.protobuf.FieldOptions.CType\n */\nexport var FieldOptions_CType;\n(function (FieldOptions_CType) {\n /**\n * Default mode.\n *\n * @generated from enum value: STRING = 0;\n */\n FieldOptions_CType[FieldOptions_CType[\"STRING\"] = 0] = \"STRING\";\n /**\n * The option [ctype=CORD] may be applied to a non-repeated field of type\n * \"bytes\". It indicates that in C++, the data should be stored in a Cord\n * instead of a string. For very large strings, this may reduce memory\n * fragmentation. It may also allow better performance when parsing from a\n * Cord, or when parsing with aliasing enabled, as the parsed Cord may then\n * alias the original buffer.\n *\n * @generated from enum value: CORD = 1;\n */\n FieldOptions_CType[FieldOptions_CType[\"CORD\"] = 1] = \"CORD\";\n /**\n * @generated from enum value: STRING_PIECE = 2;\n */\n FieldOptions_CType[FieldOptions_CType[\"STRING_PIECE\"] = 2] = \"STRING_PIECE\";\n})(FieldOptions_CType || (FieldOptions_CType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_CType)\nproto2.util.setEnumType(FieldOptions_CType, \"google.protobuf.FieldOptions.CType\", [\n { no: 0, name: \"STRING\" },\n { no: 1, name: \"CORD\" },\n { no: 2, name: \"STRING_PIECE\" },\n]);\n/**\n * @generated from enum google.protobuf.FieldOptions.JSType\n */\nexport var FieldOptions_JSType;\n(function (FieldOptions_JSType) {\n /**\n * Use the default type.\n *\n * @generated from enum value: JS_NORMAL = 0;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_NORMAL\"] = 0] = \"JS_NORMAL\";\n /**\n * Use JavaScript strings.\n *\n * @generated from enum value: JS_STRING = 1;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_STRING\"] = 1] = \"JS_STRING\";\n /**\n * Use JavaScript numbers.\n *\n * @generated from enum value: JS_NUMBER = 2;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_NUMBER\"] = 2] = \"JS_NUMBER\";\n})(FieldOptions_JSType || (FieldOptions_JSType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_JSType)\nproto2.util.setEnumType(FieldOptions_JSType, \"google.protobuf.FieldOptions.JSType\", [\n { no: 0, name: \"JS_NORMAL\" },\n { no: 1, name: \"JS_STRING\" },\n { no: 2, name: \"JS_NUMBER\" },\n]);\n/**\n * If set to RETENTION_SOURCE, the option will be omitted from the binary.\n * Note: as of January 2023, support for this is in progress and does not yet\n * have an effect (b/264593489).\n *\n * @generated from enum google.protobuf.FieldOptions.OptionRetention\n */\nexport var FieldOptions_OptionRetention;\n(function (FieldOptions_OptionRetention) {\n /**\n * @generated from enum value: RETENTION_UNKNOWN = 0;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_UNKNOWN\"] = 0] = \"RETENTION_UNKNOWN\";\n /**\n * @generated from enum value: RETENTION_RUNTIME = 1;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_RUNTIME\"] = 1] = \"RETENTION_RUNTIME\";\n /**\n * @generated from enum value: RETENTION_SOURCE = 2;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_SOURCE\"] = 2] = \"RETENTION_SOURCE\";\n})(FieldOptions_OptionRetention || (FieldOptions_OptionRetention = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_OptionRetention)\nproto2.util.setEnumType(FieldOptions_OptionRetention, \"google.protobuf.FieldOptions.OptionRetention\", [\n { no: 0, name: \"RETENTION_UNKNOWN\" },\n { no: 1, name: \"RETENTION_RUNTIME\" },\n { no: 2, name: \"RETENTION_SOURCE\" },\n]);\n/**\n * This indicates the types of entities that the field may apply to when used\n * as an option. If it is unset, then the field may be freely used as an\n * option on any kind of entity. Note: as of January 2023, support for this is\n * in progress and does not yet have an effect (b/264593489).\n *\n * @generated from enum google.protobuf.FieldOptions.OptionTargetType\n */\nexport var FieldOptions_OptionTargetType;\n(function (FieldOptions_OptionTargetType) {\n /**\n * @generated from enum value: TARGET_TYPE_UNKNOWN = 0;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_UNKNOWN\"] = 0] = \"TARGET_TYPE_UNKNOWN\";\n /**\n * @generated from enum value: TARGET_TYPE_FILE = 1;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_FILE\"] = 1] = \"TARGET_TYPE_FILE\";\n /**\n * @generated from enum value: TARGET_TYPE_EXTENSION_RANGE = 2;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_EXTENSION_RANGE\"] = 2] = \"TARGET_TYPE_EXTENSION_RANGE\";\n /**\n * @generated from enum value: TARGET_TYPE_MESSAGE = 3;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_MESSAGE\"] = 3] = \"TARGET_TYPE_MESSAGE\";\n /**\n * @generated from enum value: TARGET_TYPE_FIELD = 4;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_FIELD\"] = 4] = \"TARGET_TYPE_FIELD\";\n /**\n * @generated from enum value: TARGET_TYPE_ONEOF = 5;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ONEOF\"] = 5] = \"TARGET_TYPE_ONEOF\";\n /**\n * @generated from enum value: TARGET_TYPE_ENUM = 6;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ENUM\"] = 6] = \"TARGET_TYPE_ENUM\";\n /**\n * @generated from enum value: TARGET_TYPE_ENUM_ENTRY = 7;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ENUM_ENTRY\"] = 7] = \"TARGET_TYPE_ENUM_ENTRY\";\n /**\n * @generated from enum value: TARGET_TYPE_SERVICE = 8;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_SERVICE\"] = 8] = \"TARGET_TYPE_SERVICE\";\n /**\n * @generated from enum value: TARGET_TYPE_METHOD = 9;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_METHOD\"] = 9] = \"TARGET_TYPE_METHOD\";\n})(FieldOptions_OptionTargetType || (FieldOptions_OptionTargetType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_OptionTargetType)\nproto2.util.setEnumType(FieldOptions_OptionTargetType, \"google.protobuf.FieldOptions.OptionTargetType\", [\n { no: 0, name: \"TARGET_TYPE_UNKNOWN\" },\n { no: 1, name: \"TARGET_TYPE_FILE\" },\n { no: 2, name: \"TARGET_TYPE_EXTENSION_RANGE\" },\n { no: 3, name: \"TARGET_TYPE_MESSAGE\" },\n { no: 4, name: \"TARGET_TYPE_FIELD\" },\n { no: 5, name: \"TARGET_TYPE_ONEOF\" },\n { no: 6, name: \"TARGET_TYPE_ENUM\" },\n { no: 7, name: \"TARGET_TYPE_ENUM_ENTRY\" },\n { no: 8, name: \"TARGET_TYPE_SERVICE\" },\n { no: 9, name: \"TARGET_TYPE_METHOD\" },\n]);\n/**\n * @generated from message google.protobuf.FieldOptions.EditionDefault\n */\nexport class FieldOptions_EditionDefault extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FieldOptions_EditionDefault().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FieldOptions_EditionDefault().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FieldOptions_EditionDefault().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FieldOptions_EditionDefault, a, b);\n }\n}\nFieldOptions_EditionDefault.runtime = proto2;\nFieldOptions_EditionDefault.typeName = \"google.protobuf.FieldOptions.EditionDefault\";\nFieldOptions_EditionDefault.fields = proto2.util.newFieldList(() => [\n { no: 3, name: \"edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n { no: 2, name: \"value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n]);\n/**\n * @generated from message google.protobuf.OneofOptions\n */\nexport class OneofOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new OneofOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new OneofOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new OneofOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(OneofOptions, a, b);\n }\n}\nOneofOptions.runtime = proto2;\nOneofOptions.typeName = \"google.protobuf.OneofOptions\";\nOneofOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.EnumOptions\n */\nexport class EnumOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumOptions, a, b);\n }\n}\nEnumOptions.runtime = proto2;\nEnumOptions.typeName = \"google.protobuf.EnumOptions\";\nEnumOptions.fields = proto2.util.newFieldList(() => [\n { no: 2, name: \"allow_alias\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 3, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 6, name: \"deprecated_legacy_json_field_conflicts\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 7, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.EnumValueOptions\n */\nexport class EnumValueOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumValueOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumValueOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumValueOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumValueOptions, a, b);\n }\n}\nEnumValueOptions.runtime = proto2;\nEnumValueOptions.typeName = \"google.protobuf.EnumValueOptions\";\nEnumValueOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 2, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 3, name: \"debug_redact\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.ServiceOptions\n */\nexport class ServiceOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ServiceOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ServiceOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ServiceOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ServiceOptions, a, b);\n }\n}\nServiceOptions.runtime = proto2;\nServiceOptions.typeName = \"google.protobuf.ServiceOptions\";\nServiceOptions.fields = proto2.util.newFieldList(() => [\n { no: 34, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 33, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.MethodOptions\n */\nexport class MethodOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new MethodOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new MethodOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new MethodOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(MethodOptions, a, b);\n }\n}\nMethodOptions.runtime = proto2;\nMethodOptions.typeName = \"google.protobuf.MethodOptions\";\nMethodOptions.fields = proto2.util.newFieldList(() => [\n { no: 33, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 34, name: \"idempotency_level\", kind: \"enum\", T: proto2.getEnumType(MethodOptions_IdempotencyLevel), opt: true, default: MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN },\n { no: 35, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * Is this method side-effect-free (or safe in HTTP parlance), or idempotent,\n * or neither? HTTP based RPC implementation may choose GET verb for safe\n * methods, and PUT verb for idempotent methods instead of the default POST.\n *\n * @generated from enum google.protobuf.MethodOptions.IdempotencyLevel\n */\nexport var MethodOptions_IdempotencyLevel;\n(function (MethodOptions_IdempotencyLevel) {\n /**\n * @generated from enum value: IDEMPOTENCY_UNKNOWN = 0;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"IDEMPOTENCY_UNKNOWN\"] = 0] = \"IDEMPOTENCY_UNKNOWN\";\n /**\n * implies idempotent\n *\n * @generated from enum value: NO_SIDE_EFFECTS = 1;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"NO_SIDE_EFFECTS\"] = 1] = \"NO_SIDE_EFFECTS\";\n /**\n * idempotent, but may have side effects\n *\n * @generated from enum value: IDEMPOTENT = 2;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"IDEMPOTENT\"] = 2] = \"IDEMPOTENT\";\n})(MethodOptions_IdempotencyLevel || (MethodOptions_IdempotencyLevel = {}));\n// Retrieve enum metadata with: proto2.getEnumType(MethodOptions_IdempotencyLevel)\nproto2.util.setEnumType(MethodOptions_IdempotencyLevel, \"google.protobuf.MethodOptions.IdempotencyLevel\", [\n { no: 0, name: \"IDEMPOTENCY_UNKNOWN\" },\n { no: 1, name: \"NO_SIDE_EFFECTS\" },\n { no: 2, name: \"IDEMPOTENT\" },\n]);\n/**\n * A message representing a option the parser does not recognize. This only\n * appears in options protos created by the compiler::Parser class.\n * DescriptorPool resolves these when building Descriptor objects. Therefore,\n * options protos in descriptor objects (e.g. returned by Descriptor::options(),\n * or produced by Descriptor::CopyTo()) will never have UninterpretedOptions\n * in them.\n *\n * @generated from message google.protobuf.UninterpretedOption\n */\nexport class UninterpretedOption extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.UninterpretedOption.NamePart name = 2;\n */\n this.name = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new UninterpretedOption().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new UninterpretedOption().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new UninterpretedOption().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(UninterpretedOption, a, b);\n }\n}\nUninterpretedOption.runtime = proto2;\nUninterpretedOption.typeName = \"google.protobuf.UninterpretedOption\";\nUninterpretedOption.fields = proto2.util.newFieldList(() => [\n { no: 2, name: \"name\", kind: \"message\", T: UninterpretedOption_NamePart, repeated: true },\n { no: 3, name: \"identifier_value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"positive_int_value\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */, opt: true },\n { no: 5, name: \"negative_int_value\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 6, name: \"double_value\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 7, name: \"string_value\", kind: \"scalar\", T: 12 /* ScalarType.BYTES */, opt: true },\n { no: 8, name: \"aggregate_value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n]);\n/**\n * The name of the uninterpreted option. Each string represents a segment in\n * a dot-separated name. is_extension is true iff a segment represents an\n * extension (denoted with parentheses in options specs in .proto files).\n * E.g.,{ [\"foo\", false], [\"bar.baz\", true], [\"moo\", false] } represents\n * \"foo.(bar.baz).moo\".\n *\n * @generated from message google.protobuf.UninterpretedOption.NamePart\n */\nexport class UninterpretedOption_NamePart extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new UninterpretedOption_NamePart().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new UninterpretedOption_NamePart().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new UninterpretedOption_NamePart().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(UninterpretedOption_NamePart, a, b);\n }\n}\nUninterpretedOption_NamePart.runtime = proto2;\nUninterpretedOption_NamePart.typeName = \"google.protobuf.UninterpretedOption.NamePart\";\nUninterpretedOption_NamePart.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name_part\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"is_extension\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n]);\n/**\n * TODO Enums in C++ gencode (and potentially other languages) are\n * not well scoped. This means that each of the feature enums below can clash\n * with each other. The short names we've chosen maximize call-site\n * readability, but leave us very open to this scenario. A future feature will\n * be designed and implemented to handle this, hopefully before we ever hit a\n * conflict here.\n *\n * @generated from message google.protobuf.FeatureSet\n */\nexport class FeatureSet extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FeatureSet().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FeatureSet().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FeatureSet().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FeatureSet, a, b);\n }\n}\nFeatureSet.runtime = proto2;\nFeatureSet.typeName = \"google.protobuf.FeatureSet\";\nFeatureSet.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"field_presence\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_FieldPresence), opt: true },\n { no: 2, name: \"enum_type\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_EnumType), opt: true },\n { no: 3, name: \"repeated_field_encoding\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_RepeatedFieldEncoding), opt: true },\n { no: 4, name: \"utf8_validation\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_Utf8Validation), opt: true },\n { no: 5, name: \"message_encoding\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_MessageEncoding), opt: true },\n { no: 6, name: \"json_format\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_JsonFormat), opt: true },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.FieldPresence\n */\nexport var FeatureSet_FieldPresence;\n(function (FeatureSet_FieldPresence) {\n /**\n * @generated from enum value: FIELD_PRESENCE_UNKNOWN = 0;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"FIELD_PRESENCE_UNKNOWN\"] = 0] = \"FIELD_PRESENCE_UNKNOWN\";\n /**\n * @generated from enum value: EXPLICIT = 1;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"EXPLICIT\"] = 1] = \"EXPLICIT\";\n /**\n * @generated from enum value: IMPLICIT = 2;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"IMPLICIT\"] = 2] = \"IMPLICIT\";\n /**\n * @generated from enum value: LEGACY_REQUIRED = 3;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"LEGACY_REQUIRED\"] = 3] = \"LEGACY_REQUIRED\";\n})(FeatureSet_FieldPresence || (FeatureSet_FieldPresence = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_FieldPresence)\nproto2.util.setEnumType(FeatureSet_FieldPresence, \"google.protobuf.FeatureSet.FieldPresence\", [\n { no: 0, name: \"FIELD_PRESENCE_UNKNOWN\" },\n { no: 1, name: \"EXPLICIT\" },\n { no: 2, name: \"IMPLICIT\" },\n { no: 3, name: \"LEGACY_REQUIRED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.EnumType\n */\nexport var FeatureSet_EnumType;\n(function (FeatureSet_EnumType) {\n /**\n * @generated from enum value: ENUM_TYPE_UNKNOWN = 0;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"ENUM_TYPE_UNKNOWN\"] = 0] = \"ENUM_TYPE_UNKNOWN\";\n /**\n * @generated from enum value: OPEN = 1;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"OPEN\"] = 1] = \"OPEN\";\n /**\n * @generated from enum value: CLOSED = 2;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"CLOSED\"] = 2] = \"CLOSED\";\n})(FeatureSet_EnumType || (FeatureSet_EnumType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_EnumType)\nproto2.util.setEnumType(FeatureSet_EnumType, \"google.protobuf.FeatureSet.EnumType\", [\n { no: 0, name: \"ENUM_TYPE_UNKNOWN\" },\n { no: 1, name: \"OPEN\" },\n { no: 2, name: \"CLOSED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.RepeatedFieldEncoding\n */\nexport var FeatureSet_RepeatedFieldEncoding;\n(function (FeatureSet_RepeatedFieldEncoding) {\n /**\n * @generated from enum value: REPEATED_FIELD_ENCODING_UNKNOWN = 0;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"REPEATED_FIELD_ENCODING_UNKNOWN\"] = 0] = \"REPEATED_FIELD_ENCODING_UNKNOWN\";\n /**\n * @generated from enum value: PACKED = 1;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"PACKED\"] = 1] = \"PACKED\";\n /**\n * @generated from enum value: EXPANDED = 2;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"EXPANDED\"] = 2] = \"EXPANDED\";\n})(FeatureSet_RepeatedFieldEncoding || (FeatureSet_RepeatedFieldEncoding = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_RepeatedFieldEncoding)\nproto2.util.setEnumType(FeatureSet_RepeatedFieldEncoding, \"google.protobuf.FeatureSet.RepeatedFieldEncoding\", [\n { no: 0, name: \"REPEATED_FIELD_ENCODING_UNKNOWN\" },\n { no: 1, name: \"PACKED\" },\n { no: 2, name: \"EXPANDED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.Utf8Validation\n */\nexport var FeatureSet_Utf8Validation;\n(function (FeatureSet_Utf8Validation) {\n /**\n * @generated from enum value: UTF8_VALIDATION_UNKNOWN = 0;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"UTF8_VALIDATION_UNKNOWN\"] = 0] = \"UTF8_VALIDATION_UNKNOWN\";\n /**\n * @generated from enum value: NONE = 1;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"NONE\"] = 1] = \"NONE\";\n /**\n * @generated from enum value: VERIFY = 2;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"VERIFY\"] = 2] = \"VERIFY\";\n})(FeatureSet_Utf8Validation || (FeatureSet_Utf8Validation = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_Utf8Validation)\nproto2.util.setEnumType(FeatureSet_Utf8Validation, \"google.protobuf.FeatureSet.Utf8Validation\", [\n { no: 0, name: \"UTF8_VALIDATION_UNKNOWN\" },\n { no: 1, name: \"NONE\" },\n { no: 2, name: \"VERIFY\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.MessageEncoding\n */\nexport var FeatureSet_MessageEncoding;\n(function (FeatureSet_MessageEncoding) {\n /**\n * @generated from enum value: MESSAGE_ENCODING_UNKNOWN = 0;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"MESSAGE_ENCODING_UNKNOWN\"] = 0] = \"MESSAGE_ENCODING_UNKNOWN\";\n /**\n * @generated from enum value: LENGTH_PREFIXED = 1;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"LENGTH_PREFIXED\"] = 1] = \"LENGTH_PREFIXED\";\n /**\n * @generated from enum value: DELIMITED = 2;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"DELIMITED\"] = 2] = \"DELIMITED\";\n})(FeatureSet_MessageEncoding || (FeatureSet_MessageEncoding = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_MessageEncoding)\nproto2.util.setEnumType(FeatureSet_MessageEncoding, \"google.protobuf.FeatureSet.MessageEncoding\", [\n { no: 0, name: \"MESSAGE_ENCODING_UNKNOWN\" },\n { no: 1, name: \"LENGTH_PREFIXED\" },\n { no: 2, name: \"DELIMITED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.JsonFormat\n */\nexport var FeatureSet_JsonFormat;\n(function (FeatureSet_JsonFormat) {\n /**\n * @generated from enum value: JSON_FORMAT_UNKNOWN = 0;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"JSON_FORMAT_UNKNOWN\"] = 0] = \"JSON_FORMAT_UNKNOWN\";\n /**\n * @generated from enum value: ALLOW = 1;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"ALLOW\"] = 1] = \"ALLOW\";\n /**\n * @generated from enum value: LEGACY_BEST_EFFORT = 2;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"LEGACY_BEST_EFFORT\"] = 2] = \"LEGACY_BEST_EFFORT\";\n})(FeatureSet_JsonFormat || (FeatureSet_JsonFormat = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_JsonFormat)\nproto2.util.setEnumType(FeatureSet_JsonFormat, \"google.protobuf.FeatureSet.JsonFormat\", [\n { no: 0, name: \"JSON_FORMAT_UNKNOWN\" },\n { no: 1, name: \"ALLOW\" },\n { no: 2, name: \"LEGACY_BEST_EFFORT\" },\n]);\n/**\n * A compiled specification for the defaults of a set of features. These\n * messages are generated from FeatureSet extensions and can be used to seed\n * feature resolution. The resolution with this object becomes a simple search\n * for the closest matching edition, followed by proto merges.\n *\n * @generated from message google.protobuf.FeatureSetDefaults\n */\nexport class FeatureSetDefaults extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault defaults = 1;\n */\n this.defaults = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FeatureSetDefaults().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FeatureSetDefaults().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FeatureSetDefaults().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FeatureSetDefaults, a, b);\n }\n}\nFeatureSetDefaults.runtime = proto2;\nFeatureSetDefaults.typeName = \"google.protobuf.FeatureSetDefaults\";\nFeatureSetDefaults.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"defaults\", kind: \"message\", T: FeatureSetDefaults_FeatureSetEditionDefault, repeated: true },\n { no: 4, name: \"minimum_edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n { no: 5, name: \"maximum_edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n]);\n/**\n * A map from every known edition with a unique set of defaults to its\n * defaults. Not all editions may be contained here. For a given edition,\n * the defaults at the closest matching edition ordered at or before it should\n * be used. This field must be in strict ascending order by edition.\n *\n * @generated from message google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\n */\nexport class FeatureSetDefaults_FeatureSetEditionDefault extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FeatureSetDefaults_FeatureSetEditionDefault().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FeatureSetDefaults_FeatureSetEditionDefault().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FeatureSetDefaults_FeatureSetEditionDefault().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FeatureSetDefaults_FeatureSetEditionDefault, a, b);\n }\n}\nFeatureSetDefaults_FeatureSetEditionDefault.runtime = proto2;\nFeatureSetDefaults_FeatureSetEditionDefault.typeName = \"google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\";\nFeatureSetDefaults_FeatureSetEditionDefault.fields = proto2.util.newFieldList(() => [\n { no: 3, name: \"edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n { no: 2, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n]);\n/**\n * Encapsulates information about the original source file from which a\n * FileDescriptorProto was generated.\n *\n * @generated from message google.protobuf.SourceCodeInfo\n */\nexport class SourceCodeInfo extends Message {\n constructor(data) {\n super();\n /**\n * A Location identifies a piece of source code in a .proto file which\n * corresponds to a particular definition. This information is intended\n * to be useful to IDEs, code indexers, documentation generators, and similar\n * tools.\n *\n * For example, say we have a file like:\n * message Foo {\n * optional string foo = 1;\n * }\n * Let's look at just the field definition:\n * optional string foo = 1;\n * ^ ^^ ^^ ^ ^^^\n * a bc de f ghi\n * We have the following locations:\n * span path represents\n * [a,i) [ 4, 0, 2, 0 ] The whole field definition.\n * [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).\n * [c,d) [ 4, 0, 2, 0, 5 ] The type (string).\n * [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).\n * [g,h) [ 4, 0, 2, 0, 3 ] The number (1).\n *\n * Notes:\n * - A location may refer to a repeated field itself (i.e. not to any\n * particular index within it). This is used whenever a set of elements are\n * logically enclosed in a single code segment. For example, an entire\n * extend block (possibly containing multiple extension definitions) will\n * have an outer location whose path refers to the \"extensions\" repeated\n * field without an index.\n * - Multiple locations may have the same path. This happens when a single\n * logical declaration is spread out across multiple places. The most\n * obvious example is the \"extend\" block again -- there may be multiple\n * extend blocks in the same scope, each of which will have the same path.\n * - A location's span is not always a subset of its parent's span. For\n * example, the \"extendee\" of an extension declaration appears at the\n * beginning of the \"extend\" block and is shared by all extensions within\n * the block.\n * - Just because a location's span is a subset of some other location's span\n * does not mean that it is a descendant. For example, a \"group\" defines\n * both a type and a field in a single declaration. Thus, the locations\n * corresponding to the type and field and their components will overlap.\n * - Code which tries to interpret locations should probably be designed to\n * ignore those that it doesn't understand, as more types of locations could\n * be recorded in the future.\n *\n * @generated from field: repeated google.protobuf.SourceCodeInfo.Location location = 1;\n */\n this.location = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new SourceCodeInfo().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new SourceCodeInfo().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new SourceCodeInfo().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(SourceCodeInfo, a, b);\n }\n}\nSourceCodeInfo.runtime = proto2;\nSourceCodeInfo.typeName = \"google.protobuf.SourceCodeInfo\";\nSourceCodeInfo.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"location\", kind: \"message\", T: SourceCodeInfo_Location, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.SourceCodeInfo.Location\n */\nexport class SourceCodeInfo_Location extends Message {\n constructor(data) {\n super();\n /**\n * Identifies which part of the FileDescriptorProto was defined at this\n * location.\n *\n * Each element is a field number or an index. They form a path from\n * the root FileDescriptorProto to the place where the definition occurs.\n * For example, this path:\n * [ 4, 3, 2, 7, 1 ]\n * refers to:\n * file.message_type(3) // 4, 3\n * .field(7) // 2, 7\n * .name() // 1\n * This is because FileDescriptorProto.message_type has field number 4:\n * repeated DescriptorProto message_type = 4;\n * and DescriptorProto.field has field number 2:\n * repeated FieldDescriptorProto field = 2;\n * and FieldDescriptorProto.name has field number 1:\n * optional string name = 1;\n *\n * Thus, the above path gives the location of a field name. If we removed\n * the last element:\n * [ 4, 3, 2, 7 ]\n * this path refers to the whole field declaration (from the beginning\n * of the label to the terminating semicolon).\n *\n * @generated from field: repeated int32 path = 1 [packed = true];\n */\n this.path = [];\n /**\n * Always has exactly three or four elements: start line, start column,\n * end line (optional, otherwise assumed same as start line), end column.\n * These are packed into a single field for efficiency. Note that line\n * and column numbers are zero-based -- typically you will want to add\n * 1 to each before displaying to a user.\n *\n * @generated from field: repeated int32 span = 2 [packed = true];\n */\n this.span = [];\n /**\n * @generated from field: repeated string leading_detached_comments = 6;\n */\n this.leadingDetachedComments = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new SourceCodeInfo_Location().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new SourceCodeInfo_Location().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new SourceCodeInfo_Location().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(SourceCodeInfo_Location, a, b);\n }\n}\nSourceCodeInfo_Location.runtime = proto2;\nSourceCodeInfo_Location.typeName = \"google.protobuf.SourceCodeInfo.Location\";\nSourceCodeInfo_Location.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"path\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true, packed: true },\n { no: 2, name: \"span\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true, packed: true },\n { no: 3, name: \"leading_comments\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"trailing_comments\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"leading_detached_comments\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n]);\n/**\n * Describes the relationship between generated code and its original source\n * file. A GeneratedCodeInfo message is associated with only one generated\n * source file, but may contain references to different source .proto files.\n *\n * @generated from message google.protobuf.GeneratedCodeInfo\n */\nexport class GeneratedCodeInfo extends Message {\n constructor(data) {\n super();\n /**\n * An Annotation connects some span of text in generated code to an element\n * of its generating .proto file.\n *\n * @generated from field: repeated google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;\n */\n this.annotation = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new GeneratedCodeInfo().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new GeneratedCodeInfo().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new GeneratedCodeInfo().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(GeneratedCodeInfo, a, b);\n }\n}\nGeneratedCodeInfo.runtime = proto2;\nGeneratedCodeInfo.typeName = \"google.protobuf.GeneratedCodeInfo\";\nGeneratedCodeInfo.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"annotation\", kind: \"message\", T: GeneratedCodeInfo_Annotation, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.GeneratedCodeInfo.Annotation\n */\nexport class GeneratedCodeInfo_Annotation extends Message {\n constructor(data) {\n super();\n /**\n * Identifies the element in the original source .proto file. This field\n * is formatted the same as SourceCodeInfo.Location.path.\n *\n * @generated from field: repeated int32 path = 1 [packed = true];\n */\n this.path = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new GeneratedCodeInfo_Annotation().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new GeneratedCodeInfo_Annotation().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new GeneratedCodeInfo_Annotation().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(GeneratedCodeInfo_Annotation, a, b);\n }\n}\nGeneratedCodeInfo_Annotation.runtime = proto2;\nGeneratedCodeInfo_Annotation.typeName = \"google.protobuf.GeneratedCodeInfo.Annotation\";\nGeneratedCodeInfo_Annotation.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"path\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true, packed: true },\n { no: 2, name: \"source_file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"begin\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"semantic\", kind: \"enum\", T: proto2.getEnumType(GeneratedCodeInfo_Annotation_Semantic), opt: true },\n]);\n/**\n * Represents the identified object's effect on the element in the original\n * .proto file.\n *\n * @generated from enum google.protobuf.GeneratedCodeInfo.Annotation.Semantic\n */\nexport var GeneratedCodeInfo_Annotation_Semantic;\n(function (GeneratedCodeInfo_Annotation_Semantic) {\n /**\n * There is no effect or the effect is indescribable.\n *\n * @generated from enum value: NONE = 0;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"NONE\"] = 0] = \"NONE\";\n /**\n * The element is set or otherwise mutated.\n *\n * @generated from enum value: SET = 1;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"SET\"] = 1] = \"SET\";\n /**\n * An alias to the element is returned.\n *\n * @generated from enum value: ALIAS = 2;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"ALIAS\"] = 2] = \"ALIAS\";\n})(GeneratedCodeInfo_Annotation_Semantic || (GeneratedCodeInfo_Annotation_Semantic = {}));\n// Retrieve enum metadata with: proto2.getEnumType(GeneratedCodeInfo_Annotation_Semantic)\nproto2.util.setEnumType(GeneratedCodeInfo_Annotation_Semantic, \"google.protobuf.GeneratedCodeInfo.Annotation.Semantic\", [\n { no: 0, name: \"NONE\" },\n { no: 1, name: \"SET\" },\n { no: 2, name: \"ALIAS\" },\n]);\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../../message.js\";\nimport { proto3 } from \"../../proto3.js\";\n/**\n * A generic empty message that you can re-use to avoid defining duplicated\n * empty messages in your APIs. A typical example is to use it as the request\n * or the response type of an API method. For instance:\n *\n * service Foo {\n * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n * }\n *\n *\n * @generated from message google.protobuf.Empty\n */\nexport class Empty extends Message {\n constructor(data) {\n super();\n proto3.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new Empty().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new Empty().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new Empty().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto3.util.equals(Empty, a, b);\n }\n}\nEmpty.runtime = proto3;\nEmpty.typeName = \"google.protobuf.Empty\";\nEmpty.fields = proto3.util.newFieldList(() => []);\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file user/user.proto (package user, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message user.VerifyUserRequest\n */\nexport class VerifyUserRequest extends Message {\n /**\n * @generated from field: string secret = 1;\n */\n secret = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.VerifyUserRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): VerifyUserRequest {\n return new VerifyUserRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): VerifyUserRequest {\n return new VerifyUserRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): VerifyUserRequest {\n return new VerifyUserRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: VerifyUserRequest | PlainMessage | undefined, b: VerifyUserRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(VerifyUserRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.GroupInfoRequest\n */\nexport class GroupInfoRequest extends Message {\n /**\n * @generated from field: string secret = 1;\n */\n secret = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.GroupInfoRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GroupInfoRequest {\n return new GroupInfoRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GroupInfoRequest {\n return new GroupInfoRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GroupInfoRequest {\n return new GroupInfoRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GroupInfoRequest | PlainMessage | undefined, b: GroupInfoRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GroupInfoRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.GroupID\n */\nexport class GroupID extends Message {\n /**\n * @generated from field: string group_id = 1;\n */\n groupId = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.GroupID\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"group_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GroupID {\n return new GroupID().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GroupID {\n return new GroupID().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GroupID {\n return new GroupID().fromJsonString(jsonString, options);\n }\n\n static equals(a: GroupID | PlainMessage | undefined, b: GroupID | PlainMessage | undefined): boolean {\n return proto3.util.equals(GroupID, a, b);\n }\n}\n\n/**\n * @generated from message user.ShareRequest\n */\nexport class ShareRequest extends Message {\n /**\n * @generated from field: string content_id = 1;\n */\n contentId = \"\";\n\n /**\n * @generated from field: string group_id = 2;\n */\n groupId = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.ShareRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"group_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ShareRequest {\n return new ShareRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ShareRequest {\n return new ShareRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ShareRequest {\n return new ShareRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ShareRequest | PlainMessage | undefined, b: ShareRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ShareRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.GroupInvite\n */\nexport class GroupInvite extends Message {\n /**\n * @generated from field: string secret = 1;\n */\n secret = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.GroupInvite\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GroupInvite {\n return new GroupInvite().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GroupInvite {\n return new GroupInvite().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GroupInvite {\n return new GroupInvite().fromJsonString(jsonString, options);\n }\n\n static equals(a: GroupInvite | PlainMessage | undefined, b: GroupInvite | PlainMessage | undefined): boolean {\n return proto3.util.equals(GroupInvite, a, b);\n }\n}\n\n/**\n * @generated from message user.Groups\n */\nexport class Groups extends Message {\n /**\n * @generated from field: repeated user.Group groups = 1;\n */\n groups: Group[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.Groups\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"groups\", kind: \"message\", T: Group, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Groups {\n return new Groups().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Groups {\n return new Groups().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Groups {\n return new Groups().fromJsonString(jsonString, options);\n }\n\n static equals(a: Groups | PlainMessage | undefined, b: Groups | PlainMessage | undefined): boolean {\n return proto3.util.equals(Groups, a, b);\n }\n}\n\n/**\n * @generated from message user.AnalyzeConversationRequest\n */\nexport class AnalyzeConversationRequest extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.AnalyzeConversationRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeConversationRequest | PlainMessage | undefined, b: AnalyzeConversationRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeConversationRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.User\n */\nexport class User extends Message {\n /**\n * @generated from field: string email = 1;\n */\n email = \"\";\n\n /**\n * @generated from field: string password = 2;\n */\n password = \"\";\n\n /**\n * @generated from field: string username = 3;\n */\n username = \"\";\n\n /**\n * @generated from field: user.Config config = 4;\n */\n config?: Config;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.User\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"email\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"password\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"username\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"config\", kind: \"message\", T: Config },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): User {\n return new User().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): User {\n return new User().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): User {\n return new User().fromJsonString(jsonString, options);\n }\n\n static equals(a: User | PlainMessage | undefined, b: User | PlainMessage | undefined): boolean {\n return proto3.util.equals(User, a, b);\n }\n}\n\n/**\n * @generated from message user.Group\n */\nexport class Group extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated string users = 3;\n */\n users: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.Group\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"users\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Group {\n return new Group().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Group {\n return new Group().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Group {\n return new Group().fromJsonString(jsonString, options);\n }\n\n static equals(a: Group | PlainMessage | undefined, b: Group | PlainMessage | undefined): boolean {\n return proto3.util.equals(Group, a, b);\n }\n}\n\n/**\n * @generated from message user.Config\n */\nexport class Config extends Message {\n /**\n * @generated from field: repeated string domain_whitelist = 1;\n */\n domainWhitelist: string[] = [];\n\n /**\n * @generated from field: bool offline_voice = 2;\n */\n offlineVoice = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.Config\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"domain_whitelist\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"offline_voice\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Config {\n return new Config().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Config {\n return new Config().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Config {\n return new Config().fromJsonString(jsonString, options);\n }\n\n static equals(a: Config | PlainMessage | undefined, b: Config | PlainMessage | undefined): boolean {\n return proto3.util.equals(Config, a, b);\n }\n}\n\n/**\n * @generated from message user.LoginResponse\n */\nexport class LoginResponse extends Message {\n /**\n * @generated from field: user.User user = 1;\n */\n user?: User;\n\n /**\n * @generated from field: bool success = 2;\n */\n success = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.LoginResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"message\", T: User },\n { no: 2, name: \"success\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): LoginResponse {\n return new LoginResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): LoginResponse {\n return new LoginResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): LoginResponse {\n return new LoginResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: LoginResponse | PlainMessage | undefined, b: LoginResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(LoginResponse, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file content/chatgpt/conversation.proto (package chatgpt, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message as Message$1, proto3, protoInt64 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message chatgpt.Conversation\n */\nexport class Conversation extends Message$1 {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: double create_time = 2;\n */\n createTime = 0;\n\n /**\n * @generated from field: double update_time = 3;\n */\n updateTime = 0;\n\n /**\n * @generated from field: map mapping = 4;\n */\n mapping: { [key: string]: Node } = {};\n\n /**\n * @generated from field: string conversation_id = 5;\n */\n conversationId = \"\";\n\n /**\n * @generated from field: string conversation_template_id = 6;\n */\n conversationTemplateId = \"\";\n\n /**\n * @generated from field: string current_node = 7;\n */\n currentNode = \"\";\n\n /**\n * @generated from field: string gizmo_id = 8;\n */\n gizmoId = \"\";\n\n /**\n * moderation_results = []\n * plugin_ids = null\n * safe_urls = []\n *\n * @generated from field: bool is_archived = 9;\n */\n isArchived = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Conversation\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"create_time\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 3, name: \"update_time\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 4, name: \"mapping\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: Node} },\n { no: 5, name: \"conversation_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"conversation_template_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"current_node\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 8, name: \"gizmo_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 9, name: \"is_archived\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Conversation {\n return new Conversation().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Conversation {\n return new Conversation().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Conversation {\n return new Conversation().fromJsonString(jsonString, options);\n }\n\n static equals(a: Conversation | PlainMessage | undefined, b: Conversation | PlainMessage | undefined): boolean {\n return proto3.util.equals(Conversation, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.Node\n */\nexport class Node extends Message$1 {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: chatgpt.Message message = 2;\n */\n message?: Message;\n\n /**\n * @generated from field: string parent = 3;\n */\n parent = \"\";\n\n /**\n * @generated from field: repeated string children = 4;\n */\n children: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Node\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"message\", kind: \"message\", T: Message },\n { no: 3, name: \"parent\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"children\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Node {\n return new Node().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Node {\n return new Node().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Node {\n return new Node().fromJsonString(jsonString, options);\n }\n\n static equals(a: Node | PlainMessage | undefined, b: Node | PlainMessage | undefined): boolean {\n return proto3.util.equals(Node, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.Message\n */\nexport class Message extends Message$1 {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: chatgpt.Author author = 2;\n */\n author?: Author;\n\n /**\n * Optional, based on usage in JSON\n *\n * @generated from field: double create_time = 3;\n */\n createTime = 0;\n\n /**\n * @generated from field: chatgpt.Content content = 4;\n */\n content?: Content;\n\n /**\n * @generated from field: string status = 5;\n */\n status = \"\";\n\n /**\n * Optional, based on usage in JSON\n *\n * @generated from field: bool end_turn = 6;\n */\n endTurn = false;\n\n /**\n * @generated from field: int32 weight = 7;\n */\n weight = 0;\n\n /**\n * @generated from field: chatgpt.MessageMetadata metadata = 8;\n */\n metadata?: MessageMetadata;\n\n /**\n * @generated from field: string recipient = 9;\n */\n recipient = \"\";\n\n /**\n * @generated from field: double update_time = 10;\n */\n updateTime = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Message\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"author\", kind: \"message\", T: Author },\n { no: 3, name: \"create_time\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 4, name: \"content\", kind: \"message\", T: Content },\n { no: 5, name: \"status\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"end_turn\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 7, name: \"weight\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 8, name: \"metadata\", kind: \"message\", T: MessageMetadata },\n { no: 9, name: \"recipient\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 10, name: \"update_time\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Message {\n return new Message().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Message {\n return new Message().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Message {\n return new Message().fromJsonString(jsonString, options);\n }\n\n static equals(a: Message | PlainMessage | undefined, b: Message | PlainMessage | undefined): boolean {\n return proto3.util.equals(Message, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.MessageMetadata\n */\nexport class MessageMetadata extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.MessageMetadata\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): MessageMetadata {\n return new MessageMetadata().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): MessageMetadata {\n return new MessageMetadata().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): MessageMetadata {\n return new MessageMetadata().fromJsonString(jsonString, options);\n }\n\n static equals(a: MessageMetadata | PlainMessage | undefined, b: MessageMetadata | PlainMessage | undefined): boolean {\n return proto3.util.equals(MessageMetadata, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.Author\n */\nexport class Author extends Message$1 {\n /**\n * @generated from field: string role = 1;\n */\n role = \"\";\n\n /**\n * @generated from field: chatgpt.AuthorMetadata metadata = 2;\n */\n metadata?: AuthorMetadata;\n\n /**\n * @generated from field: string name = 3;\n */\n name = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Author\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"role\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"metadata\", kind: \"message\", T: AuthorMetadata },\n { no: 3, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Author {\n return new Author().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Author {\n return new Author().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Author {\n return new Author().fromJsonString(jsonString, options);\n }\n\n static equals(a: Author | PlainMessage | undefined, b: Author | PlainMessage | undefined): boolean {\n return proto3.util.equals(Author, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.Content\n */\nexport class Content extends Message$1 {\n /**\n * \"text\" or \"dalle.text2im\", prob others too\n *\n * @generated from field: string content_type = 1;\n */\n contentType = \"\";\n\n /**\n * TODO breadchris make this work for images\n * google.protobuf.Value parts = 2;\n *\n * @generated from field: repeated string text_parts = 2;\n */\n textParts: string[] = [];\n\n /**\n * @generated from field: repeated chatgpt.ImageAsset image_parts = 3;\n */\n imageParts: ImageAsset[] = [];\n\n /**\n * @generated from field: string text = 4;\n */\n text = \"\";\n\n /**\n * deprecated\n *\n * @generated from field: repeated string parts = 5;\n */\n parts: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Content\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text_parts\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 3, name: \"image_parts\", kind: \"message\", T: ImageAsset, repeated: true },\n { no: 4, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"parts\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Content {\n return new Content().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Content {\n return new Content().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Content {\n return new Content().fromJsonString(jsonString, options);\n }\n\n static equals(a: Content | PlainMessage | undefined, b: Content | PlainMessage | undefined): boolean {\n return proto3.util.equals(Content, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.ImageAsset\n */\nexport class ImageAsset extends Message$1 {\n /**\n * @generated from field: string content_type = 1;\n */\n contentType = \"\";\n\n /**\n * @generated from field: string asset_pointer = 2;\n */\n assetPointer = \"\";\n\n /**\n * @generated from field: int64 size_bytes = 3;\n */\n sizeBytes = protoInt64.zero;\n\n /**\n * @generated from field: int32 width = 4;\n */\n width = 0;\n\n /**\n * @generated from field: int32 height = 5;\n */\n height = 0;\n\n /**\n * @generated from field: int32 fovea = 6;\n */\n fovea = 0;\n\n /**\n * @generated from field: chatgpt.Metadata metadata = 7;\n */\n metadata?: Metadata;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.ImageAsset\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"asset_pointer\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"size_bytes\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 4, name: \"width\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 5, name: \"height\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 6, name: \"fovea\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 7, name: \"metadata\", kind: \"message\", T: Metadata },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ImageAsset {\n return new ImageAsset().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ImageAsset {\n return new ImageAsset().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ImageAsset {\n return new ImageAsset().fromJsonString(jsonString, options);\n }\n\n static equals(a: ImageAsset | PlainMessage | undefined, b: ImageAsset | PlainMessage | undefined): boolean {\n return proto3.util.equals(ImageAsset, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.Metadata\n */\nexport class Metadata extends Message$1 {\n /**\n * @generated from field: chatgpt.DalleMetadata dalle = 1;\n */\n dalle?: DalleMetadata;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Metadata\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"dalle\", kind: \"message\", T: DalleMetadata },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Metadata {\n return new Metadata().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Metadata {\n return new Metadata().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Metadata {\n return new Metadata().fromJsonString(jsonString, options);\n }\n\n static equals(a: Metadata | PlainMessage | undefined, b: Metadata | PlainMessage | undefined): boolean {\n return proto3.util.equals(Metadata, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.DalleMetadata\n */\nexport class DalleMetadata extends Message$1 {\n /**\n * @generated from field: string gen_id = 1;\n */\n genId = \"\";\n\n /**\n * @generated from field: string prompt = 2;\n */\n prompt = \"\";\n\n /**\n * @generated from field: uint32 seed = 3;\n */\n seed = 0;\n\n /**\n * @generated from field: string serialization_title = 4;\n */\n serializationTitle = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.DalleMetadata\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"gen_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"prompt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"seed\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 4, name: \"serialization_title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): DalleMetadata {\n return new DalleMetadata().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): DalleMetadata {\n return new DalleMetadata().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): DalleMetadata {\n return new DalleMetadata().fromJsonString(jsonString, options);\n }\n\n static equals(a: DalleMetadata | PlainMessage | undefined, b: DalleMetadata | PlainMessage | undefined): boolean {\n return proto3.util.equals(DalleMetadata, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.AuthorMetadata\n */\nexport class AuthorMetadata extends Message$1 {\n /**\n * This message can be extended based on the different key-value pairs found in your JSON's metadata.\n * For example:\n *\n * @generated from field: repeated chatgpt.Attachment attachments = 1;\n */\n attachments: Attachment[] = [];\n\n /**\n * Use string for timestamps to avoid precision issues, or use int64/uint64 if they represent epoch time.\n *\n * @generated from field: string timestamp_ = 2;\n */\n timestamp = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.AuthorMetadata\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"attachments\", kind: \"message\", T: Attachment, repeated: true },\n { no: 2, name: \"timestamp_\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AuthorMetadata {\n return new AuthorMetadata().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AuthorMetadata {\n return new AuthorMetadata().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AuthorMetadata {\n return new AuthorMetadata().fromJsonString(jsonString, options);\n }\n\n static equals(a: AuthorMetadata | PlainMessage | undefined, b: AuthorMetadata | PlainMessage | undefined): boolean {\n return proto3.util.equals(AuthorMetadata, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.Attachment\n */\nexport class Attachment extends Message$1 {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: string mimeType = 3;\n */\n mimeType = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Attachment\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"mimeType\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Attachment {\n return new Attachment().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Attachment {\n return new Attachment().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Attachment {\n return new Attachment().fromJsonString(jsonString, options);\n }\n\n static equals(a: Attachment | PlainMessage | undefined, b: Attachment | PlainMessage | undefined): boolean {\n return proto3.util.equals(Attachment, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file content/browser/history.proto (package browser, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message browser.History\n */\nexport class History extends Message {\n /**\n * @generated from field: repeated browser.Node nodes = 1;\n */\n nodes: Node[] = [];\n\n /**\n * @generated from field: repeated browser.Edge edges = 2;\n */\n edges: Edge[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"browser.History\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"nodes\", kind: \"message\", T: Node, repeated: true },\n { no: 2, name: \"edges\", kind: \"message\", T: Edge, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): History {\n return new History().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): History {\n return new History().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): History {\n return new History().fromJsonString(jsonString, options);\n }\n\n static equals(a: History | PlainMessage | undefined, b: History | PlainMessage | undefined): boolean {\n return proto3.util.equals(History, a, b);\n }\n}\n\n/**\n * @generated from message browser.Node\n */\nexport class Node extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string url = 2;\n */\n url = \"\";\n\n /**\n * @generated from field: string title = 3;\n */\n title = \"\";\n\n /**\n * @generated from field: double open = 4;\n */\n open = 0;\n\n /**\n * @generated from field: double close = 5;\n */\n close = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"browser.Node\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"open\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 5, name: \"close\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Node {\n return new Node().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Node {\n return new Node().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Node {\n return new Node().fromJsonString(jsonString, options);\n }\n\n static equals(a: Node | PlainMessage | undefined, b: Node | PlainMessage | undefined): boolean {\n return proto3.util.equals(Node, a, b);\n }\n}\n\n/**\n * @generated from message browser.Edge\n */\nexport class Edge extends Message {\n /**\n * @generated from field: string from = 1;\n */\n from = \"\";\n\n /**\n * @generated from field: string to = 2;\n */\n to = \"\";\n\n /**\n * @generated from field: string tab = 3;\n */\n tab = \"\";\n\n /**\n * @generated from field: double visit_time = 4;\n */\n visitTime = 0;\n\n /**\n * @generated from field: double visit_duration = 5;\n */\n visitDuration = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"browser.Edge\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"from\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"to\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"tab\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"visit_time\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 5, name: \"visit_duration\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Edge {\n return new Edge().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Edge {\n return new Edge().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Edge {\n return new Edge().fromJsonString(jsonString, options);\n }\n\n static equals(a: Edge | PlainMessage | undefined, b: Edge | PlainMessage | undefined): boolean {\n return proto3.util.equals(Edge, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file content/blog.proto (package content, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message content.HugoConfig\n */\nexport class HugoConfig extends Message {\n /**\n * @generated from field: string publish_dir = 1;\n */\n publishDir = \"\";\n\n /**\n * @generated from field: string base_url = 2;\n */\n baseUrl = \"\";\n\n /**\n * @generated from field: string title = 3;\n */\n title = \"\";\n\n /**\n * @generated from field: int32 paginate = 4;\n */\n paginate = 0;\n\n /**\n * @generated from field: repeated string theme = 5;\n */\n theme: string[] = [];\n\n /**\n * @generated from field: bool enable_inline_shortcodes = 6;\n */\n enableInlineShortcodes = false;\n\n /**\n * @generated from field: bool enable_robots_txt = 7;\n */\n enableRobotsTxt = false;\n\n /**\n * @generated from field: bool build_drafts = 8;\n */\n buildDrafts = false;\n\n /**\n * @generated from field: bool build_future = 9;\n */\n buildFuture = false;\n\n /**\n * @generated from field: bool build_expired = 10;\n */\n buildExpired = false;\n\n /**\n * @generated from field: bool enable_emoji = 11;\n */\n enableEmoji = false;\n\n /**\n * @generated from field: bool pygments_use_classes = 12;\n */\n pygmentsUseClasses = false;\n\n /**\n * @generated from field: repeated string main_sections = 13;\n */\n mainSections: string[] = [];\n\n /**\n * @generated from field: content.MinifyConfig minify = 14;\n */\n minify?: MinifyConfig;\n\n /**\n * @generated from field: map languages = 15;\n */\n languages: { [key: string]: LanguageConfig } = {};\n\n /**\n * @generated from field: map outputs = 16;\n */\n outputs: { [key: string]: RepeatedString } = {};\n\n /**\n * @generated from field: content.ParamsConfig params = 17;\n */\n params?: ParamsConfig;\n\n /**\n * @generated from field: content.MarkupConfig markup = 18;\n */\n markup?: MarkupConfig;\n\n /**\n * @generated from field: content.ServicesConfig services = 19;\n */\n services?: ServicesConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HugoConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"publish_dir\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"base_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"paginate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 5, name: \"theme\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 6, name: \"enable_inline_shortcodes\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 7, name: \"enable_robots_txt\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 8, name: \"build_drafts\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 9, name: \"build_future\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 10, name: \"build_expired\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 11, name: \"enable_emoji\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 12, name: \"pygments_use_classes\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 13, name: \"main_sections\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 14, name: \"minify\", kind: \"message\", T: MinifyConfig },\n { no: 15, name: \"languages\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: LanguageConfig} },\n { no: 16, name: \"outputs\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: RepeatedString} },\n { no: 17, name: \"params\", kind: \"message\", T: ParamsConfig },\n { no: 18, name: \"markup\", kind: \"message\", T: MarkupConfig },\n { no: 19, name: \"services\", kind: \"message\", T: ServicesConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HugoConfig {\n return new HugoConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HugoConfig {\n return new HugoConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HugoConfig {\n return new HugoConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HugoConfig | PlainMessage | undefined, b: HugoConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(HugoConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.MinifyConfig\n */\nexport class MinifyConfig extends Message {\n /**\n * @generated from field: bool disable_xml = 1;\n */\n disableXml = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.MinifyConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"disable_xml\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): MinifyConfig {\n return new MinifyConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): MinifyConfig {\n return new MinifyConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): MinifyConfig {\n return new MinifyConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: MinifyConfig | PlainMessage | undefined, b: MinifyConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(MinifyConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.LanguageConfig\n */\nexport class LanguageConfig extends Message {\n /**\n * @generated from field: string language_name = 1;\n */\n languageName = \"\";\n\n /**\n * @generated from field: int32 weight = 2;\n */\n weight = 0;\n\n /**\n * @generated from field: string title = 3;\n */\n title = \"\";\n\n /**\n * @generated from field: map taxonomies = 4;\n */\n taxonomies: { [key: string]: string } = {};\n\n /**\n * @generated from field: map menu = 5;\n */\n menu: { [key: string]: RepeatedMenuItem } = {};\n\n /**\n * @generated from field: map params = 6;\n */\n params: { [key: string]: string } = {};\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.LanguageConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"language_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"weight\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 3, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"taxonomies\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"scalar\", T: 9 /* ScalarType.STRING */} },\n { no: 5, name: \"menu\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: RepeatedMenuItem} },\n { no: 6, name: \"params\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"scalar\", T: 9 /* ScalarType.STRING */} },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): LanguageConfig {\n return new LanguageConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): LanguageConfig {\n return new LanguageConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): LanguageConfig {\n return new LanguageConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: LanguageConfig | PlainMessage | undefined, b: LanguageConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(LanguageConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.MenuItem\n */\nexport class MenuItem extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: string url = 2;\n */\n url = \"\";\n\n /**\n * @generated from field: int32 weight = 3;\n */\n weight = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.MenuItem\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"weight\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): MenuItem {\n return new MenuItem().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): MenuItem {\n return new MenuItem().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): MenuItem {\n return new MenuItem().fromJsonString(jsonString, options);\n }\n\n static equals(a: MenuItem | PlainMessage | undefined, b: MenuItem | PlainMessage | undefined): boolean {\n return proto3.util.equals(MenuItem, a, b);\n }\n}\n\n/**\n * @generated from message content.EditPostConfig\n */\nexport class EditPostConfig extends Message {\n /**\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n /**\n * @generated from field: string text = 2;\n */\n text = \"\";\n\n /**\n * @generated from field: bool append_file_path = 3;\n */\n appendFilePath = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.EditPostConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"append_file_path\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): EditPostConfig {\n return new EditPostConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): EditPostConfig {\n return new EditPostConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): EditPostConfig {\n return new EditPostConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: EditPostConfig | PlainMessage | undefined, b: EditPostConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(EditPostConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.AssetsConfig\n */\nexport class AssetsConfig extends Message {\n /**\n * @generated from field: bool disable_hljs = 1;\n */\n disableHljs = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.AssetsConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"disable_hljs\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AssetsConfig {\n return new AssetsConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AssetsConfig {\n return new AssetsConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AssetsConfig {\n return new AssetsConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: AssetsConfig | PlainMessage | undefined, b: AssetsConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(AssetsConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.MarkupConfig\n */\nexport class MarkupConfig extends Message {\n /**\n * @generated from field: content.GoldmarkConfig goldmark = 1;\n */\n goldmark?: GoldmarkConfig;\n\n /**\n * @generated from field: content.HighlightConfig highlight = 2;\n */\n highlight?: HighlightConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.MarkupConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"goldmark\", kind: \"message\", T: GoldmarkConfig },\n { no: 2, name: \"highlight\", kind: \"message\", T: HighlightConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): MarkupConfig {\n return new MarkupConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): MarkupConfig {\n return new MarkupConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): MarkupConfig {\n return new MarkupConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: MarkupConfig | PlainMessage | undefined, b: MarkupConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(MarkupConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.GoldmarkConfig\n */\nexport class GoldmarkConfig extends Message {\n /**\n * @generated from field: content.RendererConfig renderer = 1;\n */\n renderer?: RendererConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.GoldmarkConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"renderer\", kind: \"message\", T: RendererConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GoldmarkConfig {\n return new GoldmarkConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GoldmarkConfig {\n return new GoldmarkConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GoldmarkConfig {\n return new GoldmarkConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: GoldmarkConfig | PlainMessage | undefined, b: GoldmarkConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(GoldmarkConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.RendererConfig\n */\nexport class RendererConfig extends Message {\n /**\n * @generated from field: bool unsafe = 1;\n */\n unsafe = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.RendererConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"unsafe\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RendererConfig {\n return new RendererConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RendererConfig {\n return new RendererConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RendererConfig {\n return new RendererConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: RendererConfig | PlainMessage | undefined, b: RendererConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(RendererConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.HighlightConfig\n */\nexport class HighlightConfig extends Message {\n /**\n * @generated from field: bool no_classes = 1;\n */\n noClasses = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HighlightConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"no_classes\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HighlightConfig {\n return new HighlightConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HighlightConfig {\n return new HighlightConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HighlightConfig {\n return new HighlightConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HighlightConfig | PlainMessage | undefined, b: HighlightConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(HighlightConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ServicesConfig\n */\nexport class ServicesConfig extends Message {\n /**\n * @generated from field: content.ServiceConfig instagram = 1;\n */\n instagram?: ServiceConfig;\n\n /**\n * @generated from field: content.ServiceConfig twitter = 2;\n */\n twitter?: ServiceConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ServicesConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"instagram\", kind: \"message\", T: ServiceConfig },\n { no: 2, name: \"twitter\", kind: \"message\", T: ServiceConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ServicesConfig {\n return new ServicesConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ServicesConfig {\n return new ServicesConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ServicesConfig {\n return new ServicesConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ServicesConfig | PlainMessage | undefined, b: ServicesConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ServicesConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ServiceConfig\n */\nexport class ServiceConfig extends Message {\n /**\n * @generated from field: bool disable_inline_css = 1;\n */\n disableInlineCss = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ServiceConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"disable_inline_css\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ServiceConfig {\n return new ServiceConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ServiceConfig {\n return new ServiceConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ServiceConfig {\n return new ServiceConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ServiceConfig | PlainMessage | undefined, b: ServiceConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ServiceConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.RepeatedString\n */\nexport class RepeatedString extends Message {\n /**\n * @generated from field: repeated string values = 1;\n */\n values: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.RepeatedString\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"values\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RepeatedString {\n return new RepeatedString().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RepeatedString {\n return new RepeatedString().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RepeatedString {\n return new RepeatedString().fromJsonString(jsonString, options);\n }\n\n static equals(a: RepeatedString | PlainMessage | undefined, b: RepeatedString | PlainMessage | undefined): boolean {\n return proto3.util.equals(RepeatedString, a, b);\n }\n}\n\n/**\n * @generated from message content.RepeatedMenuItem\n */\nexport class RepeatedMenuItem extends Message {\n /**\n * @generated from field: repeated content.MenuItem items = 1;\n */\n items: MenuItem[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.RepeatedMenuItem\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"items\", kind: \"message\", T: MenuItem, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RepeatedMenuItem {\n return new RepeatedMenuItem().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RepeatedMenuItem {\n return new RepeatedMenuItem().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RepeatedMenuItem {\n return new RepeatedMenuItem().fromJsonString(jsonString, options);\n }\n\n static equals(a: RepeatedMenuItem | PlainMessage | undefined, b: RepeatedMenuItem | PlainMessage | undefined): boolean {\n return proto3.util.equals(RepeatedMenuItem, a, b);\n }\n}\n\n/**\n * @generated from message content.ParamsConfig\n */\nexport class ParamsConfig extends Message {\n /**\n * @generated from field: string env = 1;\n */\n env = \"\";\n\n /**\n * @generated from field: string description = 2;\n */\n description = \"\";\n\n /**\n * @generated from field: string author = 3;\n */\n author = \"\";\n\n /**\n * @generated from field: string default_theme = 4;\n */\n defaultTheme = \"\";\n\n /**\n * @generated from field: bool show_share_buttons = 5;\n */\n showShareButtons = false;\n\n /**\n * @generated from field: bool show_reading_time = 6;\n */\n showReadingTime = false;\n\n /**\n * @generated from field: bool display_full_lang_name = 7;\n */\n displayFullLangName = false;\n\n /**\n * @generated from field: bool show_post_nav_links = 8;\n */\n showPostNavLinks = false;\n\n /**\n * @generated from field: bool show_bread_crumbs = 9;\n */\n showBreadCrumbs = false;\n\n /**\n * @generated from field: bool show_code_copy_buttons = 10;\n */\n showCodeCopyButtons = false;\n\n /**\n * @generated from field: bool show_rss_button_in_section_term_list = 11;\n */\n showRssButtonInSectionTermList = false;\n\n /**\n * @generated from field: bool show_all_pages_in_archive = 12;\n */\n showAllPagesInArchive = false;\n\n /**\n * @generated from field: bool show_page_nums = 13;\n */\n showPageNums = false;\n\n /**\n * @generated from field: bool show_toc = 14;\n */\n showToc = false;\n\n /**\n * @generated from field: repeated string images = 15;\n */\n images: string[] = [];\n\n /**\n * @generated from field: content.ProfileModeConfig profile_mode = 16;\n */\n profileMode?: ProfileModeConfig;\n\n /**\n * @generated from field: content.HomeInfoParamsConfig home_info_params = 17;\n */\n homeInfoParams?: HomeInfoParamsConfig;\n\n /**\n * @generated from field: repeated content.SocialIconConfig social_icons = 18;\n */\n socialIcons: SocialIconConfig[] = [];\n\n /**\n * @generated from field: content.EditPostConfig edit_post = 19;\n */\n editPost?: EditPostConfig;\n\n /**\n * @generated from field: content.AssetsConfig assets = 20;\n */\n assets?: AssetsConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ParamsConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"env\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"author\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"default_theme\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"show_share_buttons\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 6, name: \"show_reading_time\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 7, name: \"display_full_lang_name\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 8, name: \"show_post_nav_links\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 9, name: \"show_bread_crumbs\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 10, name: \"show_code_copy_buttons\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 11, name: \"show_rss_button_in_section_term_list\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 12, name: \"show_all_pages_in_archive\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 13, name: \"show_page_nums\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 14, name: \"show_toc\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 15, name: \"images\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 16, name: \"profile_mode\", kind: \"message\", T: ProfileModeConfig },\n { no: 17, name: \"home_info_params\", kind: \"message\", T: HomeInfoParamsConfig },\n { no: 18, name: \"social_icons\", kind: \"message\", T: SocialIconConfig, repeated: true },\n { no: 19, name: \"edit_post\", kind: \"message\", T: EditPostConfig },\n { no: 20, name: \"assets\", kind: \"message\", T: AssetsConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ParamsConfig {\n return new ParamsConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ParamsConfig {\n return new ParamsConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ParamsConfig {\n return new ParamsConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ParamsConfig | PlainMessage | undefined, b: ParamsConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ParamsConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ProfileModeConfig\n */\nexport class ProfileModeConfig extends Message {\n /**\n * @generated from field: bool enabled = 1;\n */\n enabled = false;\n\n /**\n * @generated from field: string title = 2;\n */\n title = \"\";\n\n /**\n * @generated from field: string image_url = 3;\n */\n imageUrl = \"\";\n\n /**\n * @generated from field: string image_title = 4;\n */\n imageTitle = \"\";\n\n /**\n * @generated from field: repeated content.ButtonConfig buttons = 5;\n */\n buttons: ButtonConfig[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ProfileModeConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"enabled\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 2, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"image_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"image_title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"buttons\", kind: \"message\", T: ButtonConfig, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ProfileModeConfig {\n return new ProfileModeConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ProfileModeConfig {\n return new ProfileModeConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ProfileModeConfig {\n return new ProfileModeConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ProfileModeConfig | PlainMessage | undefined, b: ProfileModeConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ProfileModeConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ButtonConfig\n */\nexport class ButtonConfig extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: string url = 2;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ButtonConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ButtonConfig {\n return new ButtonConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ButtonConfig {\n return new ButtonConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ButtonConfig {\n return new ButtonConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ButtonConfig | PlainMessage | undefined, b: ButtonConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ButtonConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.HomeInfoParamsConfig\n */\nexport class HomeInfoParamsConfig extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string content = 2;\n */\n content = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HomeInfoParamsConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"content\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HomeInfoParamsConfig {\n return new HomeInfoParamsConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HomeInfoParamsConfig {\n return new HomeInfoParamsConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HomeInfoParamsConfig {\n return new HomeInfoParamsConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HomeInfoParamsConfig | PlainMessage | undefined, b: HomeInfoParamsConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(HomeInfoParamsConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.SocialIconConfig\n */\nexport class SocialIconConfig extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: string title = 2;\n */\n title = \"\";\n\n /**\n * @generated from field: string url = 3;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.SocialIconConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SocialIconConfig {\n return new SocialIconConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SocialIconConfig {\n return new SocialIconConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SocialIconConfig {\n return new SocialIconConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: SocialIconConfig | PlainMessage | undefined, b: SocialIconConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(SocialIconConfig, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file content/content.proto (package content, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { DescriptorProto, EnumDescriptorProto, Message, proto3, protoInt64 } from \"@bufbuild/protobuf\";\nimport { User } from \"../user/user_pb.js\";\nimport { Conversation } from \"./chatgpt/conversation_pb.js\";\nimport { History } from \"./browser/history_pb.js\";\nimport { HugoConfig, MenuItem } from \"./blog_pb.js\";\n\n/**\n * @generated from message content.InferRequest\n */\nexport class InferRequest extends Message {\n /**\n * @generated from field: string prompt = 1;\n */\n prompt = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.InferRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): InferRequest {\n return new InferRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): InferRequest {\n return new InferRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): InferRequest {\n return new InferRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: InferRequest | PlainMessage | undefined, b: InferRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(InferRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.InferResponse\n */\nexport class InferResponse extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.InferResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): InferResponse {\n return new InferResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): InferResponse {\n return new InferResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): InferResponse {\n return new InferResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: InferResponse | PlainMessage | undefined, b: InferResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(InferResponse, a, b);\n }\n}\n\n/**\n * @generated from message content.TypesResponse\n */\nexport class TypesResponse extends Message {\n /**\n * @generated from field: content.GRPCTypeInfo content = 1;\n */\n content?: GRPCTypeInfo;\n\n /**\n * @generated from field: content.GRPCTypeInfo site = 2;\n */\n site?: GRPCTypeInfo;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.TypesResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: GRPCTypeInfo },\n { no: 2, name: \"site\", kind: \"message\", T: GRPCTypeInfo },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): TypesResponse {\n return new TypesResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): TypesResponse {\n return new TypesResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): TypesResponse {\n return new TypesResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: TypesResponse | PlainMessage | undefined, b: TypesResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(TypesResponse, a, b);\n }\n}\n\n/**\n * @generated from message content.GetSourcesRequest\n */\nexport class GetSourcesRequest extends Message {\n /**\n * @generated from field: repeated string content_types = 1;\n */\n contentTypes: string[] = [];\n\n /**\n * @generated from field: repeated string tags = 2;\n */\n tags: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.GetSourcesRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_types\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSourcesRequest {\n return new GetSourcesRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSourcesRequest {\n return new GetSourcesRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSourcesRequest {\n return new GetSourcesRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSourcesRequest | PlainMessage | undefined, b: GetSourcesRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSourcesRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.VoiceInputRequest\n */\nexport class VoiceInputRequest extends Message {\n /**\n * @generated from field: int32 capture_device = 1;\n */\n captureDevice = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.VoiceInputRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"capture_device\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): VoiceInputRequest {\n return new VoiceInputRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): VoiceInputRequest {\n return new VoiceInputRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): VoiceInputRequest {\n return new VoiceInputRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: VoiceInputRequest | PlainMessage | undefined, b: VoiceInputRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(VoiceInputRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.VoiceInputResponse\n */\nexport class VoiceInputResponse extends Message {\n /**\n * @generated from field: content.Segment segment = 1;\n */\n segment?: Segment;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.VoiceInputResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"segment\", kind: \"message\", T: Segment },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): VoiceInputResponse {\n return new VoiceInputResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): VoiceInputResponse {\n return new VoiceInputResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): VoiceInputResponse {\n return new VoiceInputResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: VoiceInputResponse | PlainMessage | undefined, b: VoiceInputResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(VoiceInputResponse, a, b);\n }\n}\n\n/**\n * @generated from message content.RelateRequest\n */\nexport class RelateRequest extends Message {\n /**\n * @generated from field: string parent = 1;\n */\n parent = \"\";\n\n /**\n * @generated from field: repeated string children = 2;\n */\n children: string[] = [];\n\n /**\n * @generated from field: bool connect = 3;\n */\n connect = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.RelateRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"parent\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"children\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 3, name: \"connect\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RelateRequest {\n return new RelateRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RelateRequest {\n return new RelateRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RelateRequest {\n return new RelateRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: RelateRequest | PlainMessage | undefined, b: RelateRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(RelateRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.Sources\n */\nexport class Sources extends Message {\n /**\n * @generated from field: repeated content.EnumeratedSource sources = 1;\n */\n sources: EnumeratedSource[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Sources\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"sources\", kind: \"message\", T: EnumeratedSource, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Sources {\n return new Sources().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Sources {\n return new Sources().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Sources {\n return new Sources().fromJsonString(jsonString, options);\n }\n\n static equals(a: Sources | PlainMessage | undefined, b: Sources | PlainMessage | undefined): boolean {\n return proto3.util.equals(Sources, a, b);\n }\n}\n\n/**\n * @generated from message content.EnumeratedSource\n */\nexport class EnumeratedSource extends Message {\n /**\n * @generated from field: content.Source source = 1;\n */\n source?: Source;\n\n /**\n * @generated from field: repeated content.DisplayContent display_content = 2;\n */\n displayContent: DisplayContent[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.EnumeratedSource\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"source\", kind: \"message\", T: Source },\n { no: 2, name: \"display_content\", kind: \"message\", T: DisplayContent, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): EnumeratedSource {\n return new EnumeratedSource().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): EnumeratedSource {\n return new EnumeratedSource().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): EnumeratedSource {\n return new EnumeratedSource().fromJsonString(jsonString, options);\n }\n\n static equals(a: EnumeratedSource | PlainMessage | undefined, b: EnumeratedSource | PlainMessage | undefined): boolean {\n return proto3.util.equals(EnumeratedSource, a, b);\n }\n}\n\n/**\n * @generated from message content.DisplayContent\n */\nexport class DisplayContent extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string description = 2;\n */\n description = \"\";\n\n /**\n * @generated from field: string type = 3;\n */\n type = \"\";\n\n /**\n * @generated from field: content.Content content = 4;\n */\n content?: Content;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.DisplayContent\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"content\", kind: \"message\", T: Content },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): DisplayContent {\n return new DisplayContent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): DisplayContent {\n return new DisplayContent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): DisplayContent {\n return new DisplayContent().fromJsonString(jsonString, options);\n }\n\n static equals(a: DisplayContent | PlainMessage | undefined, b: DisplayContent | PlainMessage | undefined): boolean {\n return proto3.util.equals(DisplayContent, a, b);\n }\n}\n\n/**\n * @generated from message content.Source\n */\nexport class Source extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from oneof content.Source.type\n */\n type: {\n /**\n * @generated from field: content.Server server = 2;\n */\n value: Server;\n case: \"server\";\n } | {\n /**\n * @generated from field: content.Folder folder = 3;\n */\n value: Folder;\n case: \"folder\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Source\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"server\", kind: \"message\", T: Server, oneof: \"type\" },\n { no: 3, name: \"folder\", kind: \"message\", T: Folder, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Source {\n return new Source().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Source {\n return new Source().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Source {\n return new Source().fromJsonString(jsonString, options);\n }\n\n static equals(a: Source | PlainMessage | undefined, b: Source | PlainMessage | undefined): boolean {\n return proto3.util.equals(Source, a, b);\n }\n}\n\n/**\n * @generated from message content.Server\n */\nexport class Server extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Server\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Server {\n return new Server().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Server {\n return new Server().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Server {\n return new Server().fromJsonString(jsonString, options);\n }\n\n static equals(a: Server | PlainMessage | undefined, b: Server | PlainMessage | undefined): boolean {\n return proto3.util.equals(Server, a, b);\n }\n}\n\n/**\n * @generated from message content.Folder\n */\nexport class Folder extends Message {\n /**\n * @generated from field: string path = 2;\n */\n path = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Folder\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 2, name: \"path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Folder {\n return new Folder().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Folder {\n return new Folder().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Folder {\n return new Folder().fromJsonString(jsonString, options);\n }\n\n static equals(a: Folder | PlainMessage | undefined, b: Folder | PlainMessage | undefined): boolean {\n return proto3.util.equals(Folder, a, b);\n }\n}\n\n/**\n * @generated from message content.SetTagsRequest\n */\nexport class SetTagsRequest extends Message {\n /**\n * @generated from field: string content_id = 1;\n */\n contentId = \"\";\n\n /**\n * @generated from field: repeated string tags = 2;\n */\n tags: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.SetTagsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SetTagsRequest {\n return new SetTagsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SetTagsRequest {\n return new SetTagsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SetTagsRequest {\n return new SetTagsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: SetTagsRequest | PlainMessage | undefined, b: SetTagsRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(SetTagsRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.TagRequest\n */\nexport class TagRequest extends Message {\n /**\n * @generated from field: string group_id = 1;\n */\n groupId = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.TagRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"group_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): TagRequest {\n return new TagRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): TagRequest {\n return new TagRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): TagRequest {\n return new TagRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: TagRequest | PlainMessage | undefined, b: TagRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(TagRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.Tags\n */\nexport class Tags extends Message {\n /**\n * @generated from field: repeated content.Tag tags = 1;\n */\n tags: Tag[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Tags\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"tags\", kind: \"message\", T: Tag, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Tags {\n return new Tags().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Tags {\n return new Tags().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Tags {\n return new Tags().fromJsonString(jsonString, options);\n }\n\n static equals(a: Tags | PlainMessage | undefined, b: Tags | PlainMessage | undefined): boolean {\n return proto3.util.equals(Tags, a, b);\n }\n}\n\n/**\n * @generated from message content.Tag\n */\nexport class Tag extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated content.Tag sub_tags = 2;\n */\n subTags: Tag[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Tag\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"sub_tags\", kind: \"message\", T: Tag, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Tag {\n return new Tag().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Tag {\n return new Tag().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Tag {\n return new Tag().fromJsonString(jsonString, options);\n }\n\n static equals(a: Tag | PlainMessage | undefined, b: Tag | PlainMessage | undefined): boolean {\n return proto3.util.equals(Tag, a, b);\n }\n}\n\n/**\n * @generated from message content.ContentIDs\n */\nexport class ContentIDs extends Message {\n /**\n * @generated from field: repeated string content_ids = 1;\n */\n contentIds: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ContentIDs\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_ids\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ContentIDs {\n return new ContentIDs().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ContentIDs {\n return new ContentIDs().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ContentIDs {\n return new ContentIDs().fromJsonString(jsonString, options);\n }\n\n static equals(a: ContentIDs | PlainMessage | undefined, b: ContentIDs | PlainMessage | undefined): boolean {\n return proto3.util.equals(ContentIDs, a, b);\n }\n}\n\n/**\n * @generated from message content.Contents\n */\nexport class Contents extends Message {\n /**\n * @generated from field: content.Content content = 1;\n */\n content?: Content;\n\n /**\n * @generated from field: repeated string tags = 2;\n */\n tags: string[] = [];\n\n /**\n * @generated from field: repeated content.Content related = 3;\n */\n related: Content[] = [];\n\n /**\n * @generated from field: repeated string parents = 4;\n */\n parents: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Contents\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: Content },\n { no: 2, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 3, name: \"related\", kind: \"message\", T: Content, repeated: true },\n { no: 4, name: \"parents\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Contents {\n return new Contents().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Contents {\n return new Contents().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Contents {\n return new Contents().fromJsonString(jsonString, options);\n }\n\n static equals(a: Contents | PlainMessage | undefined, b: Contents | PlainMessage | undefined): boolean {\n return proto3.util.equals(Contents, a, b);\n }\n}\n\n/**\n * @generated from message content.Query\n */\nexport class Query extends Message {\n /**\n * @generated from field: string query = 1;\n */\n query = \"\";\n\n /**\n * @generated from field: uint32 page = 2;\n */\n page = 0;\n\n /**\n * @generated from field: string contentID = 3;\n */\n contentID = \"\";\n\n /**\n * @generated from field: string groupID = 4;\n */\n groupID = \"\";\n\n /**\n * @generated from field: repeated string tags = 5;\n */\n tags: string[] = [];\n\n /**\n * @generated from field: repeated string content_types = 6;\n */\n contentTypes: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Query\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"query\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"page\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 3, name: \"contentID\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"groupID\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 6, name: \"content_types\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Query {\n return new Query().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Query {\n return new Query().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Query {\n return new Query().fromJsonString(jsonString, options);\n }\n\n static equals(a: Query | PlainMessage | undefined, b: Query | PlainMessage | undefined): boolean {\n return proto3.util.equals(Query, a, b);\n }\n}\n\n/**\n * @generated from message content.Results\n */\nexport class Results extends Message {\n /**\n * @generated from field: repeated content.StoredContent storedContent = 1;\n */\n storedContent: StoredContent[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Results\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"storedContent\", kind: \"message\", T: StoredContent, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Results {\n return new Results().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Results {\n return new Results().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Results {\n return new Results().fromJsonString(jsonString, options);\n }\n\n static equals(a: Results | PlainMessage | undefined, b: Results | PlainMessage | undefined): boolean {\n return proto3.util.equals(Results, a, b);\n }\n}\n\n/**\n * @generated from message content.StoredContent\n */\nexport class StoredContent extends Message {\n /**\n * @generated from field: content.Content content = 1;\n */\n content?: Content;\n\n /**\n * @generated from field: string id = 2;\n */\n id = \"\";\n\n /**\n * @generated from field: repeated content.Content related = 3;\n */\n related: Content[] = [];\n\n /**\n * @generated from field: string title = 4;\n */\n title = \"\";\n\n /**\n * @generated from field: string description = 5;\n */\n description = \"\";\n\n /**\n * @generated from field: string image = 6;\n */\n image = \"\";\n\n /**\n * @generated from field: string url = 7;\n */\n url = \"\";\n\n /**\n * @generated from field: user.User user = 9;\n */\n user?: User;\n\n /**\n * @generated from field: repeated content.Tag tags = 10;\n */\n tags: Tag[] = [];\n\n /**\n * @generated from field: string preview = 11;\n */\n preview = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.StoredContent\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: Content },\n { no: 2, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"related\", kind: \"message\", T: Content, repeated: true },\n { no: 4, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"image\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 9, name: \"user\", kind: \"message\", T: User },\n { no: 10, name: \"tags\", kind: \"message\", T: Tag, repeated: true },\n { no: 11, name: \"preview\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): StoredContent {\n return new StoredContent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): StoredContent {\n return new StoredContent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): StoredContent {\n return new StoredContent().fromJsonString(jsonString, options);\n }\n\n static equals(a: StoredContent | PlainMessage | undefined, b: StoredContent | PlainMessage | undefined): boolean {\n return proto3.util.equals(StoredContent, a, b);\n }\n}\n\n/**\n * @generated from message content.Edge\n */\nexport class Edge extends Message {\n /**\n * @generated from field: string from = 1;\n */\n from = \"\";\n\n /**\n * @generated from field: string to = 2;\n */\n to = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Edge\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"from\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"to\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Edge {\n return new Edge().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Edge {\n return new Edge().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Edge {\n return new Edge().fromJsonString(jsonString, options);\n }\n\n static equals(a: Edge | PlainMessage | undefined, b: Edge | PlainMessage | undefined): boolean {\n return proto3.util.equals(Edge, a, b);\n }\n}\n\n/**\n * Content has data and metadata\n *\n * @generated from message content.Content\n */\nexport class Content extends Message {\n /**\n * @generated from field: repeated string tags = 1;\n */\n tags: string[] = [];\n\n /**\n * @generated from field: string created_at = 2;\n */\n createdAt = \"\";\n\n /**\n * @generated from field: string uri = 3;\n */\n uri = \"\";\n\n /**\n * @generated from field: string id = 4;\n */\n id = \"\";\n\n /**\n * @generated from oneof content.Content.type\n */\n type: {\n /**\n * @generated from field: content.Data data = 6;\n */\n value: Data;\n case: \"data\";\n } | {\n /**\n * @generated from field: content.Normalized normalized = 7;\n */\n value: Normalized;\n case: \"normalized\";\n } | {\n /**\n * @generated from field: content.Transformed transformed = 8;\n */\n value: Transformed;\n case: \"transformed\";\n } | {\n /**\n * @generated from field: content.Post post = 9;\n */\n value: Post;\n case: \"post\";\n } | {\n /**\n * @generated from field: content.Site site = 10;\n */\n value: Site;\n case: \"site\";\n } | {\n /**\n * @generated from field: chatgpt.Conversation chatgpt_conversation = 11;\n */\n value: Conversation;\n case: \"chatgptConversation\";\n } | {\n /**\n * @generated from field: browser.History browser_history = 12;\n */\n value: History;\n case: \"browserHistory\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Content\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"created_at\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"uri\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"data\", kind: \"message\", T: Data, oneof: \"type\" },\n { no: 7, name: \"normalized\", kind: \"message\", T: Normalized, oneof: \"type\" },\n { no: 8, name: \"transformed\", kind: \"message\", T: Transformed, oneof: \"type\" },\n { no: 9, name: \"post\", kind: \"message\", T: Post, oneof: \"type\" },\n { no: 10, name: \"site\", kind: \"message\", T: Site, oneof: \"type\" },\n { no: 11, name: \"chatgpt_conversation\", kind: \"message\", T: Conversation, oneof: \"type\" },\n { no: 12, name: \"browser_history\", kind: \"message\", T: History, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Content {\n return new Content().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Content {\n return new Content().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Content {\n return new Content().fromJsonString(jsonString, options);\n }\n\n static equals(a: Content | PlainMessage | undefined, b: Content | PlainMessage | undefined): boolean {\n return proto3.util.equals(Content, a, b);\n }\n}\n\n/**\n * @generated from message content.Post\n */\nexport class Post extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string summary = 2;\n */\n summary = \"\";\n\n /**\n * @generated from field: string content = 3;\n */\n content = \"\";\n\n /**\n * @generated from field: repeated string authors = 4;\n */\n authors: string[] = [];\n\n /**\n * @generated from field: bool draft = 6;\n */\n draft = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Post\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"summary\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"content\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"authors\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 6, name: \"draft\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Post {\n return new Post().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Post {\n return new Post().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Post {\n return new Post().fromJsonString(jsonString, options);\n }\n\n static equals(a: Post | PlainMessage | undefined, b: Post | PlainMessage | undefined): boolean {\n return proto3.util.equals(Post, a, b);\n }\n}\n\n/**\n * @generated from message content.GitRepo\n */\nexport class GitRepo extends Message {\n /**\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.GitRepo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GitRepo {\n return new GitRepo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GitRepo {\n return new GitRepo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GitRepo {\n return new GitRepo().fromJsonString(jsonString, options);\n }\n\n static equals(a: GitRepo | PlainMessage | undefined, b: GitRepo | PlainMessage | undefined): boolean {\n return proto3.util.equals(GitRepo, a, b);\n }\n}\n\n/**\n * @generated from message content.Data\n */\nexport class Data extends Message {\n /**\n * @generated from oneof content.Data.type\n */\n type: {\n /**\n * @generated from field: content.Text text = 4;\n */\n value: Text;\n case: \"text\";\n } | {\n /**\n * @generated from field: content.File file = 5;\n */\n value: File;\n case: \"file\";\n } | {\n /**\n * @generated from field: content.URL url = 6;\n */\n value: URL;\n case: \"url\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Data\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 4, name: \"text\", kind: \"message\", T: Text, oneof: \"type\" },\n { no: 5, name: \"file\", kind: \"message\", T: File, oneof: \"type\" },\n { no: 6, name: \"url\", kind: \"message\", T: URL, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Data {\n return new Data().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Data {\n return new Data().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Data {\n return new Data().fromJsonString(jsonString, options);\n }\n\n static equals(a: Data | PlainMessage | undefined, b: Data | PlainMessage | undefined): boolean {\n return proto3.util.equals(Data, a, b);\n }\n}\n\n/**\n * @generated from message content.Normalized\n */\nexport class Normalized extends Message {\n /**\n * @generated from oneof content.Normalized.type\n */\n type: {\n /**\n * @generated from field: content.Article article = 3;\n */\n value: Article;\n case: \"article\";\n } | {\n /**\n * @generated from field: content.HTML html = 4;\n */\n value: HTML;\n case: \"html\";\n } | {\n /**\n * @generated from field: content.Transcript transcript = 6;\n */\n value: Transcript;\n case: \"transcript\";\n } | {\n /**\n * @generated from field: content.ReadMe readme = 7;\n */\n value: ReadMe;\n case: \"readme\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Normalized\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 3, name: \"article\", kind: \"message\", T: Article, oneof: \"type\" },\n { no: 4, name: \"html\", kind: \"message\", T: HTML, oneof: \"type\" },\n { no: 6, name: \"transcript\", kind: \"message\", T: Transcript, oneof: \"type\" },\n { no: 7, name: \"readme\", kind: \"message\", T: ReadMe, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Normalized {\n return new Normalized().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Normalized {\n return new Normalized().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Normalized {\n return new Normalized().fromJsonString(jsonString, options);\n }\n\n static equals(a: Normalized | PlainMessage | undefined, b: Normalized | PlainMessage | undefined): boolean {\n return proto3.util.equals(Normalized, a, b);\n }\n}\n\n/**\n * @generated from message content.Transformed\n */\nexport class Transformed extends Message {\n /**\n * @generated from oneof content.Transformed.type\n */\n type: {\n /**\n * @generated from field: content.Summary summary = 1;\n */\n value: Summary;\n case: \"summary\";\n } | {\n /**\n * @generated from field: content.Categories categories = 2;\n */\n value: Categories;\n case: \"categories\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Transformed\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"summary\", kind: \"message\", T: Summary, oneof: \"type\" },\n { no: 2, name: \"categories\", kind: \"message\", T: Categories, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Transformed {\n return new Transformed().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Transformed {\n return new Transformed().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Transformed {\n return new Transformed().fromJsonString(jsonString, options);\n }\n\n static equals(a: Transformed | PlainMessage | undefined, b: Transformed | PlainMessage | undefined): boolean {\n return proto3.util.equals(Transformed, a, b);\n }\n}\n\n/**\n * @generated from message content.Article\n */\nexport class Article extends Message
{\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string author = 2;\n */\n author = \"\";\n\n /**\n * @generated from field: int32 length = 3;\n */\n length = 0;\n\n /**\n * @generated from field: string excerpt = 4;\n */\n excerpt = \"\";\n\n /**\n * @generated from field: string site_name = 5;\n */\n siteName = \"\";\n\n /**\n * @generated from field: string image = 6;\n */\n image = \"\";\n\n /**\n * @generated from field: string favicon = 7;\n */\n favicon = \"\";\n\n /**\n * @generated from field: string text = 8;\n */\n text = \"\";\n\n constructor(data?: PartialMessage
) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Article\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"author\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"length\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 4, name: \"excerpt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"site_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"image\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"favicon\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 8, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Article {\n return new Article().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Article {\n return new Article().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Article {\n return new Article().fromJsonString(jsonString, options);\n }\n\n static equals(a: Article | PlainMessage
| undefined, b: Article | PlainMessage
| undefined): boolean {\n return proto3.util.equals(Article, a, b);\n }\n}\n\n/**\n * @generated from message content.HTML\n */\nexport class HTML extends Message {\n /**\n * @generated from field: string html = 1;\n */\n html = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HTML\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"html\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HTML {\n return new HTML().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HTML {\n return new HTML().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HTML {\n return new HTML().fromJsonString(jsonString, options);\n }\n\n static equals(a: HTML | PlainMessage | undefined, b: HTML | PlainMessage | undefined): boolean {\n return proto3.util.equals(HTML, a, b);\n }\n}\n\n/**\n * @generated from message content.ReadMe\n */\nexport class ReadMe extends Message {\n /**\n * @generated from field: string data = 1;\n */\n data = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ReadMe\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"data\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ReadMe {\n return new ReadMe().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ReadMe {\n return new ReadMe().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ReadMe {\n return new ReadMe().fromJsonString(jsonString, options);\n }\n\n static equals(a: ReadMe | PlainMessage | undefined, b: ReadMe | PlainMessage | undefined): boolean {\n return proto3.util.equals(ReadMe, a, b);\n }\n}\n\n/**\n * @generated from message content.Summary\n */\nexport class Summary extends Message {\n /**\n * @generated from field: string summary = 1;\n */\n summary = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Summary\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"summary\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Summary {\n return new Summary().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Summary {\n return new Summary().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Summary {\n return new Summary().fromJsonString(jsonString, options);\n }\n\n static equals(a: Summary | PlainMessage | undefined, b: Summary | PlainMessage | undefined): boolean {\n return proto3.util.equals(Summary, a, b);\n }\n}\n\n/**\n * @generated from message content.Categories\n */\nexport class Categories extends Message {\n /**\n * @generated from field: repeated string categories = 1;\n */\n categories: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Categories\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"categories\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Categories {\n return new Categories().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Categories {\n return new Categories().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Categories {\n return new Categories().fromJsonString(jsonString, options);\n }\n\n static equals(a: Categories | PlainMessage | undefined, b: Categories | PlainMessage | undefined): boolean {\n return proto3.util.equals(Categories, a, b);\n }\n}\n\n/**\n * @generated from message content.File\n */\nexport class File extends Message {\n /**\n * @generated from field: string file = 1;\n */\n file = \"\";\n\n /**\n * @generated from field: bytes data = 2;\n */\n data = new Uint8Array(0);\n\n /**\n * @generated from field: string url = 3;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.File\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"data\", kind: \"scalar\", T: 12 /* ScalarType.BYTES */ },\n { no: 3, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): File {\n return new File().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): File {\n return new File().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): File {\n return new File().fromJsonString(jsonString, options);\n }\n\n static equals(a: File | PlainMessage | undefined, b: File | PlainMessage | undefined): boolean {\n return proto3.util.equals(File, a, b);\n }\n}\n\n/**\n * @generated from message content.Text\n */\nexport class Text extends Message {\n /**\n * @generated from field: string data = 1;\n */\n data = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Text\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"data\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Text {\n return new Text().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Text {\n return new Text().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Text {\n return new Text().fromJsonString(jsonString, options);\n }\n\n static equals(a: Text | PlainMessage | undefined, b: Text | PlainMessage | undefined): boolean {\n return proto3.util.equals(Text, a, b);\n }\n}\n\n/**\n * @generated from message content.URL\n */\nexport class URL extends Message {\n /**\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n /**\n * @generated from field: bool crawl = 2;\n */\n crawl = false;\n\n /**\n * @generated from field: string title = 3;\n */\n title = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.URL\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"crawl\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 3, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): URL {\n return new URL().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): URL {\n return new URL().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): URL {\n return new URL().fromJsonString(jsonString, options);\n }\n\n static equals(a: URL | PlainMessage | undefined, b: URL | PlainMessage | undefined): boolean {\n return proto3.util.equals(URL, a, b);\n }\n}\n\n/**\n * @generated from message content.Token\n */\nexport class Token extends Message {\n /**\n * @generated from field: uint32 id = 1;\n */\n id = 0;\n\n /**\n * @generated from field: uint64 start_time = 2;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 3;\n */\n endTime = protoInt64.zero;\n\n /**\n * @generated from field: string text = 4;\n */\n text = \"\";\n\n /**\n * @generated from field: string p = 5;\n */\n p = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Token\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 3, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 4, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"p\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Token {\n return new Token().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Token {\n return new Token().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Token {\n return new Token().fromJsonString(jsonString, options);\n }\n\n static equals(a: Token | PlainMessage | undefined, b: Token | PlainMessage | undefined): boolean {\n return proto3.util.equals(Token, a, b);\n }\n}\n\n/**\n * @generated from message content.Segment\n */\nexport class Segment extends Message {\n /**\n * @generated from field: uint32 num = 1;\n */\n num = 0;\n\n /**\n * @generated from field: repeated content.Token tokens = 2;\n */\n tokens: Token[] = [];\n\n /**\n * @generated from field: string text = 3;\n */\n text = \"\";\n\n /**\n * @generated from field: uint64 start_time = 4;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 5;\n */\n endTime = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Segment\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"num\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"tokens\", kind: \"message\", T: Token, repeated: true },\n { no: 3, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 5, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Segment {\n return new Segment().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Segment {\n return new Segment().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Segment {\n return new Segment().fromJsonString(jsonString, options);\n }\n\n static equals(a: Segment | PlainMessage | undefined, b: Segment | PlainMessage | undefined): boolean {\n return proto3.util.equals(Segment, a, b);\n }\n}\n\n/**\n * @generated from message content.Transcript\n */\nexport class Transcript extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated content.Segment segments = 3;\n */\n segments: Segment[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Transcript\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"segments\", kind: \"message\", T: Segment, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Transcript {\n return new Transcript().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Transcript {\n return new Transcript().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Transcript {\n return new Transcript().fromJsonString(jsonString, options);\n }\n\n static equals(a: Transcript | PlainMessage | undefined, b: Transcript | PlainMessage | undefined): boolean {\n return proto3.util.equals(Transcript, a, b);\n }\n}\n\n/**\n * @generated from message content.GRPCTypeInfo\n */\nexport class GRPCTypeInfo extends Message {\n /**\n * @generated from field: google.protobuf.DescriptorProto msg = 1;\n */\n msg?: DescriptorProto;\n\n /**\n * @generated from field: map desc_lookup = 3;\n */\n descLookup: { [key: string]: DescriptorProto } = {};\n\n /**\n * @generated from field: map enum_lookup = 4;\n */\n enumLookup: { [key: string]: EnumDescriptorProto } = {};\n\n /**\n * @generated from field: string package_name = 6;\n */\n packageName = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.GRPCTypeInfo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"msg\", kind: \"message\", T: DescriptorProto },\n { no: 3, name: \"desc_lookup\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: DescriptorProto} },\n { no: 4, name: \"enum_lookup\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: EnumDescriptorProto} },\n { no: 6, name: \"package_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GRPCTypeInfo {\n return new GRPCTypeInfo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GRPCTypeInfo {\n return new GRPCTypeInfo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GRPCTypeInfo {\n return new GRPCTypeInfo().fromJsonString(jsonString, options);\n }\n\n static equals(a: GRPCTypeInfo | PlainMessage | undefined, b: GRPCTypeInfo | PlainMessage | undefined): boolean {\n return proto3.util.equals(GRPCTypeInfo, a, b);\n }\n}\n\n/**\n * @generated from message content.Site\n */\nexport class Site extends Message {\n /**\n * @generated from field: repeated content.Section sections = 1;\n */\n sections: Section[] = [];\n\n /**\n * @generated from field: content.HugoConfig hugo_config = 2;\n */\n hugoConfig?: HugoConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Site\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"sections\", kind: \"message\", T: Section, repeated: true },\n { no: 2, name: \"hugo_config\", kind: \"message\", T: HugoConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Site {\n return new Site().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Site {\n return new Site().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Site {\n return new Site().fromJsonString(jsonString, options);\n }\n\n static equals(a: Site | PlainMessage | undefined, b: Site | PlainMessage | undefined): boolean {\n return proto3.util.equals(Site, a, b);\n }\n}\n\n/**\n * @generated from message content.Section\n */\nexport class Section extends Message
{\n /**\n * TODO breadchris tags should be a filter that can have AND, OR, regex?\n *\n * @generated from field: repeated string tags = 1;\n */\n tags: string[] = [];\n\n /**\n * @generated from field: content.MenuItem menu = 2;\n */\n menu?: MenuItem;\n\n constructor(data?: PartialMessage
) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Section\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"menu\", kind: \"message\", T: MenuItem },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Section {\n return new Section().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Section {\n return new Section().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Section {\n return new Section().fromJsonString(jsonString, options);\n }\n\n static equals(a: Section | PlainMessage
| undefined, b: Section | PlainMessage
| undefined): boolean {\n return proto3.util.equals(Section, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file protoflow.proto (package protoflow, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, protoInt64 } from \"@bufbuild/protobuf\";\nimport { Content, Segment as Segment$1 } from \"./content/content_pb.js\";\n\n/**\n * @generated from message protoflow.AnalyzeConversationRequest\n */\nexport class AnalyzeConversationRequest extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.AnalyzeConversationRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeConversationRequest | PlainMessage | undefined, b: AnalyzeConversationRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeConversationRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GenerateImagesRequest\n */\nexport class GenerateImagesRequest extends Message {\n /**\n * @generated from field: string prompt = 1;\n */\n prompt = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GenerateImagesRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GenerateImagesRequest {\n return new GenerateImagesRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GenerateImagesRequest {\n return new GenerateImagesRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GenerateImagesRequest {\n return new GenerateImagesRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GenerateImagesRequest | PlainMessage | undefined, b: GenerateImagesRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GenerateImagesRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GenerateImagesResponse\n */\nexport class GenerateImagesResponse extends Message {\n /**\n * @generated from field: repeated string images = 1;\n */\n images: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GenerateImagesResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"images\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GenerateImagesResponse {\n return new GenerateImagesResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GenerateImagesResponse {\n return new GenerateImagesResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GenerateImagesResponse {\n return new GenerateImagesResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GenerateImagesResponse | PlainMessage | undefined, b: GenerateImagesResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GenerateImagesResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.DeleteSessionRequest\n */\nexport class DeleteSessionRequest extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.DeleteSessionRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): DeleteSessionRequest {\n return new DeleteSessionRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): DeleteSessionRequest {\n return new DeleteSessionRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): DeleteSessionRequest {\n return new DeleteSessionRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: DeleteSessionRequest | PlainMessage | undefined, b: DeleteSessionRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(DeleteSessionRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Prompt\n */\nexport class Prompt extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string text = 2;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Prompt\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Prompt {\n return new Prompt().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Prompt {\n return new Prompt().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Prompt {\n return new Prompt().fromJsonString(jsonString, options);\n }\n\n static equals(a: Prompt | PlainMessage | undefined, b: Prompt | PlainMessage | undefined): boolean {\n return proto3.util.equals(Prompt, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetPromptsRequest\n */\nexport class GetPromptsRequest extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetPromptsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetPromptsRequest {\n return new GetPromptsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetPromptsRequest {\n return new GetPromptsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetPromptsRequest {\n return new GetPromptsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetPromptsRequest | PlainMessage | undefined, b: GetPromptsRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetPromptsRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetPromptsResponse\n */\nexport class GetPromptsResponse extends Message {\n /**\n * @generated from field: repeated protoflow.Prompt prompts = 1;\n */\n prompts: Prompt[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetPromptsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompts\", kind: \"message\", T: Prompt, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetPromptsResponse {\n return new GetPromptsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetPromptsResponse {\n return new GetPromptsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetPromptsResponse {\n return new GetPromptsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetPromptsResponse | PlainMessage | undefined, b: GetPromptsResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetPromptsResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.InferRequest\n */\nexport class InferRequest extends Message {\n /**\n * @generated from field: string prompt = 1;\n */\n prompt = \"\";\n\n /**\n * @generated from field: repeated string text = 2;\n */\n text: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.InferRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): InferRequest {\n return new InferRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): InferRequest {\n return new InferRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): InferRequest {\n return new InferRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: InferRequest | PlainMessage | undefined, b: InferRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(InferRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.InferResponse\n */\nexport class InferResponse extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.InferResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): InferResponse {\n return new InferResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): InferResponse {\n return new InferResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): InferResponse {\n return new InferResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: InferResponse | PlainMessage | undefined, b: InferResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(InferResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.UploadContentRequest\n */\nexport class UploadContentRequest extends Message {\n /**\n * @generated from field: content.Content content = 1;\n */\n content?: Content;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.UploadContentRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: Content },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): UploadContentRequest {\n return new UploadContentRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): UploadContentRequest {\n return new UploadContentRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): UploadContentRequest {\n return new UploadContentRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: UploadContentRequest | PlainMessage | undefined, b: UploadContentRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(UploadContentRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.UploadContentResponse\n */\nexport class UploadContentResponse extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.UploadContentResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): UploadContentResponse {\n return new UploadContentResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): UploadContentResponse {\n return new UploadContentResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): UploadContentResponse {\n return new UploadContentResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: UploadContentResponse | PlainMessage | undefined, b: UploadContentResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(UploadContentResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionRequest\n */\nexport class GetSessionRequest extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionRequest {\n return new GetSessionRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionRequest {\n return new GetSessionRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionRequest {\n return new GetSessionRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionRequest | PlainMessage | undefined, b: GetSessionRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionResponse\n */\nexport class GetSessionResponse extends Message {\n /**\n * @generated from field: protoflow.Session session = 1;\n */\n session?: Session;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"session\", kind: \"message\", T: Session },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionResponse {\n return new GetSessionResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionResponse {\n return new GetSessionResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionResponse {\n return new GetSessionResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionResponse | PlainMessage | undefined, b: GetSessionResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionsRequest\n */\nexport class GetSessionsRequest extends Message {\n /**\n * @generated from field: uint64 page = 1;\n */\n page = protoInt64.zero;\n\n /**\n * @generated from field: uint64 limit = 2;\n */\n limit = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"page\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 2, name: \"limit\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionsRequest {\n return new GetSessionsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionsRequest {\n return new GetSessionsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionsRequest {\n return new GetSessionsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionsRequest | PlainMessage | undefined, b: GetSessionsRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionsRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionsResponse\n */\nexport class GetSessionsResponse extends Message {\n /**\n * @generated from field: repeated protoflow.Session sessions = 1;\n */\n sessions: Session[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"sessions\", kind: \"message\", T: Session, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionsResponse {\n return new GetSessionsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionsResponse {\n return new GetSessionsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionsResponse {\n return new GetSessionsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionsResponse | PlainMessage | undefined, b: GetSessionsResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionsResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Token\n */\nexport class Token extends Message {\n /**\n * @generated from field: uint32 id = 1;\n */\n id = 0;\n\n /**\n * @generated from field: uint64 start_time = 2;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 3;\n */\n endTime = protoInt64.zero;\n\n /**\n * @generated from field: string text = 4;\n */\n text = \"\";\n\n /**\n * @generated from field: string p = 5;\n */\n p = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Token\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 3, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 4, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"p\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Token {\n return new Token().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Token {\n return new Token().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Token {\n return new Token().fromJsonString(jsonString, options);\n }\n\n static equals(a: Token | PlainMessage | undefined, b: Token | PlainMessage | undefined): boolean {\n return proto3.util.equals(Token, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Segment\n */\nexport class Segment extends Message {\n /**\n * @generated from field: uint32 num = 1;\n */\n num = 0;\n\n /**\n * @generated from field: repeated protoflow.Token tokens = 2;\n */\n tokens: Token[] = [];\n\n /**\n * @generated from field: string text = 3;\n */\n text = \"\";\n\n /**\n * @generated from field: uint64 start_time = 4;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 5;\n */\n endTime = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Segment\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"num\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"tokens\", kind: \"message\", T: Token, repeated: true },\n { no: 3, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 5, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Segment {\n return new Segment().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Segment {\n return new Segment().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Segment {\n return new Segment().fromJsonString(jsonString, options);\n }\n\n static equals(a: Segment | PlainMessage | undefined, b: Segment | PlainMessage | undefined): boolean {\n return proto3.util.equals(Segment, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Session\n */\nexport class Session extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated protoflow.Segment segments = 3;\n */\n segments: Segment[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Session\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"segments\", kind: \"message\", T: Segment, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Session {\n return new Session().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Session {\n return new Session().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Session {\n return new Session().fromJsonString(jsonString, options);\n }\n\n static equals(a: Session | PlainMessage | undefined, b: Session | PlainMessage | undefined): boolean {\n return proto3.util.equals(Session, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.TranscriptionRequest\n */\nexport class TranscriptionRequest extends Message {\n /**\n * @generated from field: string file_path = 14;\n */\n filePath = \"\";\n\n /**\n * Path to the model file\n *\n * @generated from field: string model = 1;\n */\n model = \"\";\n\n /**\n * Spoken language\n *\n * @generated from field: string language = 2;\n */\n language = \"\";\n\n /**\n * Translate from source language to English\n *\n * @generated from field: bool translate = 3;\n */\n translate = false;\n\n /**\n * Time offset in nanoseconds to match Go's time.Duration\n *\n * @generated from field: int64 offset = 4;\n */\n offset = protoInt64.zero;\n\n /**\n * Duration of audio to process in nanoseconds\n *\n * @generated from field: int64 duration = 5;\n */\n duration = protoInt64.zero;\n\n /**\n * Number of threads to use\n *\n * @generated from field: uint32 threads = 6;\n */\n threads = 0;\n\n /**\n * Enable speedup\n *\n * @generated from field: bool speedup = 7;\n */\n speedup = false;\n\n /**\n * Maximum segment length in characters\n *\n * @generated from field: uint32 max_len = 8;\n */\n maxLen = 0;\n\n /**\n * Maximum tokens per segment\n *\n * @generated from field: uint32 max_tokens = 9;\n */\n maxTokens = 0;\n\n /**\n * Maximum segment score\n *\n * @generated from field: double word_threshold = 10;\n */\n wordThreshold = 0;\n\n /**\n * Display tokens\n *\n * @generated from field: bool tokens = 11;\n */\n tokens = false;\n\n /**\n * Colorize tokens\n *\n * @generated from field: bool colorize = 12;\n */\n colorize = false;\n\n /**\n * Output format (srt, none or leave as empty string)\n *\n * @generated from field: string out = 13;\n */\n out = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.TranscriptionRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 14, name: \"file_path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 1, name: \"model\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"language\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"translate\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 4, name: \"offset\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 5, name: \"duration\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 6, name: \"threads\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 7, name: \"speedup\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 8, name: \"max_len\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 9, name: \"max_tokens\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 10, name: \"word_threshold\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 11, name: \"tokens\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 12, name: \"colorize\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 13, name: \"out\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): TranscriptionRequest {\n return new TranscriptionRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): TranscriptionRequest {\n return new TranscriptionRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): TranscriptionRequest {\n return new TranscriptionRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: TranscriptionRequest | PlainMessage | undefined, b: TranscriptionRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(TranscriptionRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.RegisterFlags\n */\nexport class RegisterFlags extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.RegisterFlags\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RegisterFlags {\n return new RegisterFlags().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RegisterFlags {\n return new RegisterFlags().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RegisterFlags {\n return new RegisterFlags().fromJsonString(jsonString, options);\n }\n\n static equals(a: RegisterFlags | PlainMessage | undefined, b: RegisterFlags | PlainMessage | undefined): boolean {\n return proto3.util.equals(RegisterFlags, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.OCRText\n */\nexport class OCRText extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.OCRText\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): OCRText {\n return new OCRText().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): OCRText {\n return new OCRText().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): OCRText {\n return new OCRText().fromJsonString(jsonString, options);\n }\n\n static equals(a: OCRText | PlainMessage | undefined, b: OCRText | PlainMessage | undefined): boolean {\n return proto3.util.equals(OCRText, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Image\n */\nexport class Image extends Message {\n /**\n * @generated from field: bytes image = 1;\n */\n image = new Uint8Array(0);\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Image\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"image\", kind: \"scalar\", T: 12 /* ScalarType.BYTES */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Image {\n return new Image().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Image {\n return new Image().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Image {\n return new Image().fromJsonString(jsonString, options);\n }\n\n static equals(a: Image | PlainMessage | undefined, b: Image | PlainMessage | undefined): boolean {\n return proto3.util.equals(Image, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.ConvertFileRequest\n */\nexport class ConvertFileRequest extends Message {\n /**\n * @generated from field: string from = 1;\n */\n from = \"\";\n\n /**\n * @generated from field: string to = 2;\n */\n to = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.ConvertFileRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"from\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"to\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ConvertFileRequest {\n return new ConvertFileRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ConvertFileRequest {\n return new ConvertFileRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ConvertFileRequest {\n return new ConvertFileRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ConvertFileRequest | PlainMessage | undefined, b: ConvertFileRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ConvertFileRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.ChatRequest\n */\nexport class ChatRequest extends Message {\n /**\n * @generated from field: int32 capture_device = 1;\n */\n captureDevice = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.ChatRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"capture_device\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ChatRequest {\n return new ChatRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ChatRequest {\n return new ChatRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ChatRequest {\n return new ChatRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ChatRequest | PlainMessage | undefined, b: ChatRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ChatRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.ChatResponse\n */\nexport class ChatResponse extends Message {\n /**\n * @generated from field: protoflow.Segment segment = 1;\n */\n segment?: Segment;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.ChatResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"segment\", kind: \"message\", T: Segment },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ChatResponse {\n return new ChatResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ChatResponse {\n return new ChatResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ChatResponse {\n return new ChatResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ChatResponse | PlainMessage | undefined, b: ChatResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(ChatResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.YouTubeVideo\n */\nexport class YouTubeVideo extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string file = 2;\n */\n file = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.YouTubeVideo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): YouTubeVideo {\n return new YouTubeVideo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): YouTubeVideo {\n return new YouTubeVideo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): YouTubeVideo {\n return new YouTubeVideo().fromJsonString(jsonString, options);\n }\n\n static equals(a: YouTubeVideo | PlainMessage | undefined, b: YouTubeVideo | PlainMessage | undefined): boolean {\n return proto3.util.equals(YouTubeVideo, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.FilePath\n */\nexport class FilePath extends Message {\n /**\n * @generated from field: string file = 1;\n */\n file = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.FilePath\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): FilePath {\n return new FilePath().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): FilePath {\n return new FilePath().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): FilePath {\n return new FilePath().fromJsonString(jsonString, options);\n }\n\n static equals(a: FilePath | PlainMessage | undefined, b: FilePath | PlainMessage | undefined): boolean {\n return proto3.util.equals(FilePath, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.YouTubeVideoResponse\n */\nexport class YouTubeVideoResponse extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: protoflow.FilePath file_path = 2;\n */\n filePath?: FilePath;\n\n /**\n * @generated from field: repeated content.Segment transcript = 3;\n */\n transcript: Segment$1[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.YouTubeVideoResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"file_path\", kind: \"message\", T: FilePath },\n { no: 3, name: \"transcript\", kind: \"message\", T: Segment$1, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): YouTubeVideoResponse {\n return new YouTubeVideoResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): YouTubeVideoResponse {\n return new YouTubeVideoResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): YouTubeVideoResponse {\n return new YouTubeVideoResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: YouTubeVideoResponse | PlainMessage | undefined, b: YouTubeVideoResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(YouTubeVideoResponse, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file ai.proto (package ai, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message ai.AnalyzeConversationResponse\n */\nexport class AnalyzeConversationResponse extends Message {\n /**\n * Phone numbers of the participants\n *\n * @generated from field: repeated string phone_numbers = 1;\n */\n phoneNumbers: string[] = [];\n\n /**\n * The summary of the conversation\n *\n * @generated from field: string summary = 2;\n */\n summary = \"\";\n\n /**\n * Based on the content of the conversation, the system will generate a list of questions\n *\n * @generated from field: repeated string questions = 3;\n */\n questions: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"ai.AnalyzeConversationResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"phone_numbers\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"summary\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"questions\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeConversationResponse {\n return new AnalyzeConversationResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeConversationResponse {\n return new AnalyzeConversationResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeConversationResponse {\n return new AnalyzeConversationResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeConversationResponse | PlainMessage | undefined, b: AnalyzeConversationResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeConversationResponse, a, b);\n }\n}\n\n/**\n * @generated from message ai.AnalyzeContent\n */\nexport class AnalyzeContent extends Message {\n /**\n * Potential categories for the content in the form: category/subcategory/other-category. The category is all lowercase and spaces are replaced with dashes.\n *\n * @generated from field: repeated string categories = 1;\n */\n categories: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"ai.AnalyzeContent\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"categories\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeContent {\n return new AnalyzeContent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeContent {\n return new AnalyzeContent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeContent {\n return new AnalyzeContent().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeContent | PlainMessage | undefined, b: AnalyzeContent | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeContent, a, b);\n }\n}\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file protoflow.proto (package protoflow, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { AnalyzeConversationRequest, ChatRequest, ChatResponse, ConvertFileRequest, DeleteSessionRequest, FilePath, GenerateImagesRequest, GenerateImagesResponse, GetPromptsRequest, GetPromptsResponse, GetSessionRequest, GetSessionResponse, GetSessionsRequest, GetSessionsResponse, InferRequest, InferResponse, Prompt, UploadContentRequest, YouTubeVideo, YouTubeVideoResponse } from \"./protoflow_pb.js\";\nimport { Empty, MethodKind } from \"@bufbuild/protobuf\";\nimport { AnalyzeConversationResponse } from \"./ai_pb.js\";\n\n/**\n * @generated from service protoflow.ProtoflowService\n */\nexport const ProtoflowService = {\n typeName: \"protoflow.ProtoflowService\",\n methods: {\n /**\n * @generated from rpc protoflow.ProtoflowService.DownloadYouTubeVideo\n */\n downloadYouTubeVideo: {\n name: \"DownloadYouTubeVideo\",\n I: YouTubeVideo,\n O: YouTubeVideoResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GetSessions\n */\n getSessions: {\n name: \"GetSessions\",\n I: GetSessionsRequest,\n O: GetSessionsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GetSession\n */\n getSession: {\n name: \"GetSession\",\n I: GetSessionRequest,\n O: GetSessionResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.DeleteSession\n */\n deleteSession: {\n name: \"DeleteSession\",\n I: DeleteSessionRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GetPrompts\n */\n getPrompts: {\n name: \"GetPrompts\",\n I: GetPromptsRequest,\n O: GetPromptsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.NewPrompt\n */\n newPrompt: {\n name: \"NewPrompt\",\n I: Prompt,\n O: Prompt,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.UploadContent\n */\n uploadContent: {\n name: \"UploadContent\",\n I: UploadContentRequest,\n O: ChatResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.Infer\n */\n infer: {\n name: \"Infer\",\n I: InferRequest,\n O: InferResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.Chat\n */\n chat: {\n name: \"Chat\",\n I: ChatRequest,\n O: ChatResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.ConvertFile\n */\n convertFile: {\n name: \"ConvertFile\",\n I: ConvertFileRequest,\n O: FilePath,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GenerateImages\n */\n generateImages: {\n name: \"GenerateImages\",\n I: GenerateImagesRequest,\n O: GenerateImagesResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.AnalyzeConversation\n */\n analyzeConversation: {\n name: \"AnalyzeConversation\",\n I: AnalyzeConversationRequest,\n O: AnalyzeConversationResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file content/content.proto (package content, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Content, ContentIDs, Contents, GetSourcesRequest, InferRequest, InferResponse, Query, RelateRequest, Results, SetTagsRequest, Sources, TagRequest, Tags, TypesResponse, VoiceInputRequest, VoiceInputResponse } from \"./content_pb.js\";\nimport { Empty, MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service content.ContentService\n */\nexport const ContentService = {\n typeName: \"content.ContentService\",\n methods: {\n /**\n * @generated from rpc content.ContentService.Save\n */\n save: {\n name: \"Save\",\n I: Contents,\n O: ContentIDs,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Search\n */\n search: {\n name: \"Search\",\n I: Query,\n O: Results,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Relate\n */\n relate: {\n name: \"Relate\",\n I: RelateRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Analyze\n */\n analyze: {\n name: \"Analyze\",\n I: Content,\n O: Contents,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Delete\n */\n delete: {\n name: \"Delete\",\n I: ContentIDs,\n O: ContentIDs,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.GetTags\n */\n getTags: {\n name: \"GetTags\",\n I: TagRequest,\n O: Tags,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.SetTags\n */\n setTags: {\n name: \"SetTags\",\n I: SetTagsRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Publish\n */\n publish: {\n name: \"Publish\",\n I: ContentIDs,\n O: ContentIDs,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.GetSources\n */\n getSources: {\n name: \"GetSources\",\n I: GetSourcesRequest,\n O: Sources,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Infer\n */\n infer: {\n name: \"Infer\",\n I: InferRequest,\n O: InferResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc content.ContentService.Types\n */\n types: {\n name: \"Types\",\n I: Empty,\n O: TypesResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.VoiceInput\n */\n voiceInput: {\n name: \"VoiceInput\",\n I: VoiceInputRequest,\n O: VoiceInputResponse,\n kind: MethodKind.ServerStreaming,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file user/user.proto (package user, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Config, Group, GroupID, GroupInfoRequest, GroupInvite, Groups, LoginResponse, ShareRequest, User, VerifyUserRequest } from \"./user_pb.js\";\nimport { Empty, MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service user.UserService\n */\nexport const UserService = {\n typeName: \"user.UserService\",\n methods: {\n /**\n * @generated from rpc user.UserService.Register\n */\n register: {\n name: \"Register\",\n I: User,\n O: User,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.Login\n */\n login: {\n name: \"Login\",\n I: User,\n O: LoginResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.Logout\n */\n logout: {\n name: \"Logout\",\n I: Empty,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.ResetPassword\n */\n resetPassword: {\n name: \"ResetPassword\",\n I: User,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.VerifyUser\n */\n verifyUser: {\n name: \"VerifyUser\",\n I: VerifyUserRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.UpdateConfig\n */\n updateConfig: {\n name: \"UpdateConfig\",\n I: Config,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.CreateGroupInvite\n */\n createGroupInvite: {\n name: \"CreateGroupInvite\",\n I: GroupID,\n O: GroupInvite,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.JoinGroup\n */\n joinGroup: {\n name: \"JoinGroup\",\n I: GroupInvite,\n O: Group,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.GroupInfo\n */\n groupInfo: {\n name: \"GroupInfo\",\n I: GroupInfoRequest,\n O: Group,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.CreateGroup\n */\n createGroup: {\n name: \"CreateGroup\",\n I: Group,\n O: Group,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.GetGroups\n */\n getGroups: {\n name: \"GetGroups\",\n I: Empty,\n O: Groups,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.DeleteGroup\n */\n deleteGroup: {\n name: \"DeleteGroup\",\n I: Group,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.Share\n */\n share: {\n name: \"Share\",\n I: ShareRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file chat/chat.proto (package chat, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message as Message$1, proto3, protoInt64 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message chat.BanUserRequest\n */\nexport class BanUserRequest extends Message$1 {\n /**\n * @generated from field: string user = 1;\n */\n user = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.BanUserRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): BanUserRequest {\n return new BanUserRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): BanUserRequest {\n return new BanUserRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): BanUserRequest {\n return new BanUserRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: BanUserRequest | PlainMessage | undefined, b: BanUserRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(BanUserRequest, a, b);\n }\n}\n\n/**\n * @generated from message chat.BanUserResponse\n */\nexport class BanUserResponse extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.BanUserResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): BanUserResponse {\n return new BanUserResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): BanUserResponse {\n return new BanUserResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): BanUserResponse {\n return new BanUserResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: BanUserResponse | PlainMessage | undefined, b: BanUserResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(BanUserResponse, a, b);\n }\n}\n\n/**\n * @generated from message chat.SendMessageRequest\n */\nexport class SendMessageRequest extends Message$1 {\n /**\n * @generated from field: string message = 2;\n */\n message = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.SendMessageRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 2, name: \"message\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SendMessageRequest {\n return new SendMessageRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SendMessageRequest {\n return new SendMessageRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SendMessageRequest {\n return new SendMessageRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: SendMessageRequest | PlainMessage | undefined, b: SendMessageRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(SendMessageRequest, a, b);\n }\n}\n\n/**\n * @generated from message chat.SendMessageResponse\n */\nexport class SendMessageResponse extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.SendMessageResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SendMessageResponse {\n return new SendMessageResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SendMessageResponse {\n return new SendMessageResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SendMessageResponse {\n return new SendMessageResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: SendMessageResponse | PlainMessage | undefined, b: SendMessageResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(SendMessageResponse, a, b);\n }\n}\n\n/**\n * @generated from message chat.ReceiveMessagesRequest\n */\nexport class ReceiveMessagesRequest extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.ReceiveMessagesRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ReceiveMessagesRequest {\n return new ReceiveMessagesRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ReceiveMessagesRequest {\n return new ReceiveMessagesRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ReceiveMessagesRequest {\n return new ReceiveMessagesRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ReceiveMessagesRequest | PlainMessage | undefined, b: ReceiveMessagesRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ReceiveMessagesRequest, a, b);\n }\n}\n\n/**\n * @generated from message chat.Message\n */\nexport class Message extends Message$1 {\n /**\n * @generated from field: string user = 1;\n */\n user = \"\";\n\n /**\n * @generated from field: string text = 2;\n */\n text = \"\";\n\n /**\n * @generated from field: int64 timestamp = 3;\n */\n timestamp = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.Message\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"timestamp\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Message {\n return new Message().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Message {\n return new Message().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Message {\n return new Message().fromJsonString(jsonString, options);\n }\n\n static equals(a: Message | PlainMessage | undefined, b: Message | PlainMessage | undefined): boolean {\n return proto3.util.equals(Message, a, b);\n }\n}\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file chat/chat.proto (package chat, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { BanUserRequest, BanUserResponse, Message, ReceiveMessagesRequest, SendMessageRequest, SendMessageResponse } from \"./chat_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service chat.ChatService\n */\nexport const ChatService = {\n typeName: \"chat.ChatService\",\n methods: {\n /**\n * @generated from rpc chat.ChatService.SendMessage\n */\n sendMessage: {\n name: \"SendMessage\",\n I: SendMessageRequest,\n O: SendMessageResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc chat.ChatService.ReceiveMessages\n */\n receiveMessages: {\n name: \"ReceiveMessages\",\n I: ReceiveMessagesRequest,\n O: Message,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc chat.ChatService.BanUser\n */\n banUser: {\n name: \"BanUser\",\n I: BanUserRequest,\n O: BanUserResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file event/event.proto (package event, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message event.Metric\n */\nexport class Metric extends Message {\n /**\n * @generated from oneof event.Metric.type\n */\n type: {\n /**\n * @generated from field: event.HTTPRequest http = 1;\n */\n value: HTTPRequest;\n case: \"http\";\n } | {\n /**\n * @generated from field: event.RRWeb rrweb = 2;\n */\n value: RRWeb;\n case: \"rrweb\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"event.Metric\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"http\", kind: \"message\", T: HTTPRequest, oneof: \"type\" },\n { no: 2, name: \"rrweb\", kind: \"message\", T: RRWeb, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Metric {\n return new Metric().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Metric {\n return new Metric().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Metric {\n return new Metric().fromJsonString(jsonString, options);\n }\n\n static equals(a: Metric | PlainMessage | undefined, b: Metric | PlainMessage | undefined): boolean {\n return proto3.util.equals(Metric, a, b);\n }\n}\n\n/**\n * @generated from message event.HTTPRequest\n */\nexport class HTTPRequest extends Message {\n /**\n * @generated from field: string method = 1;\n */\n method = \"\";\n\n /**\n * @generated from field: string path = 2;\n */\n path = \"\";\n\n /**\n * @generated from field: string query = 3;\n */\n query = \"\";\n\n /**\n * @generated from field: map headers = 4;\n */\n headers: { [key: string]: string } = {};\n\n /**\n * @generated from field: string host = 5;\n */\n host = \"\";\n\n /**\n * @generated from field: string remoteAddr = 6;\n */\n remoteAddr = \"\";\n\n /**\n * @generated from field: string userAgent = 7;\n */\n userAgent = \"\";\n\n /**\n * @generated from field: string referer = 8;\n */\n referer = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"event.HTTPRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"method\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"query\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"headers\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"scalar\", T: 9 /* ScalarType.STRING */} },\n { no: 5, name: \"host\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"remoteAddr\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"userAgent\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 8, name: \"referer\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HTTPRequest {\n return new HTTPRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HTTPRequest {\n return new HTTPRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HTTPRequest {\n return new HTTPRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: HTTPRequest | PlainMessage | undefined, b: HTTPRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(HTTPRequest, a, b);\n }\n}\n\n/**\n * @generated from message event.RRWeb\n */\nexport class RRWeb extends Message {\n /**\n * @generated from field: string events = 1;\n */\n events = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"event.RRWeb\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"events\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RRWeb {\n return new RRWeb().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RRWeb {\n return new RRWeb().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RRWeb {\n return new RRWeb().fromJsonString(jsonString, options);\n }\n\n static equals(a: RRWeb | PlainMessage | undefined, b: RRWeb | PlainMessage | undefined): boolean {\n return proto3.util.equals(RRWeb, a, b);\n }\n}\n\n/**\n * @generated from message event.SendResponse\n */\nexport class SendResponse extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"event.SendResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SendResponse {\n return new SendResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SendResponse {\n return new SendResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SendResponse {\n return new SendResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: SendResponse | PlainMessage | undefined, b: SendResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(SendResponse, a, b);\n }\n}\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file event/event.proto (package event, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Metric, SendResponse } from \"./event_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service event.EventService\n */\nexport const EventService = {\n typeName: \"event.EventService\",\n methods: {\n /**\n * @generated from rpc event.EventService.Send\n */\n send: {\n name: \"Send\",\n I: Metric,\n O: SendResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Connect represents categories of errors as codes, and each code maps to a\n * specific HTTP status code. The codes and their semantics were chosen to\n * match gRPC. Only the codes below are valid \u2014 there are no user-defined\n * codes.\n *\n * See the specification at https://connectrpc.com/docs/protocol#error-codes\n * for details.\n */\nexport var Code;\n(function (Code) {\n /**\n * Canceled, usually be the user\n */\n Code[Code[\"Canceled\"] = 1] = \"Canceled\";\n /**\n * Unknown error\n */\n Code[Code[\"Unknown\"] = 2] = \"Unknown\";\n /**\n * Argument invalid regardless of system state\n */\n Code[Code[\"InvalidArgument\"] = 3] = \"InvalidArgument\";\n /**\n * Operation expired, may or may not have completed.\n */\n Code[Code[\"DeadlineExceeded\"] = 4] = \"DeadlineExceeded\";\n /**\n * Entity not found.\n */\n Code[Code[\"NotFound\"] = 5] = \"NotFound\";\n /**\n * Entity already exists.\n */\n Code[Code[\"AlreadyExists\"] = 6] = \"AlreadyExists\";\n /**\n * Operation not authorized.\n */\n Code[Code[\"PermissionDenied\"] = 7] = \"PermissionDenied\";\n /**\n * Quota exhausted.\n */\n Code[Code[\"ResourceExhausted\"] = 8] = \"ResourceExhausted\";\n /**\n * Argument invalid in current system state.\n */\n Code[Code[\"FailedPrecondition\"] = 9] = \"FailedPrecondition\";\n /**\n * Operation aborted.\n */\n Code[Code[\"Aborted\"] = 10] = \"Aborted\";\n /**\n * Out of bounds, use instead of FailedPrecondition.\n */\n Code[Code[\"OutOfRange\"] = 11] = \"OutOfRange\";\n /**\n * Operation not implemented or disabled.\n */\n Code[Code[\"Unimplemented\"] = 12] = \"Unimplemented\";\n /**\n * Internal error, reserved for \"serious errors\".\n */\n Code[Code[\"Internal\"] = 13] = \"Internal\";\n /**\n * Unavailable, client should back off and retry.\n */\n Code[Code[\"Unavailable\"] = 14] = \"Unavailable\";\n /**\n * Unrecoverable data loss or corruption.\n */\n Code[Code[\"DataLoss\"] = 15] = \"DataLoss\";\n /**\n * Request isn't authenticated.\n */\n Code[Code[\"Unauthenticated\"] = 16] = \"Unauthenticated\";\n})(Code || (Code = {}));\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"../code.js\";\n/**\n * codeToString returns the string representation of a Code.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeToString(value) {\n const name = Code[value];\n if (typeof name != \"string\") {\n return value.toString();\n }\n return (name[0].toLowerCase() +\n name.substring(1).replace(/[A-Z]/g, (c) => \"_\" + c.toLowerCase()));\n}\nlet stringToCode;\n/**\n * codeFromString parses the string representation of a Code in snake_case.\n * For example, the string \"permission_denied\" parses into Code.PermissionDenied.\n *\n * If the given string cannot be parsed, the function returns undefined.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeFromString(value) {\n if (!stringToCode) {\n stringToCode = {};\n for (const value of Object.values(Code)) {\n if (typeof value == \"string\") {\n continue;\n }\n stringToCode[codeToString(value)] = value;\n }\n }\n return stringToCode[value];\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"./code.js\";\nimport { Message } from \"@bufbuild/protobuf\";\nimport { codeToString } from \"./protocol-connect/code-string.js\";\n/**\n * ConnectError captures four pieces of information: a Code, an error\n * message, an optional cause of the error, and an optional collection of\n * arbitrary Protobuf messages called \"details\".\n *\n * Because developer tools typically show just the error message, we prefix\n * it with the status code, so that the most important information is always\n * visible immediately.\n *\n * Error details are wrapped with google.protobuf.Any on the wire, so that\n * a server or middleware can attach arbitrary data to an error. Use the\n * method findDetails() to retrieve the details.\n */\nexport class ConnectError extends Error {\n /**\n * Create a new ConnectError.\n * If no code is provided, code \"unknown\" is used.\n * Outgoing details are only relevant for the server side - a service may\n * raise an error with details, and it is up to the protocol implementation\n * to encode and send the details along with error.\n */\n constructor(message, code = Code.Unknown, metadata, outgoingDetails, cause) {\n super(createMessage(message, code));\n this.name = \"ConnectError\";\n // see https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#example\n Object.setPrototypeOf(this, new.target.prototype);\n this.rawMessage = message;\n this.code = code;\n this.metadata = new Headers(metadata !== null && metadata !== void 0 ? metadata : {});\n this.details = outgoingDetails !== null && outgoingDetails !== void 0 ? outgoingDetails : [];\n this.cause = cause;\n }\n /**\n * Convert any value - typically a caught error into a ConnectError,\n * following these rules:\n * - If the value is already a ConnectError, return it as is.\n * - If the value is an AbortError from the fetch API, return the message\n * of the AbortError with code Canceled.\n * - For other Errors, return the error message with code Unknown by default.\n * - For other values, return the values String representation as a message,\n * with the code Unknown by default.\n * The original value will be used for the \"cause\" property for the new\n * ConnectError.\n */\n static from(reason, code = Code.Unknown) {\n if (reason instanceof ConnectError) {\n return reason;\n }\n if (reason instanceof Error) {\n if (reason.name == \"AbortError\") {\n // Fetch requests can only be canceled with an AbortController.\n // We detect that condition by looking at the name of the raised\n // error object, and translate to the appropriate status code.\n return new ConnectError(reason.message, Code.Canceled);\n }\n return new ConnectError(reason.message, code, undefined, undefined, reason);\n }\n return new ConnectError(String(reason), code, undefined, undefined, reason);\n }\n static [Symbol.hasInstance](v) {\n if (!(v instanceof Error)) {\n return false;\n }\n if (Object.getPrototypeOf(v) === ConnectError.prototype) {\n return true;\n }\n return (v.name === \"ConnectError\" &&\n \"code\" in v &&\n typeof v.code === \"number\" &&\n \"metadata\" in v &&\n \"details\" in v &&\n Array.isArray(v.details) &&\n \"rawMessage\" in v &&\n typeof v.rawMessage == \"string\" &&\n \"cause\" in v);\n }\n findDetails(typeOrRegistry) {\n const registry = \"typeName\" in typeOrRegistry\n ? {\n findMessage: (typeName) => typeName === typeOrRegistry.typeName ? typeOrRegistry : undefined,\n }\n : typeOrRegistry;\n const details = [];\n for (const data of this.details) {\n if (data instanceof Message) {\n if (registry.findMessage(data.getType().typeName)) {\n details.push(data);\n }\n continue;\n }\n const type = registry.findMessage(data.type);\n if (type) {\n try {\n details.push(type.fromBinary(data.value));\n }\n catch (_) {\n // We silently give up if we are unable to parse the detail, because\n // that appears to be the least worst behavior.\n // It is very unlikely that a user surrounds a catch body handling the\n // error with another try-catch statement, and we do not want to\n // recommend doing so.\n }\n }\n }\n return details;\n }\n}\n/**\n * Create an error message, prefixing the given code.\n */\nfunction createMessage(message, code) {\n return message.length\n ? `[${codeToString(code)}] ${message}`\n : `[${codeToString(code)}]`;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message, protoBase64 } from \"@bufbuild/protobuf\";\nimport { ConnectError } from \"./connect-error.js\";\nimport { Code } from \"./code.js\";\n/**\n * Encode a single binary header value according to the Connect\n * and gRPC specifications.\n *\n * This function accepts raw binary data from a buffer, a string\n * with UTF-8 text, or a protobuf message. It encodes the input\n * with unpadded base64 and returns a string that can be used for\n * a header whose name ends with `-bin`.\n */\nexport function encodeBinaryHeader(value) {\n let bytes;\n if (value instanceof Message) {\n bytes = value.toBinary();\n }\n else if (typeof value == \"string\") {\n bytes = new TextEncoder().encode(value);\n }\n else {\n bytes = value instanceof Uint8Array ? value : new Uint8Array(value);\n }\n return protoBase64.enc(bytes).replace(/=+$/, \"\");\n}\nexport function decodeBinaryHeader(value, type, options) {\n try {\n const bytes = protoBase64.dec(value);\n if (type) {\n return type.fromBinary(bytes, options);\n }\n return bytes;\n }\n catch (e) {\n throw ConnectError.from(e, Code.DataLoss);\n }\n}\n/**\n * Merge two or more Headers objects by appending all fields from\n * all inputs to a new Headers object.\n */\nexport function appendHeaders(...headers) {\n const h = new Headers();\n for (const e of headers) {\n e.forEach((value, key) => {\n h.append(key, value);\n });\n }\n return h;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Create any client for the given service.\n *\n * The given createMethod function is called for each method definition\n * of the service. The function it returns is added to the client object\n * as a method.\n */\nexport function makeAnyClient(service, createMethod) {\n const client = {};\n for (const [localName, methodInfo] of Object.entries(service.methods)) {\n const method = createMethod(Object.assign(Object.assign({}, methodInfo), { localName,\n service }));\n if (method != null) {\n client[localName] = method;\n }\n }\n return client;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\nimport { compressedFlag } from \"./compression.js\";\n/**\n * Create a WHATWG ReadableStream of enveloped messages from a ReadableStream\n * of bytes.\n *\n * Ideally, this would simply be a TransformStream, but ReadableStream.pipeThrough\n * does not have the necessary availability at this time.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createEnvelopeReadableStream(stream) {\n let reader;\n let buffer = new Uint8Array(0);\n function append(chunk) {\n const n = new Uint8Array(buffer.length + chunk.length);\n n.set(buffer);\n n.set(chunk, buffer.length);\n buffer = n;\n }\n return new ReadableStream({\n start() {\n reader = stream.getReader();\n },\n async pull(controller) {\n let header = undefined;\n for (;;) {\n if (header === undefined && buffer.byteLength >= 5) {\n let length = 0;\n for (let i = 1; i < 5; i++) {\n length = (length << 8) + buffer[i];\n }\n header = { flags: buffer[0], length };\n }\n if (header !== undefined && buffer.byteLength >= header.length + 5) {\n break;\n }\n const result = await reader.read();\n if (result.done) {\n break;\n }\n append(result.value);\n }\n if (header === undefined) {\n if (buffer.byteLength == 0) {\n controller.close();\n return;\n }\n controller.error(new ConnectError(\"premature end of stream\", Code.DataLoss));\n return;\n }\n const data = buffer.subarray(5, 5 + header.length);\n buffer = buffer.subarray(5 + header.length);\n controller.enqueue({\n flags: header.flags,\n data,\n });\n },\n });\n}\n/**\n * Compress an EnvelopedMessage.\n *\n * Raises Internal if an enveloped message is already compressed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function envelopeCompress(envelope, compression, compressMinBytes) {\n let { flags, data } = envelope;\n if ((flags & compressedFlag) === compressedFlag) {\n throw new ConnectError(\"invalid envelope, already compressed\", Code.Internal);\n }\n if (compression && data.byteLength >= compressMinBytes) {\n data = await compression.compress(data);\n flags = flags | compressedFlag;\n }\n return { data, flags };\n}\n/**\n * Decompress an EnvelopedMessage.\n *\n * Raises InvalidArgument if an envelope is compressed, but compression is null.\n *\n * Relies on the provided Compression to raise ResourceExhausted if the\n * *decompressed* message size is larger than readMaxBytes. If the envelope is\n * not compressed, readMaxBytes is not honored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function envelopeDecompress(envelope, compression, readMaxBytes) {\n let { flags, data } = envelope;\n if ((flags & compressedFlag) === compressedFlag) {\n if (!compression) {\n throw new ConnectError(\"received compressed envelope, but do not know how to decompress\", Code.InvalidArgument);\n }\n data = await compression.decompress(data, readMaxBytes);\n flags = flags ^ compressedFlag;\n }\n return { data, flags };\n}\n/**\n * Encode a single enveloped message.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function encodeEnvelope(flags, data) {\n const bytes = new Uint8Array(data.length + 5);\n bytes.set(data, 5);\n const v = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n v.setUint8(0, flags); // first byte is flags\n v.setUint32(1, data.length); // 4 bytes message length\n return bytes;\n}\n/**\n * Encode a set of enveloped messages.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function encodeEnvelopes(...envelopes) {\n const len = envelopes.reduce((previousValue, currentValue) => previousValue + currentValue.data.length + 5, 0);\n const bytes = new Uint8Array(len);\n const v = new DataView(bytes.buffer);\n let offset = 0;\n for (const e of envelopes) {\n v.setUint8(offset, e.flags); // first byte is flags\n v.setUint32(offset + 1, e.data.length); // 4 bytes message length\n bytes.set(e.data, offset + 5);\n offset += e.data.length + 5;\n }\n return bytes;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nvar __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n};\nimport { Code } from \"../code.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { encodeEnvelope, envelopeCompress, envelopeDecompress, } from \"./envelope.js\";\nimport { assertReadMaxBytes } from \"./limit-io.js\";\nexport function pipeTo(source, ...rest) {\n const [transforms, sink, opt] = pickTransformsAndSink(rest);\n let iterable = source;\n let abortable;\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n iterable = abortable = makeIterableAbortable(iterable);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n iterable = pipe(iterable, ...transforms, { propagateDownStreamError: false });\n return sink(iterable).catch((reason) => {\n if (abortable) {\n return abortable.abort(reason).then(() => Promise.reject(reason));\n }\n return Promise.reject(reason);\n });\n}\n// pick transforms, the sink, and options from the pipeTo() rest parameter\nfunction pickTransformsAndSink(rest) {\n let opt;\n if (typeof rest[rest.length - 1] != \"function\") {\n opt = rest.pop();\n }\n const sink = rest.pop();\n return [rest, sink, opt];\n}\n/**\n * Creates an AsyncIterableSink that concatenates all elements from the input.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function sinkAll() {\n return async function (iterable) {\n var _a, e_1, _b, _c;\n const all = [];\n try {\n for (var _d = true, iterable_1 = __asyncValues(iterable), iterable_1_1; iterable_1_1 = await iterable_1.next(), _a = iterable_1_1.done, !_a; _d = true) {\n _c = iterable_1_1.value;\n _d = false;\n const chunk = _c;\n all.push(chunk);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_1.return)) await _b.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return all;\n };\n}\n/**\n * Creates an AsyncIterableSink that concatenates all chunks from the input into\n * a single Uint8Array.\n *\n * The iterable raises an error if the more than readMaxBytes are read.\n *\n * An optional length hint can be provided to optimize allocation and validation.\n * If more or less bytes are present in the source that the length hint indicates,\n * and error is raised.\n * If the length hint is larger than readMaxBytes, an error is raised.\n * If the length hint is not a positive integer, it is ignored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function sinkAllBytes(readMaxBytes, lengthHint) {\n return async function (iterable) {\n return await readAllBytes(iterable, readMaxBytes, lengthHint);\n };\n}\nexport function pipe(source, ...rest) {\n var _a;\n return __asyncGenerator(this, arguments, function* pipe_1() {\n const [transforms, opt] = pickTransforms(rest);\n let abortable;\n const sourceIt = source[Symbol.asyncIterator]();\n const cachedSource = {\n [Symbol.asyncIterator]() {\n return sourceIt;\n },\n };\n let iterable = cachedSource;\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n iterable = abortable = makeIterableAbortable(iterable);\n }\n for (const t of transforms) {\n iterable = t(iterable);\n }\n const it = iterable[Symbol.asyncIterator]();\n try {\n for (;;) {\n const r = yield __await(it.next());\n if (r.done === true) {\n break;\n }\n if (!abortable) {\n yield yield __await(r.value);\n continue;\n }\n try {\n yield yield __await(r.value);\n }\n catch (e) {\n yield __await(abortable.abort(e)); // propagate downstream error to the source\n throw e;\n }\n }\n }\n finally {\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n // Call return on the source iterable to indicate\n // that we will no longer consume it and it should\n // cleanup any allocated resources.\n (_a = sourceIt.return) === null || _a === void 0 ? void 0 : _a.call(sourceIt).catch(() => {\n // return returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n }\n }\n });\n}\nfunction pickTransforms(rest) {\n let opt;\n if (typeof rest[rest.length - 1] != \"function\") {\n opt = rest.pop();\n }\n return [rest, opt];\n}\n/**\n * Creates an AsyncIterableTransform that catches any error from the input, and\n * passes it to the given catchError function.\n *\n * The catchError function may return a final value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCatch(catchError) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n // we deliberate avoid a for-await loop because we only want to catch upstream\n // errors, not downstream errors (yield).\n const it = iterable[Symbol.asyncIterator]();\n for (;;) {\n let r;\n try {\n r = yield __await(it.next());\n }\n catch (e) {\n const caught = yield __await(catchError(e));\n if (caught !== undefined) {\n yield yield __await(caught);\n }\n break;\n }\n if (r.done === true) {\n break;\n }\n yield yield __await(r.value);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that catches any error from the input, and\n * passes it to the given function. Unlike transformCatch(), the given function\n * is also called when no error is raised.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCatchFinally(catchFinally) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n // we deliberate avoid a for-await loop because we only want to catch upstream\n // errors, not downstream errors (yield).\n let err;\n const it = iterable[Symbol.asyncIterator]();\n for (;;) {\n let r;\n try {\n r = yield __await(it.next());\n }\n catch (e) {\n err = e;\n break;\n }\n if (r.done === true) {\n break;\n }\n yield yield __await(r.value);\n }\n const caught = yield __await(catchFinally(err));\n if (caught !== undefined) {\n yield yield __await(caught);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that appends a value.\n *\n * The element to append is provided by a function. If the function returns\n * undefined, no element is appended.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformAppend(provide) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_2, _b, _c;\n try {\n for (var _d = true, iterable_2 = __asyncValues(iterable), iterable_2_1; iterable_2_1 = yield __await(iterable_2.next()), _a = iterable_2_1.done, !_a; _d = true) {\n _c = iterable_2_1.value;\n _d = false;\n const chunk = _c;\n yield yield __await(chunk);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_2.return)) yield __await(_b.call(iterable_2));\n }\n finally { if (e_2) throw e_2.error; }\n }\n const append = yield __await(provide());\n if (append !== undefined) {\n yield yield __await(append);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that prepends an element.\n *\n * The element to prepend is provided by a function. If the function returns\n * undefined, no element is appended.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformPrepend(provide) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_3, _b, _c;\n const prepend = yield __await(provide());\n if (prepend !== undefined) {\n yield yield __await(prepend);\n }\n try {\n for (var _d = true, iterable_3 = __asyncValues(iterable), iterable_3_1; iterable_3_1 = yield __await(iterable_3.next()), _a = iterable_3_1.done, !_a; _d = true) {\n _c = iterable_3_1.value;\n _d = false;\n const chunk = _c;\n yield yield __await(chunk);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_3.return)) yield __await(_b.call(iterable_3));\n }\n finally { if (e_3) throw e_3.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that reads all bytes from the input, and\n * concatenates them to a single Uint8Array.\n *\n * The iterable raises an error if the more than readMaxBytes are read.\n *\n * An optional length hint can be provided to optimize allocation and validation.\n * If more or less bytes are present in the source that the length hint indicates,\n * and error is raised.\n * If the length hint is larger than readMaxBytes, an error is raised.\n * If the length hint is not a positive integer, it is ignored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformReadAllBytes(readMaxBytes, lengthHint) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n yield yield __await(yield __await(readAllBytes(iterable, readMaxBytes, lengthHint)));\n });\n };\n}\nexport function transformSerializeEnvelope(serialization, endStreamFlag, endSerialization) {\n if (endStreamFlag === undefined || endSerialization === undefined) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_4, _b, _c;\n try {\n for (var _d = true, iterable_4 = __asyncValues(iterable), iterable_4_1; iterable_4_1 = yield __await(iterable_4.next()), _a = iterable_4_1.done, !_a; _d = true) {\n _c = iterable_4_1.value;\n _d = false;\n const chunk = _c;\n const data = serialization.serialize(chunk);\n yield yield __await({ flags: 0, data });\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_4.return)) yield __await(_b.call(iterable_4));\n }\n finally { if (e_4) throw e_4.error; }\n }\n });\n };\n }\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_5, _b, _c;\n try {\n for (var _d = true, iterable_5 = __asyncValues(iterable), iterable_5_1; iterable_5_1 = yield __await(iterable_5.next()), _a = iterable_5_1.done, !_a; _d = true) {\n _c = iterable_5_1.value;\n _d = false;\n const chunk = _c;\n let data;\n let flags = 0;\n if (chunk.end) {\n flags = flags | endStreamFlag;\n data = endSerialization.serialize(chunk.value);\n }\n else {\n data = serialization.serialize(chunk.value);\n }\n yield yield __await({ flags, data });\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_5.return)) yield __await(_b.call(iterable_5));\n }\n finally { if (e_5) throw e_5.error; }\n }\n });\n };\n}\nexport function transformParseEnvelope(serialization, endStreamFlag, endSerialization) {\n // code path always yields ParsedEnvelopedMessage\n if (endSerialization && endStreamFlag !== undefined) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_6, _b, _c;\n try {\n for (var _d = true, iterable_6 = __asyncValues(iterable), iterable_6_1; iterable_6_1 = yield __await(iterable_6.next()), _a = iterable_6_1.done, !_a; _d = true) {\n _c = iterable_6_1.value;\n _d = false;\n const { flags, data } = _c;\n if ((flags & endStreamFlag) === endStreamFlag) {\n yield yield __await({ value: endSerialization.parse(data), end: true });\n }\n else {\n yield yield __await({ value: serialization.parse(data), end: false });\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_6.return)) yield __await(_b.call(iterable_6));\n }\n finally { if (e_6) throw e_6.error; }\n }\n });\n };\n }\n // code path always yields T\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_7, _b, _c;\n try {\n for (var _d = true, iterable_7 = __asyncValues(iterable), iterable_7_1; iterable_7_1 = yield __await(iterable_7.next()), _a = iterable_7_1.done, !_a; _d = true) {\n _c = iterable_7_1.value;\n _d = false;\n const { flags, data } = _c;\n if (endStreamFlag !== undefined &&\n (flags & endStreamFlag) === endStreamFlag) {\n if (endSerialization === null) {\n throw new ConnectError(\"unexpected end flag\", Code.InvalidArgument);\n }\n // skips end-of-stream envelope\n continue;\n }\n yield yield __await(serialization.parse(data));\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_7.return)) yield __await(_b.call(iterable_7));\n }\n finally { if (e_7) throw e_7.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that takes enveloped messages as a source,\n * and compresses them if they are larger than compressMinBytes.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCompressEnvelope(compression, compressMinBytes) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_8, _b, _c;\n try {\n for (var _d = true, iterable_8 = __asyncValues(iterable), iterable_8_1; iterable_8_1 = yield __await(iterable_8.next()), _a = iterable_8_1.done, !_a; _d = true) {\n _c = iterable_8_1.value;\n _d = false;\n const env = _c;\n yield yield __await(yield __await(envelopeCompress(env, compression, compressMinBytes)));\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_8.return)) yield __await(_b.call(iterable_8));\n }\n finally { if (e_8) throw e_8.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that takes enveloped messages as a source,\n * and decompresses them using the given compression.\n *\n * The iterable raises an error if the decompressed payload of an enveloped\n * message is larger than readMaxBytes, or if no compression is provided.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformDecompressEnvelope(compression, readMaxBytes) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_9, _b, _c;\n try {\n for (var _d = true, iterable_9 = __asyncValues(iterable), iterable_9_1; iterable_9_1 = yield __await(iterable_9.next()), _a = iterable_9_1.done, !_a; _d = true) {\n _c = iterable_9_1.value;\n _d = false;\n const env = _c;\n yield yield __await(yield __await(envelopeDecompress(env, compression, readMaxBytes)));\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_9.return)) yield __await(_b.call(iterable_9));\n }\n finally { if (e_9) throw e_9.error; }\n }\n });\n };\n}\n/**\n * Create an AsyncIterableTransform that takes enveloped messages as a source,\n * and joins them into a stream of raw bytes.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformJoinEnvelopes() {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_10, _b, _c;\n try {\n for (var _d = true, iterable_10 = __asyncValues(iterable), iterable_10_1; iterable_10_1 = yield __await(iterable_10.next()), _a = iterable_10_1.done, !_a; _d = true) {\n _c = iterable_10_1.value;\n _d = false;\n const { flags, data } = _c;\n yield yield __await(encodeEnvelope(flags, data));\n }\n }\n catch (e_10_1) { e_10 = { error: e_10_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_10.return)) yield __await(_b.call(iterable_10));\n }\n finally { if (e_10) throw e_10.error; }\n }\n });\n };\n}\n/**\n * Create an AsyncIterableTransform that takes raw bytes as a source, and splits\n * them into enveloped messages.\n *\n * The iterable raises an error\n * - if the payload of an enveloped message is larger than readMaxBytes,\n * - if the stream ended before an enveloped message fully arrived,\n * - or if the stream ended with extraneous data.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformSplitEnvelope(readMaxBytes) {\n // append chunk to buffer, returning updated buffer\n function append(buffer, chunk) {\n const n = new Uint8Array(buffer.byteLength + chunk.byteLength);\n n.set(buffer);\n n.set(chunk, buffer.length);\n return n;\n }\n // tuple 0: envelope, or undefined if incomplete\n // tuple 1: remainder of the buffer\n function shiftEnvelope(buffer, header) {\n if (buffer.byteLength < 5 + header.length) {\n return [undefined, buffer];\n }\n return [\n { flags: header.flags, data: buffer.subarray(5, 5 + header.length) },\n buffer.subarray(5 + header.length),\n ];\n }\n // undefined: header is incomplete\n function peekHeader(buffer) {\n if (buffer.byteLength < 5) {\n return undefined;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const length = view.getUint32(1); // 4 bytes message length\n const flags = view.getUint8(0); // first byte is flags\n return { length, flags };\n }\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_11, _b, _c;\n let buffer = new Uint8Array(0);\n try {\n for (var _d = true, iterable_11 = __asyncValues(iterable), iterable_11_1; iterable_11_1 = yield __await(iterable_11.next()), _a = iterable_11_1.done, !_a; _d = true) {\n _c = iterable_11_1.value;\n _d = false;\n const chunk = _c;\n buffer = append(buffer, chunk);\n for (;;) {\n const header = peekHeader(buffer);\n if (!header) {\n break;\n }\n assertReadMaxBytes(readMaxBytes, header.length, true);\n let env;\n [env, buffer] = shiftEnvelope(buffer, header);\n if (!env) {\n break;\n }\n yield yield __await(env);\n }\n }\n }\n catch (e_11_1) { e_11 = { error: e_11_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_11.return)) yield __await(_b.call(iterable_11));\n }\n finally { if (e_11) throw e_11.error; }\n }\n if (buffer.byteLength > 0) {\n const header = peekHeader(buffer);\n let message = \"protocol error: incomplete envelope\";\n if (header) {\n message = `protocol error: promised ${header.length} bytes in enveloped message, got ${buffer.byteLength - 5} bytes`;\n }\n throw new ConnectError(message, Code.InvalidArgument);\n }\n });\n };\n}\n/**\n * Reads all bytes from the source, and concatenates them to a single Uint8Array.\n *\n * Raises an error if:\n * - more than readMaxBytes are read\n * - lengthHint is a positive integer, but larger than readMaxBytes\n * - lengthHint is a positive integer, and the source contains more or less bytes\n * than promised\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function readAllBytes(iterable, readMaxBytes, lengthHint) {\n var _a, e_12, _b, _c, _d, e_13, _e, _f;\n const [ok, hint] = parseLengthHint(lengthHint);\n if (ok) {\n if (hint > readMaxBytes) {\n assertReadMaxBytes(readMaxBytes, hint, true);\n }\n const buffer = new Uint8Array(hint);\n let offset = 0;\n try {\n for (var _g = true, iterable_12 = __asyncValues(iterable), iterable_12_1; iterable_12_1 = await iterable_12.next(), _a = iterable_12_1.done, !_a; _g = true) {\n _c = iterable_12_1.value;\n _g = false;\n const chunk = _c;\n if (offset + chunk.byteLength > hint) {\n throw new ConnectError(`protocol error: promised ${hint} bytes, received ${offset + chunk.byteLength}`, Code.InvalidArgument);\n }\n buffer.set(chunk, offset);\n offset += chunk.byteLength;\n }\n }\n catch (e_12_1) { e_12 = { error: e_12_1 }; }\n finally {\n try {\n if (!_g && !_a && (_b = iterable_12.return)) await _b.call(iterable_12);\n }\n finally { if (e_12) throw e_12.error; }\n }\n if (offset < hint) {\n throw new ConnectError(`protocol error: promised ${hint} bytes, received ${offset}`, Code.InvalidArgument);\n }\n return buffer;\n }\n const chunks = [];\n let count = 0;\n try {\n for (var _h = true, iterable_13 = __asyncValues(iterable), iterable_13_1; iterable_13_1 = await iterable_13.next(), _d = iterable_13_1.done, !_d; _h = true) {\n _f = iterable_13_1.value;\n _h = false;\n const chunk = _f;\n count += chunk.byteLength;\n assertReadMaxBytes(readMaxBytes, count);\n chunks.push(chunk);\n }\n }\n catch (e_13_1) { e_13 = { error: e_13_1 }; }\n finally {\n try {\n if (!_h && !_d && (_e = iterable_13.return)) await _e.call(iterable_13);\n }\n finally { if (e_13) throw e_13.error; }\n }\n const all = new Uint8Array(count);\n let offset = 0;\n for (let chunk = chunks.shift(); chunk; chunk = chunks.shift()) {\n all.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return all;\n}\n// parse the lengthHint argument of readAllBytes()\nfunction parseLengthHint(lengthHint) {\n if (lengthHint === undefined || lengthHint === null) {\n return [false, 0];\n }\n const n = typeof lengthHint == \"string\" ? parseInt(lengthHint, 10) : lengthHint;\n if (!Number.isSafeInteger(n) || n < 0) {\n return [false, n];\n }\n return [true, n];\n}\n/**\n * Wait for the first element of an iterable without modifying the iterable.\n * This consumes the first element, but pushes it back on the stack.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function untilFirst(iterable) {\n const it = iterable[Symbol.asyncIterator]();\n let first = await it.next();\n return {\n [Symbol.asyncIterator]() {\n const w = {\n async next() {\n if (first !== null) {\n const n = first;\n first = null;\n return n;\n }\n return await it.next();\n },\n };\n if (it.throw !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- can't handle mutated object sensibly\n w.throw = (e) => it.throw(e);\n }\n if (it.return !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion,@typescript-eslint/no-explicit-any -- can't handle mutated object sensibly\n w.return = (value) => it.return(value);\n }\n return w;\n },\n };\n}\n/**\n * Wrap the given iterable and return an iterable with an abort() method.\n *\n * This function exists purely for convenience. Where one would typically have\n * to access the iterator directly, advance through all elements, and call\n * AsyncIterator.throw() to notify the upstream iterable, this function allows\n * to use convenient for-await loops and still notify the upstream iterable:\n *\n * ```ts\n * const abortable = makeIterableAbortable(iterable);\n * for await (const ele of abortable) {\n * await abortable.abort(\"ERR\");\n * }\n * ```\n * There are a couple of limitations of this function:\n * - the given async iterable must implement throw\n * - the async iterable cannot be re-use\n * - if source catches errors and yields values for them, they are ignored, and\n * the source may still dangle\n *\n * There are four possible ways an async function* can handle yield errors:\n * 1. don't catch errors at all - Abortable.abort() will resolve \"rethrown\"\n * 2. catch errors and rethrow - Abortable.abort() will resolve \"rethrown\"\n * 3. catch errors and return - Abortable.abort() will resolve \"completed\"\n * 4. catch errors and yield a value - Abortable.abort() will resolve \"caught\"\n *\n * Note that catching errors and yielding a value is problematic, and it should\n * be documented that this may leave the source in a dangling state.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function makeIterableAbortable(iterable) {\n const innerCandidate = iterable[Symbol.asyncIterator]();\n if (innerCandidate.throw === undefined) {\n throw new Error(\"AsyncIterable does not implement throw\");\n }\n const inner = innerCandidate;\n let aborted;\n let resultPromise;\n let it = {\n next() {\n resultPromise = inner.next().finally(() => {\n resultPromise = undefined;\n });\n return resultPromise;\n },\n throw(e) {\n return inner.throw(e);\n },\n };\n if (innerCandidate.return !== undefined) {\n it = Object.assign(Object.assign({}, it), { return(value) {\n return inner.return(value);\n } });\n }\n let used = false;\n return {\n abort(reason) {\n if (aborted) {\n return aborted.state;\n }\n const f = () => {\n return inner.throw(reason).then((r) => (r.done === true ? \"completed\" : \"caught\"), () => \"rethrown\");\n };\n if (resultPromise) {\n aborted = { reason, state: resultPromise.then(f, f) };\n return aborted.state;\n }\n aborted = { reason, state: f() };\n return aborted.state;\n },\n [Symbol.asyncIterator]() {\n if (used) {\n throw new Error(\"AsyncIterable cannot be re-used\");\n }\n used = true;\n return it;\n },\n };\n}\n/**\n * Create a new WritableIterable.\n */\nexport function createWritableIterable() {\n // We start with two queues to capture the read and write attempts.\n //\n // The writes and reads each check of their counterpart is\n // already available and either interact/add themselves to the queue.\n const readQueue = [];\n const writeQueue = [];\n let err = undefined;\n let nextResolve;\n let nextReject;\n let nextPromise = new Promise((resolve, reject) => {\n nextResolve = resolve;\n nextReject = reject;\n });\n let closed = false;\n // drain the readQueue in case of error/writer is closed by sending a\n // done result.\n function drain() {\n for (const next of readQueue.splice(0, readQueue.length)) {\n next({ done: true, value: undefined });\n }\n }\n return {\n close() {\n closed = true;\n drain();\n },\n async write(payload) {\n if (closed) {\n throw err !== null && err !== void 0 ? err : new Error(\"cannot write, WritableIterable already closed\");\n }\n const read = readQueue.shift();\n if (read === undefined) {\n // We didn't find a pending read so we add the payload to the write queue.\n writeQueue.push(payload);\n }\n else {\n // We found a pending read so we respond with the payload.\n read({ done: false, value: payload });\n if (readQueue.length > 0) {\n // If there are more in the read queue we can mark the write as complete.\n // as the error reporting is not guaranteed to be sequential and therefore cannot\n // to linked to a specific write.\n return;\n }\n }\n // We await the next call for as many times as there are items in the queue + 1\n //\n // If there are no items in the write queue that means write happened and we just have\n // to wait for one more call likewise if we are the nth write in the queue we\n // have to wait for n writes to complete and one more.\n const limit = writeQueue.length + 1;\n for (let i = 0; i < limit; i++) {\n await nextPromise;\n }\n },\n [Symbol.asyncIterator]() {\n return {\n next() {\n // Resolve the nextPromise to indicate\n // pending writes that a read attempt has been made\n // after their write.\n //\n // We also need to reset the promise for future writes.\n nextResolve();\n nextPromise = new Promise((resolve, reject) => {\n nextResolve = resolve;\n nextReject = reject;\n });\n const write = writeQueue.shift();\n if (write !== undefined) {\n // We found a pending write so response with the payload.\n return Promise.resolve({ done: false, value: write });\n }\n if (closed) {\n return Promise.resolve({ done: true, value: undefined });\n }\n // We return a promise immediately that is either resolved/rejected\n // as writes happen.\n let readResolve;\n const readPromise = new Promise((resolve) => (readResolve = resolve));\n readQueue.push(readResolve); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n return readPromise;\n },\n throw(throwErr) {\n err = throwErr;\n closed = true;\n writeQueue.splice(0, writeQueue.length);\n nextPromise.catch(() => {\n // To make sure that the nextPromise is always resolved.\n });\n // This will reject all pending writes.\n nextReject(err);\n drain();\n return Promise.resolve({ done: true, value: undefined });\n },\n return() {\n closed = true;\n writeQueue.splice(0, writeQueue.length);\n // Resolve once for the write awaiting confirmation.\n nextResolve();\n // Reject all future writes.\n nextPromise = Promise.reject(new Error(\"cannot write, consumer called return\"));\n nextPromise.catch(() => {\n // To make sure that the nextPromise is always resolved.\n });\n drain();\n return Promise.resolve({ done: true, value: undefined });\n },\n };\n },\n };\n}\n/**\n * Create an asynchronous iterable from an array.\n *\n * @private Internal code, does not follow semantic versioning.\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nexport function createAsyncIterable(items) {\n return __asyncGenerator(this, arguments, function* createAsyncIterable_1() {\n yield __await(yield* __asyncDelegator(__asyncValues(items)));\n });\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n};\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { Message, MethodKind } from \"@bufbuild/protobuf\";\nimport { makeAnyClient } from \"./any-client.js\";\nimport { ConnectError } from \"./connect-error.js\";\nimport { Code } from \"./code.js\";\nimport { createAsyncIterable } from \"./protocol/async-iterable.js\";\n/**\n * Create a PromiseClient for the given service, invoking RPCs through the\n * given transport.\n */\nexport function createPromiseClient(service, transport) {\n return makeAnyClient(service, (method) => {\n switch (method.kind) {\n case MethodKind.Unary:\n return createUnaryFn(transport, service, method);\n case MethodKind.ServerStreaming:\n return createServerStreamingFn(transport, service, method);\n case MethodKind.ClientStreaming:\n return createClientStreamingFn(transport, service, method);\n case MethodKind.BiDiStreaming:\n return createBiDiStreamingFn(transport, service, method);\n default:\n return null;\n }\n });\n}\nexport function createUnaryFn(transport, service, method) {\n return async function (input, options) {\n var _a, _b;\n const response = await transport.unary(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, input, options === null || options === void 0 ? void 0 : options.contextValues);\n (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header);\n (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer);\n return response.message;\n };\n}\nexport function createServerStreamingFn(transport, service, method) {\n return function (input, options) {\n return handleStreamResponse(transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, createAsyncIterable([input]), options === null || options === void 0 ? void 0 : options.contextValues), options);\n };\n}\nexport function createClientStreamingFn(transport, service, method) {\n return async function (request, options) {\n var _a, e_1, _b, _c;\n var _d, _e;\n const response = await transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues);\n (_d = options === null || options === void 0 ? void 0 : options.onHeader) === null || _d === void 0 ? void 0 : _d.call(options, response.header);\n let singleMessage;\n try {\n for (var _f = true, _g = __asyncValues(response.message), _h; _h = await _g.next(), _a = _h.done, !_a; _f = true) {\n _c = _h.value;\n _f = false;\n const message = _c;\n singleMessage = message;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_f && !_a && (_b = _g.return)) await _b.call(_g);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!singleMessage) {\n throw new ConnectError(\"protocol error: missing response message\", Code.Internal);\n }\n (_e = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _e === void 0 ? void 0 : _e.call(options, response.trailer);\n return singleMessage;\n };\n}\nexport function createBiDiStreamingFn(transport, service, method) {\n return function (request, options) {\n return handleStreamResponse(transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues), options);\n };\n}\nfunction handleStreamResponse(stream, options) {\n const it = (function () {\n var _a, _b;\n return __asyncGenerator(this, arguments, function* () {\n const response = yield __await(stream);\n (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header);\n yield __await(yield* __asyncDelegator(__asyncValues(response.message)));\n (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer);\n });\n })()[Symbol.asyncIterator]();\n // Create a new iterable to omit throw/return.\n return {\n [Symbol.asyncIterator]: () => ({\n next: () => it.next(),\n }),\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * Create an AbortController that is automatically aborted if one of the given\n * signals is aborted.\n *\n * For convenience, the linked AbortSignals can be undefined.\n *\n * If the controller or any of the signals is aborted, all event listeners are\n * removed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createLinkedAbortController(...signals) {\n const controller = new AbortController();\n const sa = signals\n .filter((s) => s !== undefined)\n .concat(controller.signal);\n for (const signal of sa) {\n if (signal.aborted) {\n onAbort.apply(signal);\n break;\n }\n signal.addEventListener(\"abort\", onAbort);\n }\n function onAbort() {\n if (!controller.signal.aborted) {\n controller.abort(getAbortSignalReason(this));\n }\n for (const signal of sa) {\n signal.removeEventListener(\"abort\", onAbort);\n }\n }\n return controller;\n}\n/**\n * Create a deadline signal. The returned object contains an AbortSignal, but\n * also a cleanup function to stop the timer, which must be called once the\n * calling code is no longer interested in the signal.\n *\n * Ideally, we would simply use AbortSignal.timeout(), but it is not widely\n * available yet.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createDeadlineSignal(timeoutMs) {\n const controller = new AbortController();\n const listener = () => {\n controller.abort(new ConnectError(\"the operation timed out\", Code.DeadlineExceeded));\n };\n let timeoutId;\n if (timeoutMs !== undefined) {\n if (timeoutMs <= 0)\n listener();\n else\n timeoutId = setTimeout(listener, timeoutMs);\n }\n return {\n signal: controller.signal,\n cleanup: () => clearTimeout(timeoutId),\n };\n}\n/**\n * Returns the reason why an AbortSignal was aborted. Returns undefined if the\n * signal has not been aborted.\n *\n * The property AbortSignal.reason is not widely available. This function\n * returns an AbortError if the signal is aborted, but reason is undefined.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function getAbortSignalReason(signal) {\n if (!signal.aborted) {\n return undefined;\n }\n if (signal.reason !== undefined) {\n return signal.reason;\n }\n // AbortSignal.reason is available in Node.js v16, v18, and later,\n // and in all browsers since early 2022.\n const e = new Error(\"This operation was aborted\");\n e.name = \"AbortError\";\n return e;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * createContextValues creates a new ContextValues.\n */\nexport function createContextValues() {\n return {\n get(key) {\n return key.id in this ? this[key.id] : key.defaultValue;\n },\n set(key, value) {\n this[key.id] = value;\n return this;\n },\n delete(key) {\n delete this[key.id];\n return this;\n },\n };\n}\n/**\n * createContextKey creates a new ContextKey.\n */\nexport function createContextKey(defaultValue, options) {\n return { id: Symbol(options === null || options === void 0 ? void 0 : options.description), defaultValue };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Create a URL for the given RPC. This simply adds the qualified\n * service name, a slash, and the method name to the path of the given\n * baseUrl.\n *\n * For example, the baseUri https://example.com and method \"Say\" from\n * the service example.ElizaService results in:\n * https://example.com/example.ElizaService/Say\n *\n * This format is used by the protocols Connect, gRPC and Twirp.\n *\n * Note that this function also accepts a protocol-relative baseUrl.\n * If given an empty string or \"/\" as a baseUrl, it returns just the\n * path.\n */\nexport function createMethodUrl(baseUrl, service, method) {\n const s = typeof service == \"string\" ? service : service.typeName;\n const m = typeof method == \"string\" ? method : method.name;\n return baseUrl.toString().replace(/\\/?$/, `/${s}/${m}`);\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"@bufbuild/protobuf\";\n/**\n * Takes a partial protobuf messages of the\n * specified message type as input, and returns full instances.\n */\nexport function normalize(type, message) {\n return message instanceof type\n ? message\n : new type(message);\n}\n/**\n * Takes an AsyncIterable of partial protobuf messages of the\n * specified message type as input, and yields full instances.\n */\nexport function normalizeIterable(messageType, input) {\n function transform(result) {\n if (result.done === true) {\n return result;\n }\n return {\n done: result.done,\n value: normalize(messageType, result.value),\n };\n }\n return {\n [Symbol.asyncIterator]() {\n const it = input[Symbol.asyncIterator]();\n const res = {\n next: () => it.next().then(transform),\n };\n if (it.throw !== undefined) {\n res.throw = (e) => it.throw(e).then(transform); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n if (it.return !== undefined) {\n res.return = (v) => it.return(v).then(transform); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n return res;\n },\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\nimport { assertReadMaxBytes, assertWriteMaxBytes } from \"./limit-io.js\";\n/**\n * Sets default JSON serialization options for connect-es.\n *\n * With standard protobuf JSON serialization, unknown JSON fields are\n * rejected by default. In connect-es, unknown JSON fields are ignored\n * by default.\n */\nexport function getJsonOptions(options) {\n var _a;\n const o = Object.assign({}, options);\n (_a = o.ignoreUnknownFields) !== null && _a !== void 0 ? _a : (o.ignoreUnknownFields = true);\n return o;\n}\n/**\n * Create an object that provides convenient access to request and response\n * message serialization for a given method.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createMethodSerializationLookup(method, binaryOptions, jsonOptions, limitOptions) {\n const inputBinary = limitSerialization(createBinarySerialization(method.I, binaryOptions), limitOptions);\n const inputJson = limitSerialization(createJsonSerialization(method.I, jsonOptions), limitOptions);\n const outputBinary = limitSerialization(createBinarySerialization(method.O, binaryOptions), limitOptions);\n const outputJson = limitSerialization(createJsonSerialization(method.O, jsonOptions), limitOptions);\n return {\n getI(useBinaryFormat) {\n return useBinaryFormat ? inputBinary : inputJson;\n },\n getO(useBinaryFormat) {\n return useBinaryFormat ? outputBinary : outputJson;\n },\n };\n}\n/**\n * Returns functions to normalize and serialize the input message\n * of an RPC, and to parse the output message of an RPC.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createClientMethodSerializers(method, useBinaryFormat, jsonOptions, binaryOptions) {\n const input = useBinaryFormat\n ? createBinarySerialization(method.I, binaryOptions)\n : createJsonSerialization(method.I, jsonOptions);\n const output = useBinaryFormat\n ? createBinarySerialization(method.O, binaryOptions)\n : createJsonSerialization(method.O, jsonOptions);\n return { parse: output.parse, serialize: input.serialize };\n}\n/**\n * Apply I/O limits to a Serialization object, returning a new object.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function limitSerialization(serialization, limitOptions) {\n return {\n serialize(data) {\n const bytes = serialization.serialize(data);\n assertWriteMaxBytes(limitOptions.writeMaxBytes, bytes.byteLength);\n return bytes;\n },\n parse(data) {\n assertReadMaxBytes(limitOptions.readMaxBytes, data.byteLength, true);\n return serialization.parse(data);\n },\n };\n}\n/**\n * Creates a Serialization object for serializing the given protobuf message\n * with the protobuf binary format.\n */\nexport function createBinarySerialization(messageType, options) {\n return {\n parse(data) {\n try {\n return messageType.fromBinary(data, options);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`parse binary: ${m}`, Code.InvalidArgument);\n }\n },\n serialize(data) {\n try {\n return data.toBinary(options);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`serialize binary: ${m}`, Code.Internal);\n }\n },\n };\n}\n/**\n * Creates a Serialization object for serializing the given protobuf message\n * with the protobuf canonical JSON encoding.\n *\n * By default, unknown fields are ignored.\n */\nexport function createJsonSerialization(messageType, options) {\n var _a, _b;\n const textEncoder = (_a = options === null || options === void 0 ? void 0 : options.textEncoder) !== null && _a !== void 0 ? _a : new TextEncoder();\n const textDecoder = (_b = options === null || options === void 0 ? void 0 : options.textDecoder) !== null && _b !== void 0 ? _b : new TextDecoder();\n const o = getJsonOptions(options);\n return {\n parse(data) {\n try {\n const json = textDecoder.decode(data);\n return messageType.fromJsonString(json, o);\n }\n catch (e) {\n throw ConnectError.from(e, Code.InvalidArgument);\n }\n },\n serialize(data) {\n try {\n const json = data.toJsonString(o);\n return textEncoder.encode(json);\n }\n catch (e) {\n throw ConnectError.from(e, Code.Internal);\n }\n },\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Regular Expression that matches any valid Connect Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeRegExp = /^application\\/(connect\\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;\n/**\n * Regular Expression that matches a Connect unary Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeUnaryRegExp = /^application\\/(?:json(?:; ?charset=utf-?8)?|proto)$/i;\n/**\n * Regular Expression that matches a Connect streaming Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeStreamRegExp = /^application\\/connect\\+?(?:json(?:; ?charset=utf-?8)?|proto)$/i;\nexport const contentTypeUnaryProto = \"application/proto\";\nexport const contentTypeUnaryJson = \"application/json\";\nexport const contentTypeStreamProto = \"application/connect+proto\";\nexport const contentTypeStreamJson = \"application/connect+json\";\nconst encodingProto = \"proto\";\nconst encodingJson = \"json\";\n/**\n * Parse a Connect Content-Type header.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function parseContentType(contentType) {\n const match = contentType === null || contentType === void 0 ? void 0 : contentType.match(contentTypeRegExp);\n if (!match) {\n return undefined;\n }\n const stream = !!match[1];\n const binary = !!match[3];\n return { stream, binary };\n}\n/**\n * Parse a Connect Get encoding query parameter.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function parseEncodingQuery(encoding) {\n switch (encoding) {\n case encodingProto:\n return { stream: false, binary: true };\n case encodingJson:\n return { stream: false, binary: false };\n default:\n return undefined;\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Message, protoBase64 } from \"@bufbuild/protobuf\";\nimport { Code } from \"../code.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { codeFromString, codeToString } from \"./code-string.js\";\n/**\n * Parse a Connect error from a JSON value.\n * Will return a ConnectError, and throw the provided fallback if parsing failed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorFromJson(jsonValue, metadata, fallback) {\n if (metadata) {\n new Headers(metadata).forEach((value, key) => fallback.metadata.append(key, value));\n }\n if (typeof jsonValue !== \"object\" ||\n jsonValue == null ||\n Array.isArray(jsonValue) ||\n !(\"code\" in jsonValue) ||\n typeof jsonValue.code !== \"string\") {\n throw fallback;\n }\n const code = codeFromString(jsonValue.code);\n if (code === undefined) {\n throw fallback;\n }\n const message = jsonValue.message;\n if (message != null && typeof message !== \"string\") {\n throw fallback;\n }\n const error = new ConnectError(message !== null && message !== void 0 ? message : \"\", code, metadata);\n if (\"details\" in jsonValue && Array.isArray(jsonValue.details)) {\n for (const detail of jsonValue.details) {\n if (detail === null ||\n typeof detail != \"object\" ||\n Array.isArray(detail) ||\n typeof detail.type != \"string\" ||\n typeof detail.value != \"string\" ||\n (\"debug\" in detail && typeof detail.debug != \"object\")) {\n throw fallback;\n }\n try {\n error.details.push({\n type: detail.type,\n value: protoBase64.dec(detail.value),\n debug: detail.debug,\n });\n }\n catch (e) {\n throw fallback;\n }\n }\n }\n return error;\n}\n/**\n * Parse a Connect error from a serialized JSON value.\n * Will return a ConnectError, and throw the provided fallback if parsing failed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorFromJsonBytes(bytes, metadata, fallback) {\n let jsonValue;\n try {\n jsonValue = JSON.parse(new TextDecoder().decode(bytes));\n }\n catch (e) {\n throw fallback;\n }\n return errorFromJson(jsonValue, metadata, fallback);\n}\n/**\n * Serialize the given error to JSON.\n *\n * The JSON serialization options are required to produce the optional\n * human-readable representation in the \"debug\" key if the detail uses\n * google.protobuf.Any. If serialization of the \"debug\" value fails, it\n * is silently disregarded.\n *\n * See https://connectrpc.com/docs/protocol#error-end-stream\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorToJson(error, jsonWriteOptions) {\n const o = {\n code: codeToString(error.code),\n };\n if (error.rawMessage.length > 0) {\n o.message = error.rawMessage;\n }\n if (error.details.length > 0) {\n o.details = error.details\n .map((value) => {\n if (value instanceof Message) {\n const i = {\n type: value.getType().typeName,\n value: value.toBinary(),\n };\n try {\n i.debug = value.toJson(jsonWriteOptions);\n }\n catch (e) {\n // We deliberately ignore errors that may occur when serializing\n // a message to JSON (the message contains an Any).\n // The rationale is that we are only trying to provide optional\n // debug information.\n }\n return i;\n }\n return value;\n })\n .map((_a) => {\n var { value } = _a, rest = __rest(_a, [\"value\"]);\n return (Object.assign(Object.assign({}, rest), { value: protoBase64.enc(value) }));\n });\n }\n return o;\n}\n/**\n * Serialize the given error to JSON. This calls errorToJson(), but stringifies\n * the result, and converts it into a UInt8Array.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorToJsonBytes(error, jsonWriteOptions) {\n const textEncoder = new TextEncoder();\n try {\n const jsonObject = errorToJson(error, jsonWriteOptions);\n const jsonString = JSON.stringify(jsonObject);\n return textEncoder.encode(jsonString);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to serialize Connect Error: ${m}`, Code.Internal);\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { errorFromJson, errorToJson } from \"./error-json.js\";\nimport { appendHeaders } from \"../http-headers.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * endStreamFlag indicates that the data in a EnvelopedMessage\n * is a EndStreamResponse of the Connect protocol.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const endStreamFlag = 0b00000010;\n/**\n * Parse an EndStreamResponse of the Connect protocol.\n * Throws a ConnectError on malformed input.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function endStreamFromJson(data) {\n const parseErr = new ConnectError(\"invalid end stream\", Code.InvalidArgument);\n let jsonValue;\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n jsonValue = JSON.parse(typeof data == \"string\" ? data : new TextDecoder().decode(data));\n }\n catch (e) {\n throw parseErr;\n }\n if (typeof jsonValue != \"object\" ||\n jsonValue == null ||\n Array.isArray(jsonValue)) {\n throw parseErr;\n }\n const metadata = new Headers();\n if (\"metadata\" in jsonValue) {\n if (typeof jsonValue.metadata != \"object\" ||\n jsonValue.metadata == null ||\n Array.isArray(jsonValue.metadata)) {\n throw parseErr;\n }\n for (const [key, values] of Object.entries(jsonValue.metadata)) {\n if (!Array.isArray(values) ||\n values.some((value) => typeof value != \"string\")) {\n throw parseErr;\n }\n for (const value of values) {\n metadata.append(key, value);\n }\n }\n }\n const error = \"error\" in jsonValue\n ? errorFromJson(jsonValue.error, metadata, parseErr)\n : undefined;\n return { metadata, error };\n}\n/**\n * Serialize the given EndStreamResponse to JSON.\n *\n * The JSON serialization options are required to produce the optional\n * human-readable representation of error details if the detail uses\n * google.protobuf.Any.\n *\n * See https://connectrpc.com/docs/protocol#error-end-stream\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function endStreamToJson(metadata, error, jsonWriteOptions) {\n const es = {};\n if (error !== undefined) {\n es.error = errorToJson(error, jsonWriteOptions);\n metadata = appendHeaders(metadata, error.metadata);\n }\n let hasMetadata = false;\n const md = {};\n metadata.forEach((value, key) => {\n hasMetadata = true;\n md[key] = [value];\n });\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (hasMetadata) {\n es.metadata = md;\n }\n return es;\n}\n/**\n * Create a Serialization object that serializes a Connect EndStreamResponse.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createEndStreamSerialization(options) {\n const textEncoder = new TextEncoder();\n return {\n serialize(data) {\n try {\n const jsonObject = endStreamToJson(data.metadata, data.error, options);\n const jsonString = JSON.stringify(jsonObject);\n return textEncoder.encode(jsonString);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to serialize EndStreamResponse: ${m}`, Code.Internal);\n }\n },\n parse(data) {\n try {\n return endStreamFromJson(data);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to parse EndStreamResponse: ${m}`, Code.InvalidArgument);\n }\n },\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * @private Internal code, does not follow semantic versioning.\n */\nexport const headerContentType = \"Content-Type\";\nexport const headerUnaryContentLength = \"Content-Length\";\nexport const headerUnaryEncoding = \"Content-Encoding\";\nexport const headerStreamEncoding = \"Connect-Content-Encoding\";\nexport const headerUnaryAcceptEncoding = \"Accept-Encoding\";\nexport const headerStreamAcceptEncoding = \"Connect-Accept-Encoding\";\nexport const headerTimeout = \"Connect-Timeout-Ms\";\nexport const headerProtocolVersion = \"Connect-Protocol-Version\";\nexport const headerUserAgent = \"User-Agent\";\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"../code.js\";\n/**\n * Determine the Connect error code for the given HTTP status code.\n * See https://connectrpc.com/docs/protocol#error-codes\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeFromHttpStatus(httpStatus) {\n switch (httpStatus) {\n case 400: // Bad Request\n return Code.InvalidArgument;\n case 401: // Unauthorized\n return Code.Unauthenticated;\n case 403: // Forbidden\n return Code.PermissionDenied;\n case 404: // Not Found\n return Code.Unimplemented;\n case 408: // Request Timeout\n return Code.DeadlineExceeded;\n case 409: // Conflict\n return Code.Aborted;\n case 412: // Precondition Failed\n return Code.FailedPrecondition;\n case 413: // Payload Too Large\n return Code.ResourceExhausted;\n case 415: // Unsupported Media Type\n return Code.Internal;\n case 429: // Too Many Requests\n return Code.Unavailable;\n case 431: // Request Header Fields Too Large\n return Code.ResourceExhausted;\n case 502: // Bad Gateway\n return Code.Unavailable;\n case 503: // Service Unavailable\n return Code.Unavailable;\n case 504: // Gateway Timeout\n return Code.Unavailable;\n default:\n return Code.Unknown;\n }\n}\n/**\n * Returns a HTTP status code for the given Connect code.\n * See https://connectrpc.com/docs/protocol#error-codes\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeToHttpStatus(code) {\n switch (code) {\n case Code.Canceled:\n return 408; // Request Timeout\n case Code.Unknown:\n return 500; // Internal Server Error\n case Code.InvalidArgument:\n return 400; // Bad Request\n case Code.DeadlineExceeded:\n return 408; // Request Timeout\n case Code.NotFound:\n return 404; // Not Found\n case Code.AlreadyExists:\n return 409; // Conflict\n case Code.PermissionDenied:\n return 403; // Forbidden\n case Code.ResourceExhausted:\n return 429; // Too Many Requests\n case Code.FailedPrecondition:\n return 412; // Precondition Failed\n case Code.Aborted:\n return 409; // Conflict\n case Code.OutOfRange:\n return 400; // Bad Request\n case Code.Unimplemented:\n return 404; // Not Found\n case Code.Internal:\n return 500; // Internal Server Error\n case Code.Unavailable:\n return 503; // Service Unavailable\n case Code.DataLoss:\n return 500; // Internal Server Error\n case Code.Unauthenticated:\n return 401; // Unauthorized\n default:\n return 500; // same as CodeUnknown\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * In unary RPCs, Connect transports trailing metadata as response header\n * fields, prefixed with \"trailer-\".\n *\n * This function demuxes headers and trailers into two separate Headers\n * objects.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function trailerDemux(header) {\n const h = new Headers(), t = new Headers();\n header.forEach((value, key) => {\n if (key.toLowerCase().startsWith(\"trailer-\")) {\n t.set(key.substring(8), value);\n }\n else {\n h.set(key, value);\n }\n });\n return [h, t];\n}\n/**\n * In unary RPCs, Connect transports trailing metadata as response header\n * fields, prefixed with \"trailer-\".\n *\n * This function muxes a header and a trailer into a single Headers object.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function trailerMux(header, trailer) {\n const h = new Headers(header);\n trailer.forEach((value, key) => {\n h.set(`trailer-${key}`, value);\n });\n return h;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { headerProtocolVersion } from \"./headers.js\";\nimport { paramConnectVersion } from \"./query-params.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * The only know value for the header Connect-Protocol-Version.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const protocolVersion = \"1\";\n/**\n * Requires the Connect-Protocol-Version header to be present with the expected\n * value. Raises a ConnectError with Code.InvalidArgument otherwise.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requireProtocolVersionHeader(requestHeader) {\n const v = requestHeader.get(headerProtocolVersion);\n if (v === null) {\n throw new ConnectError(`missing required header: set ${headerProtocolVersion} to \"${protocolVersion}\"`, Code.InvalidArgument);\n }\n else if (v !== protocolVersion) {\n throw new ConnectError(`${headerProtocolVersion} must be \"${protocolVersion}\": got \"${v}\"`, Code.InvalidArgument);\n }\n}\n/**\n * Requires the connect query parameter to be present with the expected value.\n * Raises a ConnectError with Code.InvalidArgument otherwise.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requireProtocolVersionParam(queryParams) {\n const v = queryParams.get(paramConnectVersion);\n if (v === null) {\n throw new ConnectError(`missing required parameter: set ${paramConnectVersion} to \"v${protocolVersion}\"`, Code.InvalidArgument);\n }\n else if (v !== `v${protocolVersion}`) {\n throw new ConnectError(`${paramConnectVersion} must be \"v${protocolVersion}\": got \"${v}\"`, Code.InvalidArgument);\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { MethodKind } from \"@bufbuild/protobuf\";\nimport { headerContentType, headerStreamAcceptEncoding, headerStreamEncoding, headerUnaryAcceptEncoding, headerUnaryEncoding, headerTimeout, headerProtocolVersion, headerUserAgent, } from \"./headers.js\";\nimport { protocolVersion } from \"./version.js\";\nimport { contentTypeStreamJson, contentTypeStreamProto, contentTypeUnaryJson, contentTypeUnaryProto, } from \"./content-type.js\";\n/**\n * Creates headers for a Connect request.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requestHeader(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent) {\n const result = new Headers(userProvidedHeaders !== null && userProvidedHeaders !== void 0 ? userProvidedHeaders : {});\n if (timeoutMs !== undefined) {\n result.set(headerTimeout, `${timeoutMs}`);\n }\n result.set(headerContentType, methodKind == MethodKind.Unary\n ? useBinaryFormat\n ? contentTypeUnaryProto\n : contentTypeUnaryJson\n : useBinaryFormat\n ? contentTypeStreamProto\n : contentTypeStreamJson);\n result.set(headerProtocolVersion, protocolVersion);\n if (setUserAgent) {\n result.set(headerUserAgent, \"connect-es/1.3.0\");\n }\n return result;\n}\n/**\n * Creates headers for a Connect request with compression.\n *\n * Note that we always set the Content-Encoding header for unary methods.\n * It is up to the caller to decide whether to apply compression - and remove\n * the header if compression is not used, for example because the payload is\n * too small to make compression effective.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requestHeaderWithCompression(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, acceptCompression, sendCompression, setUserAgent) {\n const result = requestHeader(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent);\n if (sendCompression != null) {\n const name = methodKind == MethodKind.Unary\n ? headerUnaryEncoding\n : headerStreamEncoding;\n result.set(name, sendCompression.name);\n }\n if (acceptCompression.length > 0) {\n const name = methodKind == MethodKind.Unary\n ? headerUnaryAcceptEncoding\n : headerStreamAcceptEncoding;\n result.set(name, acceptCompression.map((c) => c.name).join(\",\"));\n }\n return result;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { MethodKind } from \"@bufbuild/protobuf\";\nimport { Code } from \"../code.js\";\nimport { codeFromHttpStatus } from \"./http-status.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { parseContentType } from \"./content-type.js\";\nimport { headerStreamEncoding, headerUnaryEncoding } from \"./headers.js\";\n/**\n * Validates response status and header for the Connect protocol.\n * Throws a ConnectError if the header indicates an error, or if\n * the content type is unexpected, with the following exception:\n * For unary RPCs with an HTTP error status, this returns an error\n * derived from the HTTP status instead of throwing it, giving an\n * implementation a chance to parse a Connect error from the wire.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function validateResponse(methodKind, status, headers) {\n const mimeType = headers.get(\"Content-Type\");\n const parsedType = parseContentType(mimeType);\n if (status !== 200) {\n const errorFromStatus = new ConnectError(`HTTP ${status}`, codeFromHttpStatus(status), headers);\n // If parsedType is defined and it is not binary, then this is a unary JSON response\n if (methodKind == MethodKind.Unary && parsedType && !parsedType.binary) {\n return { isUnaryError: true, unaryError: errorFromStatus };\n }\n throw errorFromStatus;\n }\n return { isUnaryError: false };\n}\n/**\n * Validates response status and header for the Connect protocol.\n * This function is identical to validateResponse(), but also verifies\n * that a given encoding header is acceptable.\n *\n * @private\n */\nexport function validateResponseWithCompression(methodKind, acceptCompression, status, headers) {\n let compression;\n const encoding = headers.get(methodKind == MethodKind.Unary ? headerUnaryEncoding : headerStreamEncoding);\n if (encoding != null && encoding.toLowerCase() !== \"identity\") {\n compression = acceptCompression.find((c) => c.name === encoding);\n if (!compression) {\n throw new ConnectError(`unsupported response encoding \"${encoding}\"`, Code.InvalidArgument, headers);\n }\n }\n return Object.assign({ compression }, validateResponse(methodKind, status, headers));\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message, protoBase64 } from \"@bufbuild/protobuf\";\nimport { headerContentType, headerProtocolVersion, headerUnaryAcceptEncoding, headerUnaryContentLength, headerUnaryEncoding, } from \"./headers.js\";\nimport { protocolVersion } from \"./version.js\";\nconst contentTypePrefix = \"application/\";\nfunction encodeMessageForUrl(message, useBase64) {\n if (useBase64) {\n // TODO(jchadwick-buf): Three regex replaces seems excessive.\n // Can we make protoBase64.enc more flexible?\n return protoBase64\n .enc(message)\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\");\n }\n else {\n return encodeURIComponent(new TextDecoder().decode(message));\n }\n}\n/**\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformConnectPostToGetRequest(request, message, useBase64) {\n let query = `?connect=v${protocolVersion}`;\n const contentType = request.header.get(headerContentType);\n if ((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(contentTypePrefix)) === 0) {\n query +=\n \"&encoding=\" +\n encodeURIComponent(contentType.slice(contentTypePrefix.length));\n }\n const compression = request.header.get(headerUnaryEncoding);\n if (compression !== null && compression !== \"identity\") {\n query += \"&compression=\" + encodeURIComponent(compression);\n // Force base64 for compressed payloads.\n useBase64 = true;\n }\n if (useBase64) {\n query += \"&base64=1\";\n }\n query += \"&message=\" + encodeMessageForUrl(message, useBase64);\n const url = request.url + query;\n // Omit headers that are not used for unary GET requests.\n const header = new Headers(request.header);\n [\n headerProtocolVersion,\n headerContentType,\n headerUnaryContentLength,\n headerUnaryEncoding,\n headerUnaryAcceptEncoding,\n ].forEach((h) => header.delete(h));\n return Object.assign(Object.assign({}, request), { init: Object.assign(Object.assign({}, request.init), { method: \"GET\" }), url,\n header });\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { createDeadlineSignal, createLinkedAbortController, getAbortSignalReason, } from \"./signals.js\";\nimport { normalize, normalizeIterable } from \"./normalize.js\";\n/**\n * Runs a unary method with the given interceptors. Note that this function\n * is only used when implementing a Transport.\n */\nexport function runUnaryCall(opt) {\n const next = applyInterceptors(opt.next, opt.interceptors);\n const [signal, abort, done] = setupSignal(opt);\n const req = Object.assign(Object.assign({}, opt.req), { message: normalize(opt.req.method.I, opt.req.message), signal });\n return next(req).then((res) => {\n done();\n return res;\n }, abort);\n}\n/**\n * Runs a server-streaming method with the given interceptors. Note that this\n * function is only used when implementing a Transport.\n */\nexport function runStreamingCall(opt) {\n const next = applyInterceptors(opt.next, opt.interceptors);\n const [signal, abort, done] = setupSignal(opt);\n const req = Object.assign(Object.assign({}, opt.req), { message: normalizeIterable(opt.req.method.I, opt.req.message), signal });\n let doneCalled = false;\n // Call return on the request iterable to indicate\n // that we will no longer consume it and it should\n // cleanup any allocated resources.\n signal.addEventListener(\"abort\", function () {\n var _a, _b;\n const it = opt.req.message[Symbol.asyncIterator]();\n // If the signal is aborted due to an error, we want to throw\n // the error to the request iterator.\n if (!doneCalled) {\n (_a = it.throw) === null || _a === void 0 ? void 0 : _a.call(it, this.reason).catch(() => {\n // throw returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n }\n (_b = it.return) === null || _b === void 0 ? void 0 : _b.call(it).catch(() => {\n // return returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n });\n return next(req).then((res) => {\n return Object.assign(Object.assign({}, res), { message: {\n [Symbol.asyncIterator]() {\n const it = res.message[Symbol.asyncIterator]();\n return {\n next() {\n return it.next().then((r) => {\n if (r.done == true) {\n doneCalled = true;\n done();\n }\n return r;\n }, abort);\n },\n // We deliberately omit throw/return.\n };\n },\n } });\n }, abort);\n}\n/**\n * Create an AbortSignal for Transport implementations. The signal is available\n * in UnaryRequest and StreamingRequest, and is triggered when the call is\n * aborted (via a timeout or explicit cancellation), errored (e.g. when reading\n * an error from the server from the wire), or finished successfully.\n *\n * Transport implementations can pass the signal to HTTP clients to ensure that\n * there are no unused connections leak.\n *\n * Returns a tuple:\n * [0]: The signal, which is also aborted if the optional deadline is reached.\n * [1]: Function to call if the Transport encountered an error.\n * [2]: Function to call if the Transport finished without an error.\n */\nfunction setupSignal(opt) {\n const { signal, cleanup } = createDeadlineSignal(opt.timeoutMs);\n const controller = createLinkedAbortController(opt.signal, signal);\n return [\n controller.signal,\n function abort(reason) {\n // We peek at the deadline signal because fetch() will throw an error on\n // abort that discards the signal reason.\n const e = ConnectError.from(signal.aborted ? getAbortSignalReason(signal) : reason);\n controller.abort(e);\n cleanup();\n return Promise.reject(e);\n },\n function done() {\n cleanup();\n controller.abort();\n },\n ];\n}\n/**\n * applyInterceptors takes the given UnaryFn or ServerStreamingFn, and wraps\n * it with each of the given interceptors, returning a new UnaryFn or\n * ServerStreamingFn.\n */\nfunction applyInterceptors(next, interceptors) {\n var _a;\n return ((_a = interceptors === null || interceptors === void 0 ? void 0 : interceptors.concat().reverse().reduce(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n (n, i) => i(n), next)) !== null && _a !== void 0 ? _a : next);\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Asserts that the fetch API is available.\n */\nexport function assertFetchApi() {\n try {\n new Headers();\n }\n catch (_) {\n throw new Error(\"connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.\");\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { Message, MethodIdempotency, MethodKind } from \"@bufbuild/protobuf\";\nimport { appendHeaders, createContextValues } from \"@connectrpc/connect\";\nimport { createClientMethodSerializers, createEnvelopeReadableStream, createMethodUrl, getJsonOptions, encodeEnvelope, runStreamingCall, runUnaryCall, } from \"@connectrpc/connect/protocol\";\nimport { endStreamFlag, endStreamFromJson, errorFromJson, requestHeader, trailerDemux, transformConnectPostToGetRequest, validateResponse, } from \"@connectrpc/connect/protocol-connect\";\nimport { assertFetchApi } from \"./assert-fetch-api.js\";\n/**\n * Create a Transport for the Connect protocol, which makes unary and\n * server-streaming methods available to web browsers. It uses the fetch\n * API to make HTTP requests.\n */\nexport function createConnectTransport(options) {\n var _a;\n assertFetchApi();\n const useBinaryFormat = (_a = options.useBinaryFormat) !== null && _a !== void 0 ? _a : false;\n return {\n async unary(service, method, signal, timeoutMs, header, message, contextValues) {\n var _a;\n const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);\n timeoutMs =\n timeoutMs === undefined\n ? options.defaultTimeoutMs\n : timeoutMs <= 0\n ? undefined\n : timeoutMs;\n return await runUnaryCall({\n interceptors: options.interceptors,\n signal,\n timeoutMs,\n req: {\n stream: false,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: \"POST\",\n credentials: (_a = options.credentials) !== null && _a !== void 0 ? _a : \"same-origin\",\n redirect: \"error\",\n mode: \"cors\",\n },\n header: requestHeader(method.kind, useBinaryFormat, timeoutMs, header, false),\n contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),\n message,\n },\n next: async (req) => {\n var _a;\n const useGet = options.useHttpGet === true &&\n method.idempotency === MethodIdempotency.NoSideEffects;\n let body = null;\n if (useGet) {\n req = transformConnectPostToGetRequest(req, serialize(req.message), useBinaryFormat);\n }\n else {\n body = serialize(req.message);\n }\n const fetch = (_a = options.fetch) !== null && _a !== void 0 ? _a : globalThis.fetch;\n const response = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body }));\n const { isUnaryError, unaryError } = validateResponse(method.kind, response.status, response.headers);\n if (isUnaryError) {\n throw errorFromJson((await response.json()), appendHeaders(...trailerDemux(response.headers)), unaryError);\n }\n const [demuxedHeader, demuxedTrailer] = trailerDemux(response.headers);\n return {\n stream: false,\n service,\n method,\n header: demuxedHeader,\n message: useBinaryFormat\n ? parse(new Uint8Array(await response.arrayBuffer()))\n : method.O.fromJson((await response.json()), getJsonOptions(options.jsonOptions)),\n trailer: demuxedTrailer,\n };\n },\n });\n },\n async stream(service, method, signal, timeoutMs, header, input, contextValues) {\n var _a;\n const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);\n function parseResponseBody(body, trailerTarget, header) {\n return __asyncGenerator(this, arguments, function* parseResponseBody_1() {\n const reader = createEnvelopeReadableStream(body).getReader();\n let endStreamReceived = false;\n for (;;) {\n const result = yield __await(reader.read());\n if (result.done) {\n break;\n }\n const { flags, data } = result.value;\n if ((flags & endStreamFlag) === endStreamFlag) {\n endStreamReceived = true;\n const endStream = endStreamFromJson(data);\n if (endStream.error) {\n const error = endStream.error;\n header.forEach((value, key) => {\n error.metadata.append(key, value);\n });\n throw error;\n }\n endStream.metadata.forEach((value, key) => trailerTarget.set(key, value));\n continue;\n }\n yield yield __await(parse(data));\n }\n if (!endStreamReceived) {\n throw \"missing EndStreamResponse\";\n }\n });\n }\n async function createRequestBody(input) {\n if (method.kind != MethodKind.ServerStreaming) {\n throw \"The fetch API does not support streaming request bodies\";\n }\n const r = await input[Symbol.asyncIterator]().next();\n if (r.done == true) {\n throw \"missing request message\";\n }\n return encodeEnvelope(0, serialize(r.value));\n }\n timeoutMs =\n timeoutMs === undefined\n ? options.defaultTimeoutMs\n : timeoutMs <= 0\n ? undefined\n : timeoutMs;\n return await runStreamingCall({\n interceptors: options.interceptors,\n timeoutMs,\n signal,\n req: {\n stream: true,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: \"POST\",\n credentials: (_a = options.credentials) !== null && _a !== void 0 ? _a : \"same-origin\",\n redirect: \"error\",\n mode: \"cors\",\n },\n header: requestHeader(method.kind, useBinaryFormat, timeoutMs, header, false),\n contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),\n message: input,\n },\n next: async (req) => {\n var _a;\n const fetch = (_a = options.fetch) !== null && _a !== void 0 ? _a : globalThis.fetch;\n const fRes = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body: await createRequestBody(req.message) }));\n validateResponse(method.kind, fRes.status, fRes.headers);\n if (fRes.body === null) {\n throw \"missing response body\";\n }\n const trailer = new Headers();\n const res = Object.assign(Object.assign({}, req), { header: fRes.headers, trailer, message: parseResponseBody(fRes.body, trailer, fRes.headers) });\n return res;\n },\n });\n },\n };\n}\n", "import { ProtoflowService } from \"@/rpc/protoflow_connect\";\nimport { ContentService } from \"@/rpc/content/content_connect\";\nimport { UserService } from \"@/rpc/user/user_connect\";\nimport {ChatService} from \"@/rpc/chat/chat_connect\";\nimport {EventService} from \"@/rpc/event/event_connect\";\nimport {createConnectTransport} from \"@connectrpc/connect-web\";\nimport {createPromiseClient} from \"@connectrpc/connect\";\n\nexport const baseURL = process.env.BASE_URL;\n\nexport const transport = createConnectTransport({\n baseUrl: `${baseURL}/api` || 'error',\n // credentials: \"include\",\n});\n\nexport const projectService = createPromiseClient(ProtoflowService, transport);\nexport const contentService = createPromiseClient(ContentService, transport);\nexport const userService = createPromiseClient(UserService, transport);\nexport const chatService = createPromiseClient(ChatService, transport);\nexport const eventService = createPromiseClient(EventService, transport);", "import {Content, Data, Post,} from \"@/rpc/content/content_pb\";\n\nconst ITEMS_PER_PAGE = 100; // Adjust as required\n\nexport function siteContent(): Content {\n return new Content({\n tags: [],\n type: {\n case: 'site',\n value: {\n sections: [],\n }\n }\n });\n}\n\nexport function postContent(text: string): Content {\n return new Content({\n tags: [],\n type: {\n case: 'post',\n value: new Post({\n content: text,\n })\n }\n });\n}\n\nexport function textContent(text: string, tags: string[]): Content {\n return new Content({\n tags: tags,\n type: {\n case: 'data',\n value: new Data({\n type: {\n case: 'text',\n value: {\n data: text,\n }\n }\n })\n }\n })\n}\n\nexport function uuidv4(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 | 0,\n v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n}\n\nexport function urlContent(url: string, tags: string[]): Content {\n return new Content({\n id: uuidv4(),\n tags: tags,\n type: {\n case: 'data',\n value: new Data({\n type: {\n case: 'url',\n value: {\n url,\n }\n }\n })\n }\n })\n}\n\nexport function getHistoryPage(page: number, callback: (results: chrome.history.HistoryItem[]) => void): void {\n if (!chrome.history) {\n console.error(\"Chrome History API is not available\");\n return;\n }\n\n let endTime = Date.now(); // Default for first page\n let startTime = endTime - (ITEMS_PER_PAGE * 24 * 60 * 60 * 1000); // A rough estimate\n\n // If it's not the first page, adjust the endTime and startTime based on previous results\n if (page > 1) {\n chrome.history.search({\n text: '',\n startTime: 0,\n endTime: Date.now(),\n maxResults: (page - 1) * ITEMS_PER_PAGE\n }, (previousResults) => {\n const oldestItem = previousResults[previousResults.length - 1];\n if (!oldestItem.lastVisitTime) {\n return;\n }\n endTime = oldestItem.lastVisitTime;\n startTime = endTime - (ITEMS_PER_PAGE * 24 * 60 * 60 * 1000); // Adjust based on your needs\n\n fetchHistory(startTime, endTime, callback);\n });\n } else {\n fetchHistory(startTime, endTime, callback);\n }\n}\n\nfunction fetchHistory(startTime: number, endTime: number, callback: (results: chrome.history.HistoryItem[]) => void): void {\n chrome.history.search({\n text: '',\n startTime: startTime,\n endTime: endTime,\n maxResults: ITEMS_PER_PAGE\n }, (results) => {\n callback(results);\n });\n}\n", "let keyCount = 0;\nfunction atom(read, write) {\n const key = `atom${++keyCount}`;\n const config = {\n toString: () => key\n };\n if (typeof read === \"function\") {\n config.read = read;\n } else {\n config.init = read;\n config.read = function(get) {\n return get(this);\n };\n config.write = function(get, set, arg) {\n return set(\n this,\n typeof arg === \"function\" ? arg(get(this)) : arg\n );\n };\n }\n if (write) {\n config.write = write;\n }\n return config;\n}\n\nconst hasInitialValue = (atom) => \"init\" in atom;\nconst isActuallyWritableAtom = (atom) => !!atom.write;\nconst cancelPromiseMap = /* @__PURE__ */ new WeakMap();\nconst registerCancelPromise = (promise, cancel) => {\n cancelPromiseMap.set(promise, cancel);\n promise.catch(() => {\n }).finally(() => cancelPromiseMap.delete(promise));\n};\nconst cancelPromise = (promise, next) => {\n const cancel = cancelPromiseMap.get(promise);\n if (cancel) {\n cancelPromiseMap.delete(promise);\n cancel(next);\n }\n};\nconst resolvePromise = (promise, value) => {\n promise.status = \"fulfilled\";\n promise.value = value;\n};\nconst rejectPromise = (promise, e) => {\n promise.status = \"rejected\";\n promise.reason = e;\n};\nconst isPromiseLike = (x) => typeof (x == null ? void 0 : x.then) === \"function\";\nconst isEqualAtomValue = (a, b) => !!a && \"v\" in a && \"v\" in b && Object.is(a.v, b.v);\nconst isEqualAtomError = (a, b) => !!a && \"e\" in a && \"e\" in b && Object.is(a.e, b.e);\nconst hasPromiseAtomValue = (a) => !!a && \"v\" in a && a.v instanceof Promise;\nconst isEqualPromiseAtomValue = (a, b) => \"v\" in a && \"v\" in b && a.v.orig && a.v.orig === b.v.orig;\nconst returnAtomValue = (atomState) => {\n if (\"e\" in atomState) {\n throw atomState.e;\n }\n return atomState.v;\n};\nconst createStore = () => {\n const atomStateMap = /* @__PURE__ */ new WeakMap();\n const mountedMap = /* @__PURE__ */ new WeakMap();\n const pendingMap = /* @__PURE__ */ new Map();\n let storeListenersRev2;\n let mountedAtoms;\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n storeListenersRev2 = /* @__PURE__ */ new Set();\n mountedAtoms = /* @__PURE__ */ new Set();\n }\n const getAtomState = (atom) => atomStateMap.get(atom);\n const setAtomState = (atom, atomState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n Object.freeze(atomState);\n }\n const prevAtomState = atomStateMap.get(atom);\n atomStateMap.set(atom, atomState);\n if (!pendingMap.has(atom)) {\n pendingMap.set(atom, prevAtomState);\n }\n if (hasPromiseAtomValue(prevAtomState)) {\n const next = \"v\" in atomState ? atomState.v instanceof Promise ? atomState.v : Promise.resolve(atomState.v) : Promise.reject(atomState.e);\n if (prevAtomState.v !== next) {\n cancelPromise(prevAtomState.v, next);\n }\n }\n };\n const updateDependencies = (atom, nextAtomState, nextDependencies) => {\n const dependencies = /* @__PURE__ */ new Map();\n let changed = false;\n nextDependencies.forEach((aState, a) => {\n if (!aState && a === atom) {\n aState = nextAtomState;\n }\n if (aState) {\n dependencies.set(a, aState);\n if (nextAtomState.d.get(a) !== aState) {\n changed = true;\n }\n } else if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\"[Bug] atom state not found\");\n }\n });\n if (changed || nextAtomState.d.size !== dependencies.size) {\n nextAtomState.d = dependencies;\n }\n };\n const setAtomValue = (atom, value, nextDependencies) => {\n const prevAtomState = getAtomState(atom);\n const nextAtomState = {\n d: (prevAtomState == null ? void 0 : prevAtomState.d) || /* @__PURE__ */ new Map(),\n v: value\n };\n if (nextDependencies) {\n updateDependencies(atom, nextAtomState, nextDependencies);\n }\n if (isEqualAtomValue(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n }\n if (hasPromiseAtomValue(prevAtomState) && hasPromiseAtomValue(nextAtomState) && isEqualPromiseAtomValue(prevAtomState, nextAtomState)) {\n if (prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n } else {\n nextAtomState.v = prevAtomState.v;\n }\n }\n setAtomState(atom, nextAtomState);\n return nextAtomState;\n };\n const setAtomValueOrPromise = (atom, valueOrPromise, nextDependencies, abortPromise) => {\n if (isPromiseLike(valueOrPromise)) {\n let continuePromise;\n const updatePromiseDependencies = () => {\n const prevAtomState = getAtomState(atom);\n if (!hasPromiseAtomValue(prevAtomState) || prevAtomState.v !== promise) {\n return;\n }\n const nextAtomState = setAtomValue(\n atom,\n promise,\n nextDependencies\n );\n if (mountedMap.has(atom) && prevAtomState.d !== nextAtomState.d) {\n mountDependencies(atom, nextAtomState, prevAtomState.d);\n }\n };\n const promise = new Promise((resolve, reject) => {\n let settled = false;\n valueOrPromise.then(\n (v) => {\n if (!settled) {\n settled = true;\n resolvePromise(promise, v);\n resolve(v);\n updatePromiseDependencies();\n }\n },\n (e) => {\n if (!settled) {\n settled = true;\n rejectPromise(promise, e);\n reject(e);\n updatePromiseDependencies();\n }\n }\n );\n continuePromise = (next) => {\n if (!settled) {\n settled = true;\n next.then(\n (v) => resolvePromise(promise, v),\n (e) => rejectPromise(promise, e)\n );\n resolve(next);\n }\n };\n });\n promise.orig = valueOrPromise;\n promise.status = \"pending\";\n registerCancelPromise(promise, (next) => {\n if (next) {\n continuePromise(next);\n }\n abortPromise == null ? void 0 : abortPromise();\n });\n return setAtomValue(atom, promise, nextDependencies);\n }\n return setAtomValue(atom, valueOrPromise, nextDependencies);\n };\n const setAtomError = (atom, error, nextDependencies) => {\n const prevAtomState = getAtomState(atom);\n const nextAtomState = {\n d: (prevAtomState == null ? void 0 : prevAtomState.d) || /* @__PURE__ */ new Map(),\n e: error\n };\n if (nextDependencies) {\n updateDependencies(atom, nextAtomState, nextDependencies);\n }\n if (isEqualAtomError(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n }\n setAtomState(atom, nextAtomState);\n return nextAtomState;\n };\n const readAtomState = (atom, force) => {\n const atomState = getAtomState(atom);\n if (!force && atomState) {\n if (mountedMap.has(atom)) {\n return atomState;\n }\n if (Array.from(atomState.d).every(([a, s]) => {\n if (a === atom) {\n return true;\n }\n const aState = readAtomState(a);\n return aState === s || isEqualAtomValue(aState, s);\n })) {\n return atomState;\n }\n }\n const nextDependencies = /* @__PURE__ */ new Map();\n let isSync = true;\n const getter = (a) => {\n if (a === atom) {\n const aState2 = getAtomState(a);\n if (aState2) {\n nextDependencies.set(a, aState2);\n return returnAtomValue(aState2);\n }\n if (hasInitialValue(a)) {\n nextDependencies.set(a, void 0);\n return a.init;\n }\n throw new Error(\"no atom init\");\n }\n const aState = readAtomState(a);\n nextDependencies.set(a, aState);\n return returnAtomValue(aState);\n };\n let controller;\n let setSelf;\n const options = {\n get signal() {\n if (!controller) {\n controller = new AbortController();\n }\n return controller.signal;\n },\n get setSelf() {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !isActuallyWritableAtom(atom)) {\n console.warn(\"setSelf function cannot be used with read-only atom\");\n }\n if (!setSelf && isActuallyWritableAtom(atom)) {\n setSelf = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && isSync) {\n console.warn(\"setSelf function cannot be called in sync\");\n }\n if (!isSync) {\n return writeAtom(atom, ...args);\n }\n };\n }\n return setSelf;\n }\n };\n try {\n const valueOrPromise = atom.read(getter, options);\n return setAtomValueOrPromise(\n atom,\n valueOrPromise,\n nextDependencies,\n () => controller == null ? void 0 : controller.abort()\n );\n } catch (error) {\n return setAtomError(atom, error, nextDependencies);\n } finally {\n isSync = false;\n }\n };\n const readAtom = (atom) => returnAtomValue(readAtomState(atom));\n const addAtom = (atom) => {\n let mounted = mountedMap.get(atom);\n if (!mounted) {\n mounted = mountAtom(atom);\n }\n return mounted;\n };\n const canUnmountAtom = (atom, mounted) => !mounted.l.size && (!mounted.t.size || mounted.t.size === 1 && mounted.t.has(atom));\n const delAtom = (atom) => {\n const mounted = mountedMap.get(atom);\n if (mounted && canUnmountAtom(atom, mounted)) {\n unmountAtom(atom);\n }\n };\n const recomputeDependents = (atom) => {\n const dependencyMap = /* @__PURE__ */ new Map();\n const dirtyMap = /* @__PURE__ */ new WeakMap();\n const getDependents = (a) => {\n var _a;\n const dependents = new Set((_a = mountedMap.get(a)) == null ? void 0 : _a.t);\n pendingMap.forEach((_, pendingAtom) => {\n var _a2;\n if ((_a2 = getAtomState(pendingAtom)) == null ? void 0 : _a2.d.has(a)) {\n dependents.add(pendingAtom);\n }\n });\n return dependents;\n };\n const loop1 = (a) => {\n getDependents(a).forEach((dependent) => {\n if (dependent !== a) {\n dependencyMap.set(\n dependent,\n (dependencyMap.get(dependent) || /* @__PURE__ */ new Set()).add(a)\n );\n dirtyMap.set(dependent, (dirtyMap.get(dependent) || 0) + 1);\n loop1(dependent);\n }\n });\n };\n loop1(atom);\n const loop2 = (a) => {\n getDependents(a).forEach((dependent) => {\n var _a;\n if (dependent !== a) {\n let dirtyCount = dirtyMap.get(dependent);\n if (dirtyCount) {\n dirtyMap.set(dependent, --dirtyCount);\n }\n if (!dirtyCount) {\n let isChanged = !!((_a = dependencyMap.get(dependent)) == null ? void 0 : _a.size);\n if (isChanged) {\n const prevAtomState = getAtomState(dependent);\n const nextAtomState = readAtomState(dependent, true);\n isChanged = !isEqualAtomValue(prevAtomState, nextAtomState);\n }\n if (!isChanged) {\n dependencyMap.forEach((s) => s.delete(dependent));\n }\n }\n loop2(dependent);\n }\n });\n };\n loop2(atom);\n };\n const writeAtomState = (atom, ...args) => {\n let isSync = true;\n const getter = (a) => returnAtomValue(readAtomState(a));\n const setter = (a, ...args2) => {\n let r;\n if (a === atom) {\n if (!hasInitialValue(a)) {\n throw new Error(\"atom not writable\");\n }\n const prevAtomState = getAtomState(a);\n const nextAtomState = setAtomValueOrPromise(a, args2[0]);\n if (!isEqualAtomValue(prevAtomState, nextAtomState)) {\n recomputeDependents(a);\n }\n } else {\n r = writeAtomState(a, ...args2);\n }\n if (!isSync) {\n const flushed = flushPending();\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n storeListenersRev2.forEach(\n (l) => l({ type: \"async-write\", flushed })\n );\n }\n }\n return r;\n };\n const result = atom.write(getter, setter, ...args);\n isSync = false;\n return result;\n };\n const writeAtom = (atom, ...args) => {\n const result = writeAtomState(atom, ...args);\n const flushed = flushPending();\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n storeListenersRev2.forEach(\n (l) => l({ type: \"write\", flushed })\n );\n }\n return result;\n };\n const mountAtom = (atom, initialDependent, onMountQueue) => {\n var _a;\n const queue = onMountQueue || [];\n (_a = getAtomState(atom)) == null ? void 0 : _a.d.forEach((_, a) => {\n const aMounted = mountedMap.get(a);\n if (aMounted) {\n aMounted.t.add(atom);\n } else {\n if (a !== atom) {\n mountAtom(a, atom, queue);\n }\n }\n });\n readAtomState(atom);\n const mounted = {\n t: new Set(initialDependent && [initialDependent]),\n l: /* @__PURE__ */ new Set()\n };\n mountedMap.set(atom, mounted);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n mountedAtoms.add(atom);\n }\n if (isActuallyWritableAtom(atom) && atom.onMount) {\n const { onMount } = atom;\n queue.push(() => {\n const onUnmount = onMount((...args) => writeAtom(atom, ...args));\n if (onUnmount) {\n mounted.u = onUnmount;\n }\n });\n }\n if (!onMountQueue) {\n queue.forEach((f) => f());\n }\n return mounted;\n };\n const unmountAtom = (atom) => {\n var _a;\n const onUnmount = (_a = mountedMap.get(atom)) == null ? void 0 : _a.u;\n if (onUnmount) {\n onUnmount();\n }\n mountedMap.delete(atom);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n mountedAtoms.delete(atom);\n }\n const atomState = getAtomState(atom);\n if (atomState) {\n if (hasPromiseAtomValue(atomState)) {\n cancelPromise(atomState.v);\n }\n atomState.d.forEach((_, a) => {\n if (a !== atom) {\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n }\n });\n } else if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\"[Bug] could not find atom state to unmount\", atom);\n }\n };\n const mountDependencies = (atom, atomState, prevDependencies) => {\n const depSet = new Set(atomState.d.keys());\n prevDependencies == null ? void 0 : prevDependencies.forEach((_, a) => {\n if (depSet.has(a)) {\n depSet.delete(a);\n return;\n }\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n });\n depSet.forEach((a) => {\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.add(atom);\n } else if (mountedMap.has(atom)) {\n mountAtom(a, atom);\n }\n });\n };\n const flushPending = () => {\n let flushed;\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n flushed = /* @__PURE__ */ new Set();\n }\n while (pendingMap.size) {\n const pending = Array.from(pendingMap);\n pendingMap.clear();\n pending.forEach(([atom, prevAtomState]) => {\n const atomState = getAtomState(atom);\n if (atomState) {\n const mounted = mountedMap.get(atom);\n if (mounted && atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {\n mountDependencies(atom, atomState, prevAtomState == null ? void 0 : prevAtomState.d);\n }\n if (mounted && !// TODO This seems pretty hacky. Hope to fix it.\n // Maybe we could `mountDependencies` in `setAtomState`?\n (!hasPromiseAtomValue(prevAtomState) && (isEqualAtomValue(prevAtomState, atomState) || isEqualAtomError(prevAtomState, atomState)))) {\n mounted.l.forEach((listener) => listener());\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n flushed.add(atom);\n }\n }\n } else if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\"[Bug] no atom state to flush\");\n }\n });\n }\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n return flushed;\n }\n };\n const subscribeAtom = (atom, listener) => {\n const mounted = addAtom(atom);\n const flushed = flushPending();\n const listeners = mounted.l;\n listeners.add(listener);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n storeListenersRev2.forEach(\n (l) => l({ type: \"sub\", flushed })\n );\n }\n return () => {\n listeners.delete(listener);\n delAtom(atom);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n storeListenersRev2.forEach((l) => l({ type: \"unsub\" }));\n }\n };\n };\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n return {\n get: readAtom,\n set: writeAtom,\n sub: subscribeAtom,\n // store dev methods (these are tentative and subject to change without notice)\n dev_subscribe_store: (l, rev) => {\n if (rev !== 2) {\n throw new Error(\"The current StoreListener revision is 2.\");\n }\n storeListenersRev2.add(l);\n return () => {\n storeListenersRev2.delete(l);\n };\n },\n dev_get_mounted_atoms: () => mountedAtoms.values(),\n dev_get_atom_state: (a) => atomStateMap.get(a),\n dev_get_mounted: (a) => mountedMap.get(a),\n dev_restore_atoms: (values) => {\n for (const [atom, valueOrPromise] of values) {\n if (hasInitialValue(atom)) {\n setAtomValueOrPromise(atom, valueOrPromise);\n recomputeDependents(atom);\n }\n }\n const flushed = flushPending();\n storeListenersRev2.forEach(\n (l) => l({ type: \"restore\", flushed })\n );\n }\n };\n }\n return {\n get: readAtom,\n set: writeAtom,\n sub: subscribeAtom\n };\n};\nlet defaultStore;\nif ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n if (typeof globalThis.__NUMBER_OF_JOTAI_INSTANCES__ === \"number\") {\n ++globalThis.__NUMBER_OF_JOTAI_INSTANCES__;\n } else {\n globalThis.__NUMBER_OF_JOTAI_INSTANCES__ = 1;\n }\n}\nconst getDefaultStore = () => {\n if (!defaultStore) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && globalThis.__NUMBER_OF_JOTAI_INSTANCES__ !== 1) {\n console.warn(\n \"Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044\"\n );\n }\n defaultStore = createStore();\n }\n return defaultStore;\n};\n\nexport { atom, createStore, getDefaultStore };\n", "'use client';\nimport ReactExports, { createContext, useContext, useRef, createElement, useReducer, useEffect, useDebugValue, useCallback } from 'react';\nimport { getDefaultStore, createStore } from 'jotai/vanilla';\n\nconst StoreContext = createContext(void 0);\nconst useStore = (options) => {\n const store = useContext(StoreContext);\n return (options == null ? void 0 : options.store) || store || getDefaultStore();\n};\nconst Provider = ({\n children,\n store\n}) => {\n const storeRef = useRef();\n if (!store && !storeRef.current) {\n storeRef.current = createStore();\n }\n return createElement(\n StoreContext.Provider,\n {\n value: store || storeRef.current\n },\n children\n );\n};\n\nconst isPromiseLike = (x) => typeof (x == null ? void 0 : x.then) === \"function\";\nconst use = ReactExports.use || ((promise) => {\n if (promise.status === \"pending\") {\n throw promise;\n } else if (promise.status === \"fulfilled\") {\n return promise.value;\n } else if (promise.status === \"rejected\") {\n throw promise.reason;\n } else {\n promise.status = \"pending\";\n promise.then(\n (v) => {\n promise.status = \"fulfilled\";\n promise.value = v;\n },\n (e) => {\n promise.status = \"rejected\";\n promise.reason = e;\n }\n );\n throw promise;\n }\n});\nfunction useAtomValue(atom, options) {\n const store = useStore(options);\n const [[valueFromReducer, storeFromReducer, atomFromReducer], rerender] = useReducer(\n (prev) => {\n const nextValue = store.get(atom);\n if (Object.is(prev[0], nextValue) && prev[1] === store && prev[2] === atom) {\n return prev;\n }\n return [nextValue, store, atom];\n },\n void 0,\n () => [store.get(atom), store, atom]\n );\n let value = valueFromReducer;\n if (storeFromReducer !== store || atomFromReducer !== atom) {\n rerender();\n value = store.get(atom);\n }\n const delay = options == null ? void 0 : options.delay;\n useEffect(() => {\n const unsub = store.sub(atom, () => {\n if (typeof delay === \"number\") {\n setTimeout(rerender, delay);\n return;\n }\n rerender();\n });\n rerender();\n return unsub;\n }, [store, atom, delay]);\n useDebugValue(value);\n return isPromiseLike(value) ? use(value) : value;\n}\n\nfunction useSetAtom(atom, options) {\n const store = useStore(options);\n const setAtom = useCallback(\n (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !(\"write\" in atom)) {\n throw new Error(\"not writable atom\");\n }\n return store.set(atom, ...args);\n },\n [store, atom]\n );\n return setAtom;\n}\n\nfunction useAtom(atom, options) {\n return [\n useAtomValue(atom, options),\n // We do wrong type assertion here, which results in throwing an error.\n useSetAtom(atom, options)\n ];\n}\n\nexport { Provider, useAtom, useAtomValue, useSetAtom, useStore };\n"], + "sourcesContent": ["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n", "/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // \u201Csources\u201D entry. This value is prepended to the individual\n // entries in the \u201Csource\u201D field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // \u201CsourceRoot\u201D, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n throw new Error(\n 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n );\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n", "/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\nvar splitPath = function(filename) {\n return splitPathRe.exec(filename).slice(1);\n};\n\n// path.resolve([from ...], to)\n// posix version\nexport function resolve() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : '/';\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexport function normalize(path) {\n var isPathAbsolute = isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isPathAbsolute).join('/');\n\n if (!path && !isPathAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexport function isAbsolute(path) {\n return path.charAt(0) === '/';\n}\n\n// posix version\nexport function join() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n}\n\n\n// path.relative(from, to)\n// posix version\nexport function relative(from, to) {\n from = resolve(from).substr(1);\n to = resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n}\n\nexport var sep = '/';\nexport var delimiter = ':';\n\nexport function dirname(path) {\n var result = splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n}\n\nexport function basename(path, ext) {\n var f = splitPath(path)[2];\n // TODO: make this comparison case-insensitive on windows?\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n}\n\n\nexport function extname(path) {\n return splitPath(path)[3];\n}\nexport default {\n extname: extname,\n basename: basename,\n dirname: dirname,\n sep: sep,\n delimiter: delimiter,\n relative: relative,\n join: join,\n isAbsolute: isAbsolute,\n normalize: normalize,\n resolve: resolve\n};\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b' ?\n function (str, start, len) { return str.substr(start, len) } :\n function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n", "\nconst polyfill = require('path')\n\nif (polyfill && polyfill.default) {\n module.exports = polyfill.default\n for (let k in polyfill) {\n module.exports[k] = polyfill[k]\n }\n} else if (polyfill) {\n module.exports = polyfill\n}\n\n\n", "export default {};\n", "\nconst polyfill = require('fs')\n\nif (polyfill && polyfill.default) {\n module.exports = polyfill.default\n for (let k in polyfill) {\n module.exports[k] = polyfill[k]\n }\n} else if (polyfill) {\n module.exports = polyfill\n}\n\n\n", "/* eslint-disable node/no-deprecated-api */\n\nvar toString = Object.prototype.toString\n\nvar isModern = (\n typeof Buffer !== 'undefined' &&\n typeof Buffer.alloc === 'function' &&\n typeof Buffer.allocUnsafe === 'function' &&\n typeof Buffer.from === 'function'\n)\n\nfunction isArrayBuffer (input) {\n return toString.call(input).slice(8, -1) === 'ArrayBuffer'\n}\n\nfunction fromArrayBuffer (obj, byteOffset, length) {\n byteOffset >>>= 0\n\n var maxLength = obj.byteLength - byteOffset\n\n if (maxLength < 0) {\n throw new RangeError(\"'offset' is out of bounds\")\n }\n\n if (length === undefined) {\n length = maxLength\n } else {\n length >>>= 0\n\n if (length > maxLength) {\n throw new RangeError(\"'length' is out of bounds\")\n }\n }\n\n return isModern\n ? Buffer.from(obj.slice(byteOffset, byteOffset + length))\n : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length)))\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n return isModern\n ? Buffer.from(string, encoding)\n : new Buffer(string, encoding)\n}\n\nfunction bufferFrom (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (isArrayBuffer(value)) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n return isModern\n ? Buffer.from(value)\n : new Buffer(value)\n}\n\nmodule.exports = bufferFrom\n", "var SourceMapConsumer = require('source-map').SourceMapConsumer;\nvar path = require('path');\n\nvar fs;\ntry {\n fs = require('fs');\n if (!fs.existsSync || !fs.readFileSync) {\n // fs doesn't have all methods we need\n fs = null;\n }\n} catch (err) {\n /* nop */\n}\n\nvar bufferFrom = require('buffer-from');\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param {NodeModule} mod\n * @param {string} request\n */\nfunction dynamicRequire(mod, request) {\n return mod.require(request);\n}\n\n// Only install once if called multiple times\nvar errorFormatterInstalled = false;\nvar uncaughtShimInstalled = false;\n\n// If true, the caches are reset before a stack trace formatting operation\nvar emptyCacheBetweenOperations = false;\n\n// Supports {browser, node, auto}\nvar environment = \"auto\";\n\n// Maps a file path to a string containing the file contents\nvar fileContentsCache = {};\n\n// Maps a file path to a source map for that file\nvar sourceMapCache = {};\n\n// Regex for detecting source maps\nvar reSourceMap = /^data:application\\/json[^,]+base64,/;\n\n// Priority list of retrieve handlers\nvar retrieveFileHandlers = [];\nvar retrieveMapHandlers = [];\n\nfunction isInBrowser() {\n if (environment === \"browser\")\n return true;\n if (environment === \"node\")\n return false;\n return ((typeof window !== 'undefined') && (typeof XMLHttpRequest === 'function') && !(window.require && window.module && window.process && window.process.type === \"renderer\"));\n}\n\nfunction hasGlobalProcessEventEmitter() {\n return ((typeof process === 'object') && (process !== null) && (typeof process.on === 'function'));\n}\n\nfunction globalProcessVersion() {\n if ((typeof process === 'object') && (process !== null)) {\n return process.version;\n } else {\n return '';\n }\n}\n\nfunction globalProcessStderr() {\n if ((typeof process === 'object') && (process !== null)) {\n return process.stderr;\n }\n}\n\nfunction globalProcessExit(code) {\n if ((typeof process === 'object') && (process !== null) && (typeof process.exit === 'function')) {\n return process.exit(code);\n }\n}\n\nfunction handlerExec(list) {\n return function(arg) {\n for (var i = 0; i < list.length; i++) {\n var ret = list[i](arg);\n if (ret) {\n return ret;\n }\n }\n return null;\n };\n}\n\nvar retrieveFile = handlerExec(retrieveFileHandlers);\n\nretrieveFileHandlers.push(function(path) {\n // Trim the path to make sure there is no extra whitespace.\n path = path.trim();\n if (/^file:/.test(path)) {\n // existsSync/readFileSync can't handle file protocol, but once stripped, it works\n path = path.replace(/file:\\/\\/\\/(\\w:)?/, function(protocol, drive) {\n return drive ?\n '' : // file:///C:/dir/file -> C:/dir/file\n '/'; // file:///root-dir/file -> /root-dir/file\n });\n }\n if (path in fileContentsCache) {\n return fileContentsCache[path];\n }\n\n var contents = '';\n try {\n if (!fs) {\n // Use SJAX if we are in the browser\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path, /** async */ false);\n xhr.send(null);\n if (xhr.readyState === 4 && xhr.status === 200) {\n contents = xhr.responseText;\n }\n } else if (fs.existsSync(path)) {\n // Otherwise, use the filesystem\n contents = fs.readFileSync(path, 'utf8');\n }\n } catch (er) {\n /* ignore any errors */\n }\n\n return fileContentsCache[path] = contents;\n});\n\n// Support URLs relative to a directory, but be careful about a protocol prefix\n// in case we are in the browser (i.e. directories may start with \"http://\" or \"file:///\")\nfunction supportRelativeURL(file, url) {\n if (!file) return url;\n var dir = path.dirname(file);\n var match = /^\\w+:\\/\\/[^\\/]*/.exec(dir);\n var protocol = match ? match[0] : '';\n var startPath = dir.slice(protocol.length);\n if (protocol && /^\\/\\w\\:/.test(startPath)) {\n // handle file:///C:/ paths\n protocol += '/';\n return protocol + path.resolve(dir.slice(protocol.length), url).replace(/\\\\/g, '/');\n }\n return protocol + path.resolve(dir.slice(protocol.length), url);\n}\n\nfunction retrieveSourceMapURL(source) {\n var fileData;\n\n if (isInBrowser()) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', source, false);\n xhr.send(null);\n fileData = xhr.readyState === 4 ? xhr.responseText : null;\n\n // Support providing a sourceMappingURL via the SourceMap header\n var sourceMapHeader = xhr.getResponseHeader(\"SourceMap\") ||\n xhr.getResponseHeader(\"X-SourceMap\");\n if (sourceMapHeader) {\n return sourceMapHeader;\n }\n } catch (e) {\n }\n }\n\n // Get the URL of the source map\n fileData = retrieveFile(source);\n var re = /(?:\\/\\/[@#][\\s]*sourceMappingURL=([^\\s'\"]+)[\\s]*$)|(?:\\/\\*[@#][\\s]*sourceMappingURL=([^\\s*'\"]+)[\\s]*(?:\\*\\/)[\\s]*$)/mg;\n // Keep executing the search to find the *last* sourceMappingURL to avoid\n // picking up sourceMappingURLs from comments, strings, etc.\n var lastMatch, match;\n while (match = re.exec(fileData)) lastMatch = match;\n if (!lastMatch) return null;\n return lastMatch[1];\n};\n\n// Can be overridden by the retrieveSourceMap option to install. Takes a\n// generated source filename; returns a {map, optional url} object, or null if\n// there is no source map. The map field may be either a string or the parsed\n// JSON object (ie, it must be a valid argument to the SourceMapConsumer\n// constructor).\nvar retrieveSourceMap = handlerExec(retrieveMapHandlers);\nretrieveMapHandlers.push(function(source) {\n var sourceMappingURL = retrieveSourceMapURL(source);\n if (!sourceMappingURL) return null;\n\n // Read the contents of the source map\n var sourceMapData;\n if (reSourceMap.test(sourceMappingURL)) {\n // Support source map URL as a data url\n var rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(',') + 1);\n sourceMapData = bufferFrom(rawData, \"base64\").toString();\n sourceMappingURL = source;\n } else {\n // Support source map URLs relative to the source URL\n sourceMappingURL = supportRelativeURL(source, sourceMappingURL);\n sourceMapData = retrieveFile(sourceMappingURL);\n }\n\n if (!sourceMapData) {\n return null;\n }\n\n return {\n url: sourceMappingURL,\n map: sourceMapData\n };\n});\n\nfunction mapSourcePosition(position) {\n var sourceMap = sourceMapCache[position.source];\n if (!sourceMap) {\n // Call the (overrideable) retrieveSourceMap function to get the source map.\n var urlAndMap = retrieveSourceMap(position.source);\n if (urlAndMap) {\n sourceMap = sourceMapCache[position.source] = {\n url: urlAndMap.url,\n map: new SourceMapConsumer(urlAndMap.map)\n };\n\n // Load all sources stored inline with the source map into the file cache\n // to pretend like they are already loaded. They may not exist on disk.\n if (sourceMap.map.sourcesContent) {\n sourceMap.map.sources.forEach(function(source, i) {\n var contents = sourceMap.map.sourcesContent[i];\n if (contents) {\n var url = supportRelativeURL(sourceMap.url, source);\n fileContentsCache[url] = contents;\n }\n });\n }\n } else {\n sourceMap = sourceMapCache[position.source] = {\n url: null,\n map: null\n };\n }\n }\n\n // Resolve the source URL relative to the URL of the source map\n if (sourceMap && sourceMap.map && typeof sourceMap.map.originalPositionFor === 'function') {\n var originalPosition = sourceMap.map.originalPositionFor(position);\n\n // Only return the original position if a matching line was found. If no\n // matching line is found then we return position instead, which will cause\n // the stack trace to print the path and line for the compiled file. It is\n // better to give a precise location in the compiled file than a vague\n // location in the original file.\n if (originalPosition.source !== null) {\n originalPosition.source = supportRelativeURL(\n sourceMap.url, originalPosition.source);\n return originalPosition;\n }\n }\n\n return position;\n}\n\n// Parses code generated by FormatEvalOrigin(), a function inside V8:\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js\nfunction mapEvalOrigin(origin) {\n // Most eval() calls are in this format\n var match = /^eval at ([^(]+) \\((.+):(\\d+):(\\d+)\\)$/.exec(origin);\n if (match) {\n var position = mapSourcePosition({\n source: match[2],\n line: +match[3],\n column: match[4] - 1\n });\n return 'eval at ' + match[1] + ' (' + position.source + ':' +\n position.line + ':' + (position.column + 1) + ')';\n }\n\n // Parse nested eval() calls using recursion\n match = /^eval at ([^(]+) \\((.+)\\)$/.exec(origin);\n if (match) {\n return 'eval at ' + match[1] + ' (' + mapEvalOrigin(match[2]) + ')';\n }\n\n // Make sure we still return useful information if we didn't find anything\n return origin;\n}\n\n// This is copied almost verbatim from the V8 source code at\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js. The\n// implementation of wrapCallSite() used to just forward to the actual source\n// code of CallSite.prototype.toString but unfortunately a new release of V8\n// did something to the prototype chain and broke the shim. The only fix I\n// could find was copy/paste.\nfunction CallSiteToString() {\n var fileName;\n var fileLocation = \"\";\n if (this.isNative()) {\n fileLocation = \"native\";\n } else {\n fileName = this.getScriptNameOrSourceURL();\n if (!fileName && this.isEval()) {\n fileLocation = this.getEvalOrigin();\n fileLocation += \", \"; // Expecting source position to follow.\n }\n\n if (fileName) {\n fileLocation += fileName;\n } else {\n // Source code does not originate from a file and is not native, but we\n // can still get the source position inside the source string, e.g. in\n // an eval string.\n fileLocation += \"\";\n }\n var lineNumber = this.getLineNumber();\n if (lineNumber != null) {\n fileLocation += \":\" + lineNumber;\n var columnNumber = this.getColumnNumber();\n if (columnNumber) {\n fileLocation += \":\" + columnNumber;\n }\n }\n }\n\n var line = \"\";\n var functionName = this.getFunctionName();\n var addSuffix = true;\n var isConstructor = this.isConstructor();\n var isMethodCall = !(this.isToplevel() || isConstructor);\n if (isMethodCall) {\n var typeName = this.getTypeName();\n // Fixes shim to be backward compatable with Node v0 to v4\n if (typeName === \"[object Object]\") {\n typeName = \"null\";\n }\n var methodName = this.getMethodName();\n if (functionName) {\n if (typeName && functionName.indexOf(typeName) != 0) {\n line += typeName + \".\";\n }\n line += functionName;\n if (methodName && functionName.indexOf(\".\" + methodName) != functionName.length - methodName.length - 1) {\n line += \" [as \" + methodName + \"]\";\n }\n } else {\n line += typeName + \".\" + (methodName || \"\");\n }\n } else if (isConstructor) {\n line += \"new \" + (functionName || \"\");\n } else if (functionName) {\n line += functionName;\n } else {\n line += fileLocation;\n addSuffix = false;\n }\n if (addSuffix) {\n line += \" (\" + fileLocation + \")\";\n }\n return line;\n}\n\nfunction cloneCallSite(frame) {\n var object = {};\n Object.getOwnPropertyNames(Object.getPrototypeOf(frame)).forEach(function(name) {\n object[name] = /^(?:is|get)/.test(name) ? function() { return frame[name].call(frame); } : frame[name];\n });\n object.toString = CallSiteToString;\n return object;\n}\n\nfunction wrapCallSite(frame, state) {\n // provides interface backward compatibility\n if (state === undefined) {\n state = { nextPosition: null, curPosition: null }\n }\n if(frame.isNative()) {\n state.curPosition = null;\n return frame;\n }\n\n // Most call sites will return the source file from getFileName(), but code\n // passed to eval() ending in \"//# sourceURL=...\" will return the source file\n // from getScriptNameOrSourceURL() instead\n var source = frame.getFileName() || frame.getScriptNameOrSourceURL();\n if (source) {\n var line = frame.getLineNumber();\n var column = frame.getColumnNumber() - 1;\n\n // Fix position in Node where some (internal) code is prepended.\n // See https://github.com/evanw/node-source-map-support/issues/36\n // Header removed in node at ^10.16 || >=11.11.0\n // v11 is not an LTS candidate, we can just test the one version with it.\n // Test node versions for: 10.16-19, 10.20+, 12-19, 20-99, 100+, or 11.11\n var noHeader = /^v(10\\.1[6-9]|10\\.[2-9][0-9]|10\\.[0-9]{3,}|1[2-9]\\d*|[2-9]\\d|\\d{3,}|11\\.11)/;\n var headerLength = noHeader.test(globalProcessVersion()) ? 0 : 62;\n if (line === 1 && column > headerLength && !isInBrowser() && !frame.isEval()) {\n column -= headerLength;\n }\n\n var position = mapSourcePosition({\n source: source,\n line: line,\n column: column\n });\n state.curPosition = position;\n frame = cloneCallSite(frame);\n var originalFunctionName = frame.getFunctionName;\n frame.getFunctionName = function() {\n if (state.nextPosition == null) {\n return originalFunctionName();\n }\n return state.nextPosition.name || originalFunctionName();\n };\n frame.getFileName = function() { return position.source; };\n frame.getLineNumber = function() { return position.line; };\n frame.getColumnNumber = function() { return position.column + 1; };\n frame.getScriptNameOrSourceURL = function() { return position.source; };\n return frame;\n }\n\n // Code called using eval() needs special handling\n var origin = frame.isEval() && frame.getEvalOrigin();\n if (origin) {\n origin = mapEvalOrigin(origin);\n frame = cloneCallSite(frame);\n frame.getEvalOrigin = function() { return origin; };\n return frame;\n }\n\n // If we get here then we were unable to change the source position\n return frame;\n}\n\n// This function is part of the V8 stack trace API, for more info see:\n// https://v8.dev/docs/stack-trace-api\nfunction prepareStackTrace(error, stack) {\n if (emptyCacheBetweenOperations) {\n fileContentsCache = {};\n sourceMapCache = {};\n }\n\n var name = error.name || 'Error';\n var message = error.message || '';\n var errorString = name + \": \" + message;\n\n var state = { nextPosition: null, curPosition: null };\n var processedStack = [];\n for (var i = stack.length - 1; i >= 0; i--) {\n processedStack.push('\\n at ' + wrapCallSite(stack[i], state));\n state.nextPosition = state.curPosition;\n }\n state.curPosition = state.nextPosition = null;\n return errorString + processedStack.reverse().join('');\n}\n\n// Generate position and snippet of original source with pointer\nfunction getErrorSource(error) {\n var match = /\\n at [^(]+ \\((.*):(\\d+):(\\d+)\\)/.exec(error.stack);\n if (match) {\n var source = match[1];\n var line = +match[2];\n var column = +match[3];\n\n // Support the inline sourceContents inside the source map\n var contents = fileContentsCache[source];\n\n // Support files on disk\n if (!contents && fs && fs.existsSync(source)) {\n try {\n contents = fs.readFileSync(source, 'utf8');\n } catch (er) {\n contents = '';\n }\n }\n\n // Format the line from the original source code like node does\n if (contents) {\n var code = contents.split(/(?:\\r\\n|\\r|\\n)/)[line - 1];\n if (code) {\n return source + ':' + line + '\\n' + code + '\\n' +\n new Array(column).join(' ') + '^';\n }\n }\n }\n return null;\n}\n\nfunction printErrorAndExit (error) {\n var source = getErrorSource(error);\n\n // Ensure error is printed synchronously and not truncated\n var stderr = globalProcessStderr();\n if (stderr && stderr._handle && stderr._handle.setBlocking) {\n stderr._handle.setBlocking(true);\n }\n\n if (source) {\n console.error();\n console.error(source);\n }\n\n console.error(error.stack);\n globalProcessExit(1);\n}\n\nfunction shimEmitUncaughtException () {\n var origEmit = process.emit;\n\n process.emit = function (type) {\n if (type === 'uncaughtException') {\n var hasStack = (arguments[1] && arguments[1].stack);\n var hasListeners = (this.listeners(type).length > 0);\n\n if (hasStack && !hasListeners) {\n return printErrorAndExit(arguments[1]);\n }\n }\n\n return origEmit.apply(this, arguments);\n };\n}\n\nvar originalRetrieveFileHandlers = retrieveFileHandlers.slice(0);\nvar originalRetrieveMapHandlers = retrieveMapHandlers.slice(0);\n\nexports.wrapCallSite = wrapCallSite;\nexports.getErrorSource = getErrorSource;\nexports.mapSourcePosition = mapSourcePosition;\nexports.retrieveSourceMap = retrieveSourceMap;\n\nexports.install = function(options) {\n options = options || {};\n\n if (options.environment) {\n environment = options.environment;\n if ([\"node\", \"browser\", \"auto\"].indexOf(environment) === -1) {\n throw new Error(\"environment \" + environment + \" was unknown. Available options are {auto, browser, node}\")\n }\n }\n\n // Allow sources to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveFile) {\n if (options.overrideRetrieveFile) {\n retrieveFileHandlers.length = 0;\n }\n\n retrieveFileHandlers.unshift(options.retrieveFile);\n }\n\n // Allow source maps to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveSourceMap) {\n if (options.overrideRetrieveSourceMap) {\n retrieveMapHandlers.length = 0;\n }\n\n retrieveMapHandlers.unshift(options.retrieveSourceMap);\n }\n\n // Support runtime transpilers that include inline source maps\n if (options.hookRequire && !isInBrowser()) {\n // Use dynamicRequire to avoid including in browser bundles\n var Module = dynamicRequire(module, 'module');\n var $compile = Module.prototype._compile;\n\n if (!$compile.__sourceMapSupport) {\n Module.prototype._compile = function(content, filename) {\n fileContentsCache[filename] = content;\n sourceMapCache[filename] = undefined;\n return $compile.call(this, content, filename);\n };\n\n Module.prototype._compile.__sourceMapSupport = true;\n }\n }\n\n // Configure options\n if (!emptyCacheBetweenOperations) {\n emptyCacheBetweenOperations = 'emptyCacheBetweenOperations' in options ?\n options.emptyCacheBetweenOperations : false;\n }\n\n // Install the error reformatter\n if (!errorFormatterInstalled) {\n errorFormatterInstalled = true;\n Error.prepareStackTrace = prepareStackTrace;\n }\n\n if (!uncaughtShimInstalled) {\n var installHandler = 'handleUncaughtExceptions' in options ?\n options.handleUncaughtExceptions : true;\n\n // Do not override 'uncaughtException' with our own handler in Node.js\n // Worker threads. Workers pass the error to the main thread as an event,\n // rather than printing something to stderr and exiting.\n try {\n // We need to use `dynamicRequire` because `require` on it's own will be optimized by WebPack/Browserify.\n var worker_threads = dynamicRequire(module, 'worker_threads');\n if (worker_threads.isMainThread === false) {\n installHandler = false;\n }\n } catch(e) {}\n\n // Provide the option to not install the uncaught exception handler. This is\n // to support other uncaught exception handlers (in test frameworks, for\n // example). If this handler is not installed and there are no other uncaught\n // exception handlers, uncaught exceptions will be caught by node's built-in\n // exception handler and the process will still be terminated. However, the\n // generated JavaScript code will be shown above the stack trace instead of\n // the original source code.\n if (installHandler && hasGlobalProcessEventEmitter()) {\n uncaughtShimInstalled = true;\n shimEmitUncaughtException();\n }\n }\n};\n\nexports.resetRetrieveHandlers = function() {\n retrieveFileHandlers.length = 0;\n retrieveMapHandlers.length = 0;\n\n retrieveFileHandlers = originalRetrieveFileHandlers.slice(0);\n retrieveMapHandlers = originalRetrieveMapHandlers.slice(0);\n\n retrieveSourceMap = handlerExec(retrieveMapHandlers);\n retrieveFile = handlerExec(retrieveFileHandlers);\n}\n", "/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n", "import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport 'source-map-support/register';\nimport {FloatingPanel} from \"./FloatingPanel\";\n\n// TODO breadchris more logic can be added here to improve performance https://github.com/evanw/esbuild/blob/7d11ef1e24a3f0981e45e37200957268c4e22619/CHANGELOG.md?plain=1#L1009\n// new EventSource('/esbuild').addEventListener('change', () => location.reload())\n\nconst rootElem = document.createElement(\"div\");\nrootElem.setAttribute(\"id\", \"justshare-root\");\ndocument.body.appendChild(rootElem);\n\n// let shadowRoot = rootElem.attachShadow({mode: 'open'});\n// rootElem.style.width = '0';\n// rootElem.style.height = '0';\n// rootElem.style.padding = '0';\n// rootElem.style.margin = '0';\n//\n// shadowRoot.appendChild(rootElem);\n\nrootElem.style.width = '0';\nrootElem.style.height = '0';\nrootElem.style.padding = '0';\nrootElem.style.margin = '0';\n\nfunction injectScriptFile(scriptName: string) {\n const script = document.createElement('script');\n const u = chrome.runtime.getURL(scriptName);\n script.src = u;\n (document.head || document.documentElement).appendChild(script);\n script.onload = function() {\n this.remove();\n };\n}\n\n// Listen for the event from the injected script\ndocument.addEventListener('NEXT_JS_PARAMS', function (e) {\n const data = JSON.parse(e.detail);\n console.log('NEXT_JS_PARAMS', data);\n const msgStr: string = data[20][1];\n const msgData = JSON.parse(msgStr.substring(3));\n const messages = msgData[3]['chat']['messages']\n const formatted = messages.map((msg: any) => {\n return `[${msg['role']}] ${msg['content']}`;\n });\n console.log(formatted);\n});\n\n// TODO breadchris make configurable\n// injectScriptFile('injected.js');\n\nconst root = ReactDOM.createRoot(rootElem);\nroot.render(\n \n \n \n);", "require('./').install();\n", "import React, { useState, useEffect } from 'react';\nimport {contentGet, contentSave, TabContent} from \"./shared\";\nimport {NewSaveWizard} from \"./NewSaveWizard\";\nimport {urlContent} from \"./util\";\nimport {atom} from \"jotai\";\nimport {Content} from \"@/rpc/content/content_pb\";\nimport {useAtom} from \"jotai\";\n\ninterface FloatingPanelProps {}\n\n// TODO breadchris get page content https://github.com/omnivore-app/omnivore/blob/main/pkg/extension/src/scripts/content/prepare-content.js#L274\n\nexport const contentAtom = atom([]);\n\nconst floatingPanelStyle: React.CSSProperties = {\n padding: '10px',\n backgroundColor: 'white',\n border: '1px solid #ccc',\n color: 'black',\n maxHeight: '300px',\n overflowY: 'auto',\n zIndex: 9999,\n right: '10px',\n bottom: '10px',\n position: 'fixed',\n}\n\nconst getContent = (content: Content) => {\n switch (content.type.case) {\n case 'data':\n const d = content.type.value;\n switch (d.type.case) {\n case 'url':\n return d.type.value.url;\n }\n break;\n }\n return 'unknown';\n}\n\nexport const FloatingPanel: React.FC = () => {\n const [visible, setVisible] = useState(false);\n const [tabContent, setTabContent] = useState(undefined);\n const [content, setContent] = useAtom(contentAtom);\n\n useEffect(() => {\n const listener = (event: KeyboardEvent) => {\n if (event.ctrlKey && event.key === 'l') {\n event.preventDefault();\n setVisible(!visible);\n }\n }\n document.addEventListener('keydown', listener);\n return () => {\n document.removeEventListener('keydown', listener)\n }\n }, [visible]);\n\n useEffect(() => {\n chrome.runtime.sendMessage(\n { action: contentGet, data: \"TODO make url?\" },\n (response) => {\n if (response.data) {\n setTabContent(response.data);\n setVisible(true);\n }\n }\n );\n }, []);\n\n const saveContent = () => {\n if (!tabContent) {\n return;\n }\n const u = new URL(tabContent.from);\n const content = urlContent(tabContent.to, ['browser/history', u.host])\n chrome.runtime.sendMessage(\n { action: contentSave, data: content },\n (response) => {\n // if (response.error) {\n // console.error(response.error);\n // return;\n // }\n setVisible(false)\n }\n );\n setTabContent(undefined);\n }\n\n const dontSave = () => {\n setVisible(false);\n setTabContent(undefined);\n }\n\n if (content.length === 0 && !visible) {\n return null;\n }\n\n return (\n
\n
    \n {content.map((c) => {\n return (\n
  • \n \n {getContent(c)}\n
  • \n );\n })}\n
\n {tabContent ? (\n <>\n
Save this page?
\n
\n \n \n
\n \n ) : (\n \n )}\n
\n );\n};\n", "\nexport type TabContent = {\n from: string;\n to: string;\n}\nexport const contentGet = 'content/get';\nexport const contentSave = 'content/save';\nexport const historyGet = 'history/get';\nexport const historyDelete = 'history/delete';\n", "import React, {useEffect, useState} from \"react\";\nimport {contentService} from \"@/service\";\nimport {urlContent} from \"./util\";\nimport { Content } from \"@/rpc/content/content_pb\";\nimport {contentSave} from \"./shared\";\nimport toast from \"react-hot-toast\";\n\ninterface SaveWizardProps {}\n\nexport const NewSaveWizard: React.FC = () => {\n const [error, setError] = useState(undefined);\n const [title, setTitle] = useState(document.title || window.location.href);\n const [tag, setTag] = useState(undefined);\n const [tags, setTags] = useState(['browser/save']);\n const [url, setUrl] = useState(window.location.href);\n const [annotation, setAnnotation] = useState('');\n const [annotations, setAnnotations] = useState([]);\n const [selectedValue, setSelectedValue] = useState(\"tags\");\n const [analysis, setAnalysis] = useState(undefined);\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n document.addEventListener('mouseup', handleTextHighlight);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('mouseup', handleTextHighlight);\n };\n }, []);\n\n const handleTextHighlight = () => {\n const highlightedText = window.getSelection()?.toString();\n if (highlightedText) {\n setAnnotation(highlightedText);\n }\n };\n\n const handleAddTag = (addTag: string) => {\n setTags([...tags, addTag]);\n setTag('');\n }\n\n const handleAddAnnotation = () => {\n if (annotation) {\n setAnnotations([...annotations, annotation]);\n setAnnotation('');\n }\n };\n\n const analyze = async () => {\n setAnalysis(undefined)\n try {\n const res = await contentService.analyze(\n urlContent(url, tags)\n )\n console.log(res)\n // setAnalysis(res.content)\n } catch (e: any) {\n console.error(e)\n }\n }\n\n const handleSave = async () => {\n setError(undefined);\n const content = urlContent(url, tags);\n chrome.runtime.sendMessage(\n { action: contentSave, data: content.toJson() },\n (response) => {\n // if (response && response.error) {\n // setError(response.error);\n // }\n console.log('content', 'save response', response);\n }\n );\n }\n\n const handleRemove = (id: number) => {\n setAnnotations(annotations.filter((annotation, idx) => idx !== id));\n };\n\n const handleRemoveTag = (id: number) => {\n setAnnotations(tags.filter((annotation, idx) => idx !== id));\n };\n\n return (\n
\n setTitle(e.target.value)} />\n
\n \n \n
\n
\n {/* Analyze content */}\n {selectedValue === 'analyze' && (\n
\n \n {analysis && (\n
    \n {analysis.map((content, idx) => (\n content.tags.map((t, idx) => (\n \n ))\n ))}\n
\n )}\n
\n )}\n {selectedValue === 'tags' && (\n
\n setTag(e.target.value)} />\n \n {tags.length > 0 && (\n \n \n {tags.map((tag, idx) => (\n \n \n \n ))}\n \n
\n {tag}\n \n
\n )}\n
\n )}\n\n {/* Annotations content */}\n {selectedValue === 'annotations' && (\n
\n \n \n {annotations.length > 0 && (\n \n \n {annotations.map((annotation, idx) => (\n \n \n \n ))}\n \n
\n {annotation}\n \n
\n )}\n
\n )}\n
\n
\n \n
\n {error && (\n
{error}
\n )}\n
\n );\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Assert that condition is truthy or throw error (with message)\n */\nexport function assert(condition, msg) {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- we want the implicit conversion to boolean\n if (!condition) {\n throw new Error(msg);\n }\n}\nconst FLOAT32_MAX = 3.4028234663852886e38, FLOAT32_MIN = -3.4028234663852886e38, UINT32_MAX = 0xffffffff, INT32_MAX = 0x7fffffff, INT32_MIN = -0x80000000;\n/**\n * Assert a valid signed protobuf 32-bit integer.\n */\nexport function assertInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid int 32: \" + typeof arg);\n if (!Number.isInteger(arg) || arg > INT32_MAX || arg < INT32_MIN)\n throw new Error(\"invalid int 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer.\n */\nexport function assertUInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid uint 32: \" + typeof arg);\n if (!Number.isInteger(arg) || arg > UINT32_MAX || arg < 0)\n throw new Error(\"invalid uint 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid protobuf float value.\n */\nexport function assertFloat32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid float 32: \" + typeof arg);\n if (!Number.isFinite(arg))\n return;\n if (arg > FLOAT32_MAX || arg < FLOAT32_MIN)\n throw new Error(\"invalid float 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { assert } from \"./assert.js\";\nconst enumTypeSymbol = Symbol(\"@bufbuild/protobuf/enum-type\");\n/**\n * Get reflection information from a generated enum.\n * If this function is called on something other than a generated\n * enum, it raises an error.\n */\nexport function getEnumType(enumObject) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-explicit-any\n const t = enumObject[enumTypeSymbol];\n assert(t, \"missing enum type on enum object\");\n return t; // eslint-disable-line @typescript-eslint/no-unsafe-return\n}\n/**\n * Sets reflection information on a generated enum.\n */\nexport function setEnumType(enumObject, typeName, values, opt) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n enumObject[enumTypeSymbol] = makeEnumType(typeName, values.map((v) => ({\n no: v.no,\n name: v.name,\n localName: enumObject[v.no],\n })), opt);\n}\n/**\n * Create a new EnumType with the given values.\n */\nexport function makeEnumType(typeName, values, \n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n_opt) {\n const names = Object.create(null);\n const numbers = Object.create(null);\n const normalValues = [];\n for (const value of values) {\n // We do not surface options at this time\n // const value: EnumValueInfo = {...v, options: v.options ?? emptyReadonlyObject};\n const n = normalizeEnumValue(value);\n normalValues.push(n);\n names[value.name] = n;\n numbers[value.no] = n;\n }\n return {\n typeName,\n values: normalValues,\n // We do not surface options at this time\n // options: opt?.options ?? Object.create(null),\n findName(name) {\n return names[name];\n },\n findNumber(no) {\n return numbers[no];\n },\n };\n}\n/**\n * Create a new enum object with the given values.\n * Sets reflection information.\n */\nexport function makeEnum(typeName, values, opt) {\n const enumObject = {};\n for (const value of values) {\n const n = normalizeEnumValue(value);\n enumObject[n.localName] = n.no;\n enumObject[n.no] = n.localName;\n }\n setEnumType(enumObject, typeName, values, opt);\n return enumObject;\n}\nfunction normalizeEnumValue(value) {\n if (\"localName\" in value) {\n return value;\n }\n return Object.assign(Object.assign({}, value), { localName: value.name });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Message is the base class of every message, generated, or created at\n * runtime.\n *\n * It is _not_ safe to extend this class. If you want to create a message at\n * run time, use proto3.makeMessageType().\n */\nexport class Message {\n /**\n * Compare with a message of the same type.\n */\n equals(other) {\n return this.getType().runtime.util.equals(this.getType(), this, other);\n }\n /**\n * Create a deep copy.\n */\n clone() {\n return this.getType().runtime.util.clone(this);\n }\n /**\n * Parse from binary data, merging fields.\n *\n * Repeated fields are appended. Map entries are added, overwriting\n * existing keys.\n *\n * If a message field is already present, it will be merged with the\n * new data.\n */\n fromBinary(bytes, options) {\n const type = this.getType(), format = type.runtime.bin, opt = format.makeReadOptions(options);\n format.readMessage(this, opt.readerFactory(bytes), bytes.byteLength, opt);\n return this;\n }\n /**\n * Parse a message from a JSON value.\n */\n fromJson(jsonValue, options) {\n const type = this.getType(), format = type.runtime.json, opt = format.makeReadOptions(options);\n format.readMessage(type, jsonValue, opt, this);\n return this;\n }\n /**\n * Parse a message from a JSON string.\n */\n fromJsonString(jsonString, options) {\n let json;\n try {\n json = JSON.parse(jsonString);\n }\n catch (e) {\n throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${e instanceof Error ? e.message : String(e)}`);\n }\n return this.fromJson(json, options);\n }\n /**\n * Serialize the message to binary data.\n */\n toBinary(options) {\n const type = this.getType(), bin = type.runtime.bin, opt = bin.makeWriteOptions(options), writer = opt.writerFactory();\n bin.writeMessage(this, writer, opt);\n return writer.finish();\n }\n /**\n * Serialize the message to a JSON value, a JavaScript value that can be\n * passed to JSON.stringify().\n */\n toJson(options) {\n const type = this.getType(), json = type.runtime.json, opt = json.makeWriteOptions(options);\n return json.writeMessage(this, opt);\n }\n /**\n * Serialize the message to a JSON string.\n */\n toJsonString(options) {\n var _a;\n const value = this.toJson(options);\n return JSON.stringify(value, null, (_a = options === null || options === void 0 ? void 0 : options.prettySpaces) !== null && _a !== void 0 ? _a : 0);\n }\n /**\n * Override for serialization behavior. This will be invoked when calling\n * JSON.stringify on this message (i.e. JSON.stringify(msg)).\n *\n * Note that this will not serialize google.protobuf.Any with a packed\n * message because the protobuf JSON format specifies that it needs to be\n * unpacked, and this is only possible with a type registry to look up the\n * message type. As a result, attempting to serialize a message with this\n * type will throw an Error.\n *\n * This method is protected because you should not need to invoke it\n * directly -- instead use JSON.stringify or toJsonString for\n * stringified JSON. Alternatively, if actual JSON is desired, you should\n * use toJson.\n */\n toJSON() {\n return this.toJson({\n emitDefaultValues: true,\n });\n }\n /**\n * Retrieve the MessageType of this message - a singleton that represents\n * the protobuf message declaration and provides metadata for reflection-\n * based operations.\n */\n getType() {\n // Any class that extends Message _must_ provide a complete static\n // implementation of MessageType.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return\n return Object.getPrototypeOf(this).constructor;\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\n/**\n * Create a new message type using the given runtime.\n */\nexport function makeMessageType(runtime, typeName, fields, opt) {\n var _a;\n const localName = (_a = opt === null || opt === void 0 ? void 0 : opt.localName) !== null && _a !== void 0 ? _a : typeName.substring(typeName.lastIndexOf(\".\") + 1);\n const type = {\n [localName]: function (data) {\n runtime.util.initFields(this);\n runtime.util.initPartial(data, this);\n },\n }[localName];\n Object.setPrototypeOf(type.prototype, new Message());\n Object.assign(type, {\n runtime,\n typeName,\n fields: runtime.util.newFieldList(fields),\n fromBinary(bytes, options) {\n return new type().fromBinary(bytes, options);\n },\n fromJson(jsonValue, options) {\n return new type().fromJson(jsonValue, options);\n },\n fromJsonString(jsonString, options) {\n return new type().fromJsonString(jsonString, options);\n },\n equals(a, b) {\n return runtime.util.equals(type, a, b);\n },\n });\n return type;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { getEnumType, makeEnum, makeEnumType } from \"./enum.js\";\nimport { makeMessageType } from \"./message-type.js\";\nexport function makeProtoRuntime(syntax, json, bin, util) {\n return {\n syntax,\n json,\n bin,\n util,\n makeMessageType(typeName, fields, opt) {\n return makeMessageType(this, typeName, fields, opt);\n },\n makeEnum,\n makeEnumType,\n getEnumType,\n };\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Scalar value types. This is a subset of field types declared by protobuf\n * enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE\n * are omitted, but the numerical values are identical.\n */\nexport var ScalarType;\n(function (ScalarType) {\n // 0 is reserved for errors.\n // Order is weird for historical reasons.\n ScalarType[ScalarType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n ScalarType[ScalarType[\"FLOAT\"] = 2] = \"FLOAT\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT64\"] = 3] = \"INT64\";\n ScalarType[ScalarType[\"UINT64\"] = 4] = \"UINT64\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT32\"] = 5] = \"INT32\";\n ScalarType[ScalarType[\"FIXED64\"] = 6] = \"FIXED64\";\n ScalarType[ScalarType[\"FIXED32\"] = 7] = \"FIXED32\";\n ScalarType[ScalarType[\"BOOL\"] = 8] = \"BOOL\";\n ScalarType[ScalarType[\"STRING\"] = 9] = \"STRING\";\n // Tag-delimited aggregate.\n // Group type is deprecated and not supported in proto3. However, Proto3\n // implementations should still be able to parse the group wire format and\n // treat group fields as unknown fields.\n // TYPE_GROUP = 10,\n // TYPE_MESSAGE = 11, // Length-delimited aggregate.\n // New in version 2.\n ScalarType[ScalarType[\"BYTES\"] = 12] = \"BYTES\";\n ScalarType[ScalarType[\"UINT32\"] = 13] = \"UINT32\";\n // TYPE_ENUM = 14,\n ScalarType[ScalarType[\"SFIXED32\"] = 15] = \"SFIXED32\";\n ScalarType[ScalarType[\"SFIXED64\"] = 16] = \"SFIXED64\";\n ScalarType[ScalarType[\"SINT32\"] = 17] = \"SINT32\";\n ScalarType[ScalarType[\"SINT64\"] = 18] = \"SINT64\";\n})(ScalarType || (ScalarType = {}));\n/**\n * JavaScript representation of fields with 64 bit integral types (int64, uint64,\n * sint64, fixed64, sfixed64).\n *\n * This is a subset of google.protobuf.FieldOptions.JSType, which defines JS_NORMAL,\n * JS_STRING, and JS_NUMBER. Protobuf-ES uses BigInt by default, but will use\n * String if `[jstype = JS_STRING]` is specified.\n *\n * ```protobuf\n * uint64 field_a = 1; // BigInt\n * uint64 field_b = 2 [jstype = JS_NORMAL]; // BigInt\n * uint64 field_b = 2 [jstype = JS_NUMBER]; // BigInt\n * uint64 field_b = 2 [jstype = JS_STRING]; // String\n * ```\n */\nexport var LongType;\n(function (LongType) {\n /**\n * Use JavaScript BigInt.\n */\n LongType[LongType[\"BIGINT\"] = 0] = \"BIGINT\";\n /**\n * Use JavaScript String.\n *\n * Field option `[jstype = JS_STRING]`.\n */\n LongType[LongType[\"STRING\"] = 1] = \"STRING\";\n})(LongType || (LongType = {}));\n", "// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nexport function varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nexport function varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = (bits.hi & 0x80000000);\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1FFFFF) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xFFFFFF;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xFFFFFF;\n const high = (hi >> 16) & 0xFFFF;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + (mid * 6777216) + (high * 6710656);\n let digitB = mid + (high * 8147497);\n let digitC = (high * 2);\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return digitC.toString() + decimalFrom1e7WithLeadingZeros(digitB) +\n decimalFrom1e7WithLeadingZeros(digitA);\n}\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nexport function varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nexport function varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { assert } from \"./private/assert.js\";\nimport { int64FromString, int64ToString, uInt64ToString, } from \"./google/varint.js\";\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" &&\n typeof dv.getBigInt64 === \"function\" &&\n typeof dv.getBigUint64 === \"function\" &&\n typeof dv.setBigInt64 === \"function\" &&\n typeof dv.setBigUint64 === \"function\" &&\n (typeof process != \"object\" ||\n typeof process.env != \"object\" ||\n process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\"), MAX = BigInt(\"9223372036854775807\"), UMIN = BigInt(\"0\"), UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(`int64 invalid: ${value}`);\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(`uint64 invalid: ${value}`);\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n },\n };\n }\n const assertInt64String = (value) => assert(/^-?[0-9]+$/.test(value), `int64 invalid: ${value}`);\n const assertUInt64String = (value) => assert(/^[0-9]+$/.test(value), `uint64 invalid: ${value}`);\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return int64FromString(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return int64FromString(value);\n },\n dec(lo, hi) {\n return int64ToString(lo, hi);\n },\n uDec(lo, hi) {\n return uInt64ToString(lo, hi);\n },\n };\n}\nexport const protoInt64 = makeInt64Support();\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { varint32read, varint32write, varint64read, varint64write, } from \"./google/varint.js\";\nimport { assertFloat32, assertInt32, assertUInt32 } from \"./private/assert.js\";\nimport { protoInt64 } from \"./proto-int64.js\";\n/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/restrict-plus-operands */\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nexport var WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\nexport class BinaryWriter {\n constructor(textEncoder) {\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.textEncoder = textEncoder !== null && textEncoder !== void 0 ? textEncoder : new TextEncoder();\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.textEncoder.encode(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = protoInt64.enc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n let tc = protoInt64.enc(value), \n // zigzag encode\n sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n let tc = protoInt64.uEnc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nexport class BinaryReader {\n constructor(buf, textDecoder) {\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read; // dirty cast for `this` and access to protected `buf`\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n this.textDecoder = textDecoder !== null && textDecoder !== void 0 ? textDecoder : new TextDecoder();\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element on the wire and return the skipped data.\n * Supports WireType.StartGroup since v2.0.0-alpha.23.\n */\n skip(wireType) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // eslint-disable-next-line\n // @ts-ignore TS7029: Fallthrough case in switch\n case WireType.Bit64:\n this.pos += 4;\n // eslint-disable-next-line\n // @ts-ignore TS7029: Fallthrough case in switch\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n // From descriptor.proto: Group type is deprecated, not supported in proto3.\n // But we must still be able to parse and treat as unknown.\n let t;\n while ((t = this.tag()[1]) !== WireType.EndGroup) {\n this.skip(t);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n hi = (hi >>> 1) ^ s;\n return protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.textDecoder.decode(this.bytes());\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\nimport { ScalarType } from \"../field.js\";\n/**\n * Wrap a primitive message field value in its corresponding wrapper\n * message. This function is idempotent.\n */\nexport function wrapField(type, value) {\n if (value instanceof Message || !type.fieldWrapper) {\n return value;\n }\n return type.fieldWrapper.wrapField(value);\n}\n/**\n * If the given field uses one of the well-known wrapper types, return\n * the primitive type it wraps.\n */\nexport function getUnwrappedFieldType(field) {\n if (field.fieldKind !== \"message\") {\n return undefined;\n }\n if (field.repeated) {\n return undefined;\n }\n if (field.oneof != undefined) {\n return undefined;\n }\n return wktWrapperToScalarType[field.message.typeName];\n}\nconst wktWrapperToScalarType = {\n \"google.protobuf.DoubleValue\": ScalarType.DOUBLE,\n \"google.protobuf.FloatValue\": ScalarType.FLOAT,\n \"google.protobuf.Int64Value\": ScalarType.INT64,\n \"google.protobuf.UInt64Value\": ScalarType.UINT64,\n \"google.protobuf.Int32Value\": ScalarType.INT32,\n \"google.protobuf.UInt32Value\": ScalarType.UINT32,\n \"google.protobuf.BoolValue\": ScalarType.BOOL,\n \"google.protobuf.StringValue\": ScalarType.STRING,\n \"google.protobuf.BytesValue\": ScalarType.BYTES,\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { LongType, ScalarType } from \"../field.js\";\nimport { WireType } from \"../binary-encoding.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Returns true if both scalar values are equal.\n */\nexport function scalarEquals(type, a, b) {\n if (a === b) {\n // This correctly matches equal values except BYTES and (possibly) 64-bit integers.\n return true;\n }\n // Special case BYTES - we need to compare each byte individually\n if (type == ScalarType.BYTES) {\n if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n // Special case 64-bit integers - we support number, string and bigint representation.\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (type) {\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // Loose comparison will match between 0n, 0 and \"0\".\n return a == b;\n }\n // Anything that hasn't been caught by strict comparison or special cased\n // BYTES and 64-bit integers is not equal.\n return false;\n}\n/**\n * Returns the default value for the given scalar type, following\n * proto3 semantics.\n */\nexport function scalarDefaultValue(type, longType) {\n switch (type) {\n case ScalarType.BOOL:\n return false;\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n return longType == 0 ? protoInt64.zero : \"0\";\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n return 0.0;\n case ScalarType.BYTES:\n return new Uint8Array(0);\n case ScalarType.STRING:\n return \"\";\n default:\n // Handles INT32, UINT32, SINT32, FIXED32, SFIXED32.\n // We do not use individual cases to save a few bytes code size.\n return 0;\n }\n}\n/**\n * Get information for writing a scalar value.\n *\n * Returns tuple:\n * [0]: appropriate WireType\n * [1]: name of the appropriate method of IBinaryWriter\n * [2]: whether the given value is a default value for proto3 semantics\n *\n * If argument `value` is omitted, [2] is always false.\n */\nexport function scalarTypeInfo(type, value) {\n const isUndefined = value === undefined;\n let wireType = WireType.Varint;\n let isIntrinsicDefault = value === 0;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- INT32, UINT32, SINT32 are covered by the defaults\n switch (type) {\n case ScalarType.STRING:\n isIntrinsicDefault = isUndefined || !value.length;\n wireType = WireType.LengthDelimited;\n break;\n case ScalarType.BOOL:\n isIntrinsicDefault = value === false;\n break;\n case ScalarType.DOUBLE:\n wireType = WireType.Bit64;\n break;\n case ScalarType.FLOAT:\n wireType = WireType.Bit32;\n break;\n case ScalarType.INT64:\n isIntrinsicDefault = isUndefined || value == 0; // Loose comparison matches 0n, 0 and \"0\"\n break;\n case ScalarType.UINT64:\n isIntrinsicDefault = isUndefined || value == 0; // Loose comparison matches 0n, 0 and \"0\"\n break;\n case ScalarType.FIXED64:\n isIntrinsicDefault = isUndefined || value == 0; // Loose comparison matches 0n, 0 and \"0\"\n wireType = WireType.Bit64;\n break;\n case ScalarType.BYTES:\n isIntrinsicDefault = isUndefined || !value.byteLength;\n wireType = WireType.LengthDelimited;\n break;\n case ScalarType.FIXED32:\n wireType = WireType.Bit32;\n break;\n case ScalarType.SFIXED32:\n wireType = WireType.Bit32;\n break;\n case ScalarType.SFIXED64:\n isIntrinsicDefault = isUndefined || value == 0;\n wireType = WireType.Bit64;\n break;\n case ScalarType.SINT64:\n isIntrinsicDefault = isUndefined || value == 0;\n break;\n }\n const method = ScalarType[type].toLowerCase();\n return [wireType, method, isUndefined || isIntrinsicDefault];\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { BinaryReader, BinaryWriter, WireType } from \"../binary-encoding.js\";\nimport { Message } from \"../message.js\";\nimport { LongType, ScalarType } from \"../field.js\";\nimport { wrapField } from \"./field-wrapper.js\";\nimport { scalarDefaultValue, scalarTypeInfo } from \"./scalars.js\";\nimport { assert } from \"./assert.js\";\n/* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unnecessary-condition, no-case-declarations, prefer-const */\nconst unknownFieldsSymbol = Symbol(\"@bufbuild/protobuf/unknown-fields\");\n// Default options for parsing binary data.\nconst readDefaults = {\n readUnknownFields: true,\n readerFactory: (bytes) => new BinaryReader(bytes),\n};\n// Default options for serializing binary data.\nconst writeDefaults = {\n writeUnknownFields: true,\n writerFactory: () => new BinaryWriter(),\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, readDefaults), options) : readDefaults;\n}\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, writeDefaults), options) : writeDefaults;\n}\nexport function makeBinaryFormatCommon() {\n return {\n makeReadOptions,\n makeWriteOptions,\n listUnknownFields(message) {\n var _a;\n return (_a = message[unknownFieldsSymbol]) !== null && _a !== void 0 ? _a : [];\n },\n discardUnknownFields(message) {\n delete message[unknownFieldsSymbol];\n },\n writeUnknownFields(message, writer) {\n const m = message;\n const c = m[unknownFieldsSymbol];\n if (c) {\n for (const f of c) {\n writer.tag(f.no, f.wireType).raw(f.data);\n }\n }\n },\n onUnknownField(message, no, wireType, data) {\n const m = message;\n if (!Array.isArray(m[unknownFieldsSymbol])) {\n m[unknownFieldsSymbol] = [];\n }\n m[unknownFieldsSymbol].push({ no, wireType, data });\n },\n readMessage(message, reader, lengthOrEndTagFieldNo, options, delimitedMessageEncoding) {\n const type = message.getType();\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n const end = delimitedMessageEncoding\n ? reader.len\n : reader.pos + lengthOrEndTagFieldNo;\n let fieldNo, wireType;\n while (reader.pos < end) {\n [fieldNo, wireType] = reader.tag();\n if (wireType == WireType.EndGroup) {\n break;\n }\n const field = type.fields.find(fieldNo);\n if (!field) {\n const data = reader.skip(wireType);\n if (options.readUnknownFields) {\n this.onUnknownField(message, fieldNo, wireType, data);\n }\n continue;\n }\n let target = message, repeated = field.repeated, localName = field.localName;\n if (field.oneof) {\n target = target[field.oneof.localName];\n if (target.case != localName) {\n delete target.value;\n }\n target.case = localName;\n localName = \"value\";\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n const scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n let read = readScalar;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n if (field.kind == \"scalar\" && field.L > 0) {\n read = readScalarLTString;\n }\n if (repeated) {\n let arr = target[localName]; // safe to assume presence of array, oneof cannot contain repeated values\n if (wireType == WireType.LengthDelimited &&\n scalarType != ScalarType.STRING &&\n scalarType != ScalarType.BYTES) {\n let e = reader.uint32() + reader.pos;\n while (reader.pos < e) {\n arr.push(read(reader, scalarType));\n }\n }\n else {\n arr.push(read(reader, scalarType));\n }\n }\n else {\n target[localName] = read(reader, scalarType);\n }\n break;\n case \"message\":\n const messageType = field.T;\n if (repeated) {\n // safe to assume presence of array, oneof cannot contain repeated values\n target[localName].push(readMessageField(reader, new messageType(), options, field));\n }\n else {\n if (target[localName] instanceof Message) {\n readMessageField(reader, target[localName], options, field);\n }\n else {\n target[localName] = readMessageField(reader, new messageType(), options, field);\n if (messageType.fieldWrapper &&\n !field.oneof &&\n !field.repeated) {\n target[localName] = messageType.fieldWrapper.unwrapField(target[localName]);\n }\n }\n }\n break;\n case \"map\":\n let [mapKey, mapVal] = readMapEntry(field, reader, options);\n // safe to assume presence of map object, oneof cannot contain repeated values\n target[localName][mapKey] = mapVal;\n break;\n }\n }\n if (delimitedMessageEncoding && // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n (wireType != WireType.EndGroup || fieldNo !== lengthOrEndTagFieldNo)) {\n throw new Error(`invalid end group tag`);\n }\n },\n };\n}\n// Read a message, avoiding MessageType.fromBinary() to re-use the\n// BinaryReadOptions and the IBinaryReader.\nfunction readMessageField(reader, message, options, field) {\n const format = message.getType().runtime.bin;\n const delimited = field === null || field === void 0 ? void 0 : field.delimited;\n format.readMessage(message, reader, delimited ? field === null || field === void 0 ? void 0 : field.no : reader.uint32(), // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n options, delimited);\n return message;\n}\n// Read a map field, expecting key field = 1, value field = 2\nfunction readMapEntry(field, reader, options) {\n const length = reader.uint32(), end = reader.pos + length;\n let key, val;\n while (reader.pos < end) {\n let [fieldNo] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = readScalar(reader, field.K);\n break;\n case 2:\n switch (field.V.kind) {\n case \"scalar\":\n val = readScalar(reader, field.V.T);\n break;\n case \"enum\":\n val = reader.int32();\n break;\n case \"message\":\n val = readMessageField(reader, new field.V.T(), options, undefined);\n break;\n }\n break;\n }\n }\n if (key === undefined) {\n let keyRaw = scalarDefaultValue(field.K, LongType.BIGINT);\n key =\n field.K == ScalarType.BOOL\n ? keyRaw.toString()\n : keyRaw;\n }\n if (typeof key != \"string\" && typeof key != \"number\") {\n key = key.toString();\n }\n if (val === undefined) {\n switch (field.V.kind) {\n case \"scalar\":\n val = scalarDefaultValue(field.V.T, LongType.BIGINT);\n break;\n case \"enum\":\n val = 0;\n break;\n case \"message\":\n val = new field.V.T();\n break;\n }\n }\n return [key, val];\n}\n// Read a scalar value, but return 64 bit integral types (int64, uint64,\n// sint64, fixed64, sfixed64) as string instead of bigint.\nexport function readScalarLTString(reader, type) {\n const v = readScalar(reader, type);\n return typeof v == \"bigint\" ? v.toString() : v;\n}\n// Does not use scalarTypeInfo() for better performance.\nfunction readScalar(reader, type) {\n switch (type) {\n case ScalarType.STRING:\n return reader.string();\n case ScalarType.BOOL:\n return reader.bool();\n case ScalarType.DOUBLE:\n return reader.double();\n case ScalarType.FLOAT:\n return reader.float();\n case ScalarType.INT32:\n return reader.int32();\n case ScalarType.INT64:\n return reader.int64();\n case ScalarType.UINT64:\n return reader.uint64();\n case ScalarType.FIXED64:\n return reader.fixed64();\n case ScalarType.BYTES:\n return reader.bytes();\n case ScalarType.FIXED32:\n return reader.fixed32();\n case ScalarType.SFIXED32:\n return reader.sfixed32();\n case ScalarType.SFIXED64:\n return reader.sfixed64();\n case ScalarType.SINT64:\n return reader.sint64();\n case ScalarType.UINT32:\n return reader.uint32();\n case ScalarType.SINT32:\n return reader.sint32();\n }\n}\nexport function writeMapEntry(writer, options, field, key, value) {\n writer.tag(field.no, WireType.LengthDelimited);\n writer.fork();\n // javascript only allows number or string for object properties\n // we convert from our representation to the protobuf type\n let keyValue = key;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- we deliberately handle just the special cases for map keys\n switch (field.K) {\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n keyValue = Number.parseInt(key);\n break;\n case ScalarType.BOOL:\n assert(key == \"true\" || key == \"false\");\n keyValue = key == \"true\";\n break;\n }\n // write key, expecting key field number = 1\n writeScalar(writer, field.K, 1, keyValue, true);\n // write value, expecting value field number = 2\n switch (field.V.kind) {\n case \"scalar\":\n writeScalar(writer, field.V.T, 2, value, true);\n break;\n case \"enum\":\n writeScalar(writer, ScalarType.INT32, 2, value, true);\n break;\n case \"message\":\n writer.tag(2, WireType.LengthDelimited).bytes(value.toBinary(options));\n break;\n }\n writer.join();\n}\nexport function writeMessageField(writer, options, field, value) {\n if (value !== undefined) {\n const message = wrapField(field.T, value);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (field === null || field === void 0 ? void 0 : field.delimited)\n writer\n .tag(field.no, WireType.StartGroup)\n .raw(message.toBinary(options))\n .tag(field.no, WireType.EndGroup);\n else\n writer\n .tag(field.no, WireType.LengthDelimited)\n .bytes(message.toBinary(options));\n }\n}\nexport function writeScalar(writer, type, fieldNo, value, emitIntrinsicDefault) {\n let [wireType, method, isIntrinsicDefault] = scalarTypeInfo(type, value);\n if (!isIntrinsicDefault || emitIntrinsicDefault) {\n writer.tag(fieldNo, wireType)[method](value);\n }\n}\nexport function writePacked(writer, type, fieldNo, value) {\n if (!value.length) {\n return;\n }\n writer.tag(fieldNo, WireType.LengthDelimited).fork();\n let [, method] = scalarTypeInfo(type);\n for (let i = 0; i < value.length; i++) {\n writer[method](value[i]);\n }\n writer.join();\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ScalarType } from \"../field.js\";\nimport { makeBinaryFormatCommon, writeMapEntry, writeMessageField, writePacked, writeScalar, } from \"./binary-format-common.js\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions, prefer-const, no-case-declarations */\nexport function makeBinaryFormatProto3() {\n return Object.assign(Object.assign({}, makeBinaryFormatCommon()), { writeMessage(message, writer, options) {\n const type = message.getType();\n for (const field of type.fields.byNumber()) {\n let value, // this will be our field value, whether it is member of a oneof or regular field\n repeated = field.repeated, localName = field.localName;\n if (field.oneof) {\n const oneof = message[field.oneof.localName];\n if (oneof.case !== localName) {\n continue; // field is not selected, skip\n }\n value = oneof.value;\n }\n else {\n value = message[localName];\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (repeated) {\n if (field.packed) {\n writePacked(writer, scalarType, field.no, value);\n }\n else {\n for (const item of value) {\n writeScalar(writer, scalarType, field.no, item, true);\n }\n }\n }\n else {\n if (value !== undefined) {\n writeScalar(writer, scalarType, field.no, value, !!field.oneof || field.opt);\n }\n }\n break;\n case \"message\":\n if (repeated) {\n for (const item of value) {\n writeMessageField(writer, options, field, item);\n }\n }\n else {\n writeMessageField(writer, options, field, value);\n }\n break;\n case \"map\":\n for (const [key, val] of Object.entries(value)) {\n writeMapEntry(writer, options, field, key, val);\n }\n break;\n }\n }\n if (options.writeUnknownFields) {\n this.writeUnknownFields(message, writer);\n }\n return writer;\n } });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unnecessary-condition, prefer-const */\n// lookup table from base64 character to byte\nlet encTable = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".split(\"\");\n// lookup table from base64 character *code* to byte because lookup by number is fast\nlet decTable = [];\nfor (let i = 0; i < encTable.length; i++)\n decTable[encTable[i].charCodeAt(0)] = i;\n// support base64url variants\ndecTable[\"-\".charCodeAt(0)] = encTable.indexOf(\"+\");\ndecTable[\"_\".charCodeAt(0)] = encTable.indexOf(\"/\");\nexport const protoBase64 = {\n /**\n * Decodes a base64 string to a byte array.\n *\n * - ignores white-space, including line breaks and tabs\n * - allows inner padding (can decode concatenated base64 strings)\n * - does not require padding\n * - understands base64url encoding:\n * \"-\" instead of \"+\",\n * \"_\" instead of \"/\",\n * no padding\n */\n dec(base64Str) {\n // estimate byte size, not accounting for inner padding and whitespace\n let es = (base64Str.length * 3) / 4;\n if (base64Str[base64Str.length - 2] == \"=\")\n es -= 2;\n else if (base64Str[base64Str.length - 1] == \"=\")\n es -= 1;\n let bytes = new Uint8Array(es), bytePos = 0, // position in byte array\n groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // previous byte\n for (let i = 0; i < base64Str.length; i++) {\n b = decTable[base64Str.charCodeAt(i)];\n if (b === undefined) {\n switch (base64Str[i]) {\n // @ts-ignore TS7029: Fallthrough case in switch\n case \"=\":\n groupPos = 0; // reset state when padding found\n // @ts-ignore TS7029: Fallthrough case in switch\n case \"\\n\":\n case \"\\r\":\n case \"\\t\":\n case \" \":\n continue; // skip white-space, and padding\n default:\n throw Error(\"invalid base64 string.\");\n }\n }\n switch (groupPos) {\n case 0:\n p = b;\n groupPos = 1;\n break;\n case 1:\n bytes[bytePos++] = (p << 2) | ((b & 48) >> 4);\n p = b;\n groupPos = 2;\n break;\n case 2:\n bytes[bytePos++] = ((p & 15) << 4) | ((b & 60) >> 2);\n p = b;\n groupPos = 3;\n break;\n case 3:\n bytes[bytePos++] = ((p & 3) << 6) | b;\n groupPos = 0;\n break;\n }\n }\n if (groupPos == 1)\n throw Error(\"invalid base64 string.\");\n return bytes.subarray(0, bytePos);\n },\n /**\n * Encode a byte array to a base64 string.\n */\n enc(bytes) {\n let base64 = \"\", groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // carry over from previous byte\n for (let i = 0; i < bytes.length; i++) {\n b = bytes[i];\n switch (groupPos) {\n case 0:\n base64 += encTable[b >> 2];\n p = (b & 3) << 4;\n groupPos = 1;\n break;\n case 1:\n base64 += encTable[p | (b >> 4)];\n p = (b & 15) << 2;\n groupPos = 2;\n break;\n case 2:\n base64 += encTable[p | (b >> 6)];\n base64 += encTable[b & 63];\n groupPos = 0;\n break;\n }\n }\n // add output padding\n if (groupPos) {\n base64 += encTable[p];\n base64 += \"=\";\n if (groupPos == 1)\n base64 += \"=\";\n }\n return base64;\n },\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\nimport { LongType, ScalarType } from \"../field.js\";\nimport { assert, assertFloat32, assertInt32, assertUInt32 } from \"./assert.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { protoBase64 } from \"../proto-base64.js\";\n/* eslint-disable no-case-declarations, @typescript-eslint/restrict-plus-operands,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\n// Default options for parsing JSON.\nconst jsonReadDefaults = {\n ignoreUnknownFields: false,\n};\n// Default options for serializing to JSON.\nconst jsonWriteDefaults = {\n emitDefaultValues: false,\n enumAsInteger: false,\n useProtoFieldName: false,\n prettySpaces: 0,\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, jsonReadDefaults), options) : jsonReadDefaults;\n}\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, jsonWriteDefaults), options) : jsonWriteDefaults;\n}\nexport function makeJsonFormatCommon(makeWriteField) {\n const writeField = makeWriteField(writeEnum, writeScalar);\n return {\n makeReadOptions,\n makeWriteOptions,\n readMessage(type, json, options, message) {\n if (json == null || Array.isArray(json) || typeof json != \"object\") {\n throw new Error(`cannot decode message ${type.typeName} from JSON: ${this.debug(json)}`);\n }\n message = message !== null && message !== void 0 ? message : new type();\n const oneofSeen = {};\n for (const [jsonKey, jsonValue] of Object.entries(json)) {\n const field = type.fields.findJsonName(jsonKey);\n if (!field) {\n if (!options.ignoreUnknownFields) {\n throw new Error(`cannot decode message ${type.typeName} from JSON: key \"${jsonKey}\" is unknown`);\n }\n continue;\n }\n let localName = field.localName;\n let target = message;\n if (field.oneof) {\n if (jsonValue === null && field.kind == \"scalar\") {\n // see conformance test Required.Proto3.JsonInput.OneofFieldNull{First,Second}\n continue;\n }\n const seen = oneofSeen[field.oneof.localName];\n if (seen) {\n throw new Error(`cannot decode message ${type.typeName} from JSON: multiple keys for oneof \"${field.oneof.name}\" present: \"${seen}\", \"${jsonKey}\"`);\n }\n oneofSeen[field.oneof.localName] = jsonKey;\n target = target[field.oneof.localName] = { case: localName };\n localName = \"value\";\n }\n if (field.repeated) {\n if (jsonValue === null) {\n continue;\n }\n if (!Array.isArray(jsonValue)) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`);\n }\n const targetArray = target[localName];\n for (const jsonItem of jsonValue) {\n if (jsonItem === null) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonItem)}`);\n }\n let val;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- \"map\" is invalid for repeated fields\n switch (field.kind) {\n case \"message\":\n val = field.T.fromJson(jsonItem, options);\n break;\n case \"enum\":\n val = readEnum(field.T, jsonItem, options.ignoreUnknownFields);\n if (val === undefined)\n continue;\n break;\n case \"scalar\":\n try {\n val = readScalar(field.T, jsonItem, field.L);\n }\n catch (e) {\n let m = `cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonItem)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n targetArray.push(val);\n }\n }\n else if (field.kind == \"map\") {\n if (jsonValue === null) {\n continue;\n }\n if (Array.isArray(jsonValue) || typeof jsonValue != \"object\") {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`);\n }\n const targetMap = target[localName];\n for (const [jsonMapKey, jsonMapValue] of Object.entries(jsonValue)) {\n if (jsonMapValue === null) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: map value null`);\n }\n let val;\n switch (field.V.kind) {\n case \"message\":\n val = field.V.T.fromJson(jsonMapValue, options);\n break;\n case \"enum\":\n val = readEnum(field.V.T, jsonMapValue, options.ignoreUnknownFields);\n if (val === undefined)\n continue;\n break;\n case \"scalar\":\n try {\n val = readScalar(field.V.T, jsonMapValue, LongType.BIGINT);\n }\n catch (e) {\n let m = `cannot decode map value for field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n try {\n targetMap[readScalar(field.K, field.K == ScalarType.BOOL\n ? jsonMapKey == \"true\"\n ? true\n : jsonMapKey == \"false\"\n ? false\n : jsonMapKey\n : jsonMapKey, LongType.BIGINT).toString()] = val;\n }\n catch (e) {\n let m = `cannot decode map key for field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n }\n }\n else {\n switch (field.kind) {\n case \"message\":\n const messageType = field.T;\n if (jsonValue === null &&\n messageType.typeName != \"google.protobuf.Value\") {\n if (field.oneof) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: null is invalid for oneof field \"${jsonKey}\"`);\n }\n continue;\n }\n if (target[localName] instanceof Message) {\n target[localName].fromJson(jsonValue, options);\n }\n else {\n target[localName] = messageType.fromJson(jsonValue, options);\n if (messageType.fieldWrapper && !field.oneof) {\n target[localName] = messageType.fieldWrapper.unwrapField(target[localName]);\n }\n }\n break;\n case \"enum\":\n const enumValue = readEnum(field.T, jsonValue, options.ignoreUnknownFields);\n if (enumValue !== undefined) {\n target[localName] = enumValue;\n }\n break;\n case \"scalar\":\n try {\n target[localName] = readScalar(field.T, jsonValue, field.L);\n }\n catch (e) {\n let m = `cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n }\n }\n return message;\n },\n writeMessage(message, options) {\n const type = message.getType();\n const json = {};\n let field;\n try {\n for (const member of type.fields.byMember()) {\n let jsonValue;\n if (member.kind == \"oneof\") {\n const oneof = message[member.localName];\n if (oneof.value === undefined) {\n continue;\n }\n field = member.findField(oneof.case);\n if (!field) {\n throw \"oneof case not found: \" + oneof.case;\n }\n jsonValue = writeField(field, oneof.value, options);\n }\n else {\n field = member;\n jsonValue = writeField(field, message[field.localName], options);\n }\n if (jsonValue !== undefined) {\n json[options.useProtoFieldName ? field.name : field.jsonName] =\n jsonValue;\n }\n }\n }\n catch (e) {\n const m = field\n ? `cannot encode field ${type.typeName}.${field.name} to JSON`\n : `cannot encode message ${type.typeName} to JSON`;\n const r = e instanceof Error ? e.message : String(e);\n throw new Error(m + (r.length > 0 ? `: ${r}` : \"\"));\n }\n return json;\n },\n readScalar,\n writeScalar,\n debug: debugJsonValue,\n };\n}\nfunction debugJsonValue(json) {\n if (json === null) {\n return \"null\";\n }\n switch (typeof json) {\n case \"object\":\n return Array.isArray(json) ? \"array\" : \"object\";\n case \"string\":\n return json.length > 100 ? \"string\" : `\"${json.split('\"').join('\\\\\"')}\"`;\n default:\n return String(json);\n }\n}\n// May throw an error. If the error message is non-blank, it should be shown.\n// It is up to the caller to provide context.\nfunction readScalar(type, json, longType) {\n // every valid case in the switch below returns, and every fall\n // through is regarded as a failure.\n switch (type) {\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n if (json === null)\n return 0.0;\n if (json === \"NaN\")\n return Number.NaN;\n if (json === \"Infinity\")\n return Number.POSITIVE_INFINITY;\n if (json === \"-Infinity\")\n return Number.NEGATIVE_INFINITY;\n if (json === \"\") {\n // empty string is not a number\n break;\n }\n if (typeof json == \"string\" && json.trim().length !== json.length) {\n // extra whitespace\n break;\n }\n if (typeof json != \"string\" && typeof json != \"number\") {\n break;\n }\n const float = Number(json);\n if (Number.isNaN(float)) {\n // not a number\n break;\n }\n if (!Number.isFinite(float)) {\n // infinity and -infinity are handled by string representation above, so this is an error\n break;\n }\n if (type == ScalarType.FLOAT)\n assertFloat32(float);\n return float;\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.UINT32:\n if (json === null)\n return 0;\n let int32;\n if (typeof json == \"number\")\n int32 = json;\n else if (typeof json == \"string\" && json.length > 0) {\n if (json.trim().length === json.length)\n int32 = Number(json);\n }\n if (int32 === undefined)\n break;\n if (type == ScalarType.UINT32)\n assertUInt32(int32);\n else\n assertInt32(int32);\n return int32;\n // int64, fixed64, uint64: JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n if (json === null)\n return protoInt64.zero;\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n const long = protoInt64.parse(json);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n return longType ? long.toString() : long;\n case ScalarType.FIXED64:\n case ScalarType.UINT64:\n if (json === null)\n return protoInt64.zero;\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n const uLong = protoInt64.uParse(json);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n return longType ? uLong.toString() : uLong;\n // bool:\n case ScalarType.BOOL:\n if (json === null)\n return false;\n if (typeof json !== \"boolean\")\n break;\n return json;\n // string:\n case ScalarType.STRING:\n if (json === null)\n return \"\";\n if (typeof json !== \"string\") {\n break;\n }\n // A string must always contain UTF-8 encoded or 7-bit ASCII.\n // We validate with encodeURIComponent, which appears to be the fastest widely available option.\n try {\n encodeURIComponent(json);\n }\n catch (e) {\n throw new Error(\"invalid UTF8\");\n }\n return json;\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n if (json === null || json === \"\")\n return new Uint8Array(0);\n if (typeof json !== \"string\")\n break;\n return protoBase64.dec(json);\n }\n throw new Error();\n}\nfunction readEnum(type, json, ignoreUnknownFields) {\n if (json === null) {\n // proto3 requires 0 to be default value for all enums\n return 0;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (typeof json) {\n case \"number\":\n if (Number.isInteger(json)) {\n return json;\n }\n break;\n case \"string\":\n const value = type.findName(json);\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n if (value || ignoreUnknownFields) {\n return value === null || value === void 0 ? void 0 : value.no;\n }\n break;\n }\n throw new Error(`cannot decode enum ${type.typeName} from JSON: ${debugJsonValue(json)}`);\n}\nfunction writeEnum(type, value, emitIntrinsicDefault, enumAsInteger) {\n var _a;\n if (value === undefined) {\n return value;\n }\n if (value === 0 && !emitIntrinsicDefault) {\n // proto3 requires 0 to be default value for all enums\n return undefined;\n }\n if (enumAsInteger) {\n return value;\n }\n if (type.typeName == \"google.protobuf.NullValue\") {\n return null;\n }\n const val = type.findNumber(value);\n return (_a = val === null || val === void 0 ? void 0 : val.name) !== null && _a !== void 0 ? _a : value; // if we don't know the enum value, just return the number\n}\nfunction writeScalar(type, value, emitIntrinsicDefault) {\n if (value === undefined) {\n return undefined;\n }\n switch (type) {\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n assert(typeof value == \"number\");\n return value != 0 || emitIntrinsicDefault ? value : undefined;\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.FLOAT:\n // assertFloat32(value);\n case ScalarType.DOUBLE: // eslint-disable-line no-fallthrough\n assert(typeof value == \"number\");\n if (Number.isNaN(value))\n return \"NaN\";\n if (value === Number.POSITIVE_INFINITY)\n return \"Infinity\";\n if (value === Number.NEGATIVE_INFINITY)\n return \"-Infinity\";\n return value !== 0 || emitIntrinsicDefault ? value : undefined;\n // string:\n case ScalarType.STRING:\n assert(typeof value == \"string\");\n return value.length > 0 || emitIntrinsicDefault ? value : undefined;\n // bool:\n case ScalarType.BOOL:\n assert(typeof value == \"boolean\");\n return value || emitIntrinsicDefault ? value : undefined;\n // JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n assert(typeof value == \"bigint\" ||\n typeof value == \"string\" ||\n typeof value == \"number\");\n // We use implicit conversion with `value != 0` to catch both 0n and \"0\"\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return emitIntrinsicDefault || value != 0\n ? value.toString(10)\n : undefined;\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n assert(value instanceof Uint8Array);\n return emitIntrinsicDefault || value.byteLength > 0\n ? protoBase64.enc(value)\n : undefined;\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { wrapField } from \"./field-wrapper.js\";\nimport { assert } from \"./assert.js\";\nimport { makeJsonFormatCommon } from \"./json-format-common.js\";\n/* eslint-disable no-case-declarations, @typescript-eslint/restrict-plus-operands,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nexport function makeJsonFormatProto3() {\n return makeJsonFormatCommon((writeEnum, writeScalar) => {\n return function writeField(field, value, options) {\n if (field.kind == \"map\") {\n const jsonObj = {};\n switch (field.V.kind) {\n case \"scalar\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n const val = writeScalar(field.V.T, entryValue, true);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"message\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n // JSON standard allows only (double quoted) string as property key\n jsonObj[entryKey.toString()] = entryValue.toJson(options);\n }\n break;\n case \"enum\":\n const enumType = field.V.T;\n for (const [entryKey, entryValue] of Object.entries(value)) {\n assert(entryValue === undefined || typeof entryValue == \"number\");\n const val = writeEnum(enumType, entryValue, true, options.enumAsInteger);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n }\n return options.emitDefaultValues || Object.keys(jsonObj).length > 0\n ? jsonObj\n : undefined;\n }\n else if (field.repeated) {\n const jsonArr = [];\n switch (field.kind) {\n case \"scalar\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeScalar(field.T, value[i], true));\n }\n break;\n case \"enum\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeEnum(field.T, value[i], true, options.enumAsInteger));\n }\n break;\n case \"message\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(wrapField(field.T, value[i]).toJson(options));\n }\n break;\n }\n return options.emitDefaultValues || jsonArr.length > 0\n ? jsonArr\n : undefined;\n }\n else {\n switch (field.kind) {\n case \"scalar\":\n return writeScalar(field.T, value, !!field.oneof || field.opt || options.emitDefaultValues);\n case \"enum\":\n return writeEnum(field.T, value, !!field.oneof || field.opt || options.emitDefaultValues, options.enumAsInteger);\n case \"message\":\n return value !== undefined\n ? wrapField(field.T, value).toJson(options)\n : undefined;\n }\n }\n };\n });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { setEnumType } from \"./enum.js\";\nimport { Message } from \"../message.js\";\nimport { ScalarType } from \"../field.js\";\nimport { scalarEquals } from \"./scalars.js\";\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-argument,no-case-declarations */\nexport function makeUtilCommon() {\n return {\n setEnumType,\n initPartial(source, target) {\n if (source === undefined) {\n return;\n }\n const type = target.getType();\n for (const member of type.fields.byMember()) {\n const localName = member.localName, t = target, s = source;\n if (s[localName] === undefined) {\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n const sk = s[localName].case;\n if (sk === undefined) {\n continue;\n }\n const sourceField = member.findField(sk);\n let val = s[localName].value;\n if (sourceField &&\n sourceField.kind == \"message\" &&\n !(val instanceof sourceField.T)) {\n val = new sourceField.T(val);\n }\n else if (sourceField &&\n sourceField.kind === \"scalar\" &&\n sourceField.T === ScalarType.BYTES) {\n val = toU8Arr(val);\n }\n t[localName] = { case: sk, value: val };\n break;\n case \"scalar\":\n case \"enum\":\n let copy = s[localName];\n if (member.T === ScalarType.BYTES) {\n copy = member.repeated\n ? copy.map(toU8Arr)\n : toU8Arr(copy);\n }\n t[localName] = copy;\n break;\n case \"map\":\n switch (member.V.kind) {\n case \"scalar\":\n case \"enum\":\n if (member.V.T === ScalarType.BYTES) {\n for (const [k, v] of Object.entries(s[localName])) {\n t[localName][k] = toU8Arr(v);\n }\n }\n else {\n Object.assign(t[localName], s[localName]);\n }\n break;\n case \"message\":\n const messageType = member.V.T;\n for (const k of Object.keys(s[localName])) {\n let val = s[localName][k];\n if (!messageType.fieldWrapper) {\n // We only take partial input for messages that are not a wrapper type.\n // For those messages, we recursively normalize the partial input.\n val = new messageType(val);\n }\n t[localName][k] = val;\n }\n break;\n }\n break;\n case \"message\":\n const mt = member.T;\n if (member.repeated) {\n t[localName] = s[localName].map((val) => val instanceof mt ? val : new mt(val));\n }\n else if (s[localName] !== undefined) {\n const val = s[localName];\n if (mt.fieldWrapper) {\n if (\n // We can't use BytesValue.typeName as that will create a circular import\n mt.typeName === \"google.protobuf.BytesValue\") {\n t[localName] = toU8Arr(val);\n }\n else {\n t[localName] = val;\n }\n }\n else {\n t[localName] = val instanceof mt ? val : new mt(val);\n }\n }\n break;\n }\n }\n },\n equals(type, a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return type.fields.byMember().every((m) => {\n const va = a[m.localName];\n const vb = b[m.localName];\n if (m.repeated) {\n if (va.length !== vb.length) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- repeated fields are never \"map\"\n switch (m.kind) {\n case \"message\":\n return va.every((a, i) => m.T.equals(a, vb[i]));\n case \"scalar\":\n return va.every((a, i) => scalarEquals(m.T, a, vb[i]));\n case \"enum\":\n return va.every((a, i) => scalarEquals(ScalarType.INT32, a, vb[i]));\n }\n throw new Error(`repeated cannot contain ${m.kind}`);\n }\n switch (m.kind) {\n case \"message\":\n return m.T.equals(va, vb);\n case \"enum\":\n return scalarEquals(ScalarType.INT32, va, vb);\n case \"scalar\":\n return scalarEquals(m.T, va, vb);\n case \"oneof\":\n if (va.case !== vb.case) {\n return false;\n }\n const s = m.findField(va.case);\n if (s === undefined) {\n return true;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- oneof fields are never \"map\"\n switch (s.kind) {\n case \"message\":\n return s.T.equals(va.value, vb.value);\n case \"enum\":\n return scalarEquals(ScalarType.INT32, va.value, vb.value);\n case \"scalar\":\n return scalarEquals(s.T, va.value, vb.value);\n }\n throw new Error(`oneof cannot contain ${s.kind}`);\n case \"map\":\n const keys = Object.keys(va).concat(Object.keys(vb));\n switch (m.V.kind) {\n case \"message\":\n const messageType = m.V.T;\n return keys.every((k) => messageType.equals(va[k], vb[k]));\n case \"enum\":\n return keys.every((k) => scalarEquals(ScalarType.INT32, va[k], vb[k]));\n case \"scalar\":\n const scalarType = m.V.T;\n return keys.every((k) => scalarEquals(scalarType, va[k], vb[k]));\n }\n break;\n }\n });\n },\n clone(message) {\n const type = message.getType(), target = new type(), any = target;\n for (const member of type.fields.byMember()) {\n const source = message[member.localName];\n let copy;\n if (member.repeated) {\n copy = source.map(cloneSingularField);\n }\n else if (member.kind == \"map\") {\n copy = any[member.localName];\n for (const [key, v] of Object.entries(source)) {\n copy[key] = cloneSingularField(v);\n }\n }\n else if (member.kind == \"oneof\") {\n const f = member.findField(source.case);\n copy = f\n ? { case: source.case, value: cloneSingularField(source.value) }\n : { case: undefined };\n }\n else {\n copy = cloneSingularField(source);\n }\n any[member.localName] = copy;\n }\n return target;\n },\n };\n}\n// clone a single field value - i.e. the element type of repeated fields, the value type of maps\nfunction cloneSingularField(value) {\n if (value === undefined) {\n return value;\n }\n if (value instanceof Message) {\n return value.clone();\n }\n if (value instanceof Uint8Array) {\n const c = new Uint8Array(value.byteLength);\n c.set(value);\n return c;\n }\n return value;\n}\n// converts any ArrayLike to Uint8Array if necessary.\nfunction toU8Arr(input) {\n return input instanceof Uint8Array ? input : new Uint8Array(input);\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nexport class InternalFieldList {\n constructor(fields, normalizer) {\n this._fields = fields;\n this._normalizer = normalizer;\n }\n findJsonName(jsonName) {\n if (!this.jsonNames) {\n const t = {};\n for (const f of this.list()) {\n t[f.jsonName] = t[f.name] = f;\n }\n this.jsonNames = t;\n }\n return this.jsonNames[jsonName];\n }\n find(fieldNo) {\n if (!this.numbers) {\n const t = {};\n for (const f of this.list()) {\n t[f.no] = f;\n }\n this.numbers = t;\n }\n return this.numbers[fieldNo];\n }\n list() {\n if (!this.all) {\n this.all = this._normalizer(this._fields);\n }\n return this.all;\n }\n byNumber() {\n if (!this.numbersAsc) {\n this.numbersAsc = this.list()\n .concat()\n .sort((a, b) => a.no - b.no);\n }\n return this.numbersAsc;\n }\n byMember() {\n if (!this.members) {\n this.members = [];\n const a = this.members;\n let o;\n for (const f of this.list()) {\n if (f.oneof) {\n if (f.oneof !== o) {\n o = f.oneof;\n a.push(o);\n }\n }\n else {\n a.push(f);\n }\n }\n }\n return this.members;\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Returns the name of a protobuf element in generated code.\n *\n * Field names - including oneofs - are converted to lowerCamelCase. For\n * messages, enumerations and services, the package name is stripped from\n * the type name. For nested messages and enumerations, the names are joined\n * with an underscore. For methods, the first character is made lowercase.\n */\nexport function localName(desc) {\n switch (desc.kind) {\n case \"field\":\n return localFieldName(desc.name, desc.oneof !== undefined);\n case \"oneof\":\n return localOneofName(desc.name);\n case \"enum\":\n case \"message\":\n case \"service\": {\n const pkg = desc.file.proto.package;\n const offset = pkg === undefined ? 0 : pkg.length + 1;\n const name = desc.typeName.substring(offset).replace(/\\./g, \"_\");\n // For services, we only care about safe identifiers, not safe object properties,\n // but we have shipped v1 with a bug that respected object properties, and we\n // do not want to introduce a breaking change, so we continue to escape for\n // safe object properties.\n // See https://github.com/bufbuild/protobuf-es/pull/391\n return safeObjectProperty(safeIdentifier(name));\n }\n case \"enum_value\": {\n const sharedPrefix = desc.parent.sharedPrefix;\n if (sharedPrefix === undefined) {\n return desc.name;\n }\n const name = desc.name.substring(sharedPrefix.length);\n return safeObjectProperty(name);\n }\n case \"rpc\": {\n let name = desc.name;\n if (name.length == 0) {\n return name;\n }\n name = name[0].toLowerCase() + name.substring(1);\n return safeObjectProperty(name);\n }\n }\n}\n/**\n * Returns the name of a field in generated code.\n */\nexport function localFieldName(protoName, inOneof) {\n const name = protoCamelCase(protoName);\n if (inOneof) {\n // oneof member names are not properties, but values of the `case` property.\n return name;\n }\n return safeObjectProperty(safeMessageProperty(name));\n}\n/**\n * Returns the name of a oneof group in generated code.\n */\nexport function localOneofName(protoName) {\n return localFieldName(protoName, false);\n}\n/**\n * Returns the JSON name for a protobuf field, exactly like protoc does.\n */\nexport const fieldJsonName = protoCamelCase;\n/**\n * Finds a prefix shared by enum values, for example `MY_ENUM_` for\n * `enum MyEnum {MY_ENUM_A=0; MY_ENUM_B=1;}`.\n */\nexport function findEnumSharedPrefix(enumName, valueNames) {\n const prefix = camelToSnakeCase(enumName) + \"_\";\n for (const name of valueNames) {\n if (!name.toLowerCase().startsWith(prefix)) {\n return undefined;\n }\n const shortName = name.substring(prefix.length);\n if (shortName.length == 0) {\n return undefined;\n }\n if (/^\\d/.test(shortName)) {\n // identifiers must not start with numbers\n return undefined;\n }\n }\n return prefix;\n}\n/**\n * Converts lowerCamelCase or UpperCamelCase into lower_snake_case.\n * This is used to find shared prefixes in an enum.\n */\nfunction camelToSnakeCase(camel) {\n return (camel.substring(0, 1) + camel.substring(1).replace(/[A-Z]/g, (c) => \"_\" + c)).toLowerCase();\n}\n/**\n * Converts snake_case to protoCamelCase according to the convention\n * used by protoc to convert a field name to a JSON name.\n */\nfunction protoCamelCase(snakeCase) {\n let capNext = false;\n const b = [];\n for (let i = 0; i < snakeCase.length; i++) {\n let c = snakeCase.charAt(i);\n switch (c) {\n case \"_\":\n capNext = true;\n break;\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n b.push(c);\n capNext = false;\n break;\n default:\n if (capNext) {\n capNext = false;\n c = c.toUpperCase();\n }\n b.push(c);\n break;\n }\n }\n return b.join(\"\");\n}\n/**\n * Names that cannot be used for identifiers, such as class names,\n * but _can_ be used for object properties.\n */\nconst reservedIdentifiers = new Set([\n // ECMAScript 2015 keywords\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"const\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"delete\",\n \"do\",\n \"else\",\n \"export\",\n \"extends\",\n \"false\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"import\",\n \"in\",\n \"instanceof\",\n \"new\",\n \"null\",\n \"return\",\n \"super\",\n \"switch\",\n \"this\",\n \"throw\",\n \"true\",\n \"try\",\n \"typeof\",\n \"var\",\n \"void\",\n \"while\",\n \"with\",\n \"yield\",\n // ECMAScript 2015 future reserved keywords\n \"enum\",\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n // Class name cannot be 'Object' when targeting ES5 with module CommonJS\n \"Object\",\n // TypeScript keywords that cannot be used for types (as opposed to variables)\n \"bigint\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n // Identifiers reserved for the runtime, so we can generate legible code\n \"globalThis\",\n \"Uint8Array\",\n \"Partial\",\n]);\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nconst reservedObjectProperties = new Set([\n // names reserved by JavaScript\n \"constructor\",\n \"toString\",\n \"toJSON\",\n \"valueOf\",\n]);\n/**\n * Names that cannot be used for object properties because they are reserved\n * by the runtime.\n */\nconst reservedMessageProperties = new Set([\n // names reserved by the runtime\n \"getType\",\n \"clone\",\n \"equals\",\n \"fromBinary\",\n \"fromJson\",\n \"fromJsonString\",\n \"toBinary\",\n \"toJson\",\n \"toJsonString\",\n // names reserved by the runtime for the future\n \"toObject\",\n]);\nconst fallback = (name) => `${name}$`;\n/**\n * Will wrap names that are Object prototype properties or names reserved\n * for `Message`s.\n */\nconst safeMessageProperty = (name) => {\n if (reservedMessageProperties.has(name)) {\n return fallback(name);\n }\n return name;\n};\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nexport const safeObjectProperty = (name) => {\n if (reservedObjectProperties.has(name)) {\n return fallback(name);\n }\n return name;\n};\n/**\n * Names that can be used for identifiers or class properties\n */\nexport const safeIdentifier = (name) => {\n if (reservedIdentifiers.has(name)) {\n return fallback(name);\n }\n return name;\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { localOneofName } from \"./names.js\";\nimport { assert } from \"./assert.js\";\nexport class InternalOneofInfo {\n constructor(name) {\n this.kind = \"oneof\";\n this.repeated = false;\n this.packed = false;\n this.opt = false;\n this.default = undefined;\n this.fields = [];\n this.name = name;\n this.localName = localOneofName(name);\n }\n addField(field) {\n assert(field.oneof === this, `field ${field.name} not one of ${this.name}`);\n this.fields.push(field);\n }\n findField(localName) {\n if (!this._lookup) {\n this._lookup = Object.create(null);\n for (let i = 0; i < this.fields.length; i++) {\n this._lookup[this.fields[i].localName] = this.fields[i];\n }\n }\n return this._lookup[localName];\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { makeProtoRuntime } from \"./private/proto-runtime.js\";\nimport { makeBinaryFormatProto3 } from \"./private/binary-format-proto3.js\";\nimport { makeJsonFormatProto3 } from \"./private/json-format-proto3.js\";\nimport { makeUtilCommon } from \"./private/util-common.js\";\nimport { InternalFieldList } from \"./private/field-list.js\";\nimport { scalarDefaultValue } from \"./private/scalars.js\";\nimport { LongType, ScalarType } from \"./field.js\";\nimport { InternalOneofInfo } from \"./private/field.js\";\nimport { localFieldName, fieldJsonName } from \"./private/names.js\";\n/**\n * Provides functionality for messages defined with the proto3 syntax.\n */\nexport const proto3 = makeProtoRuntime(\"proto3\", makeJsonFormatProto3(), makeBinaryFormatProto3(), Object.assign(Object.assign({}, makeUtilCommon()), { newFieldList(fields) {\n return new InternalFieldList(fields, normalizeFieldInfosProto3);\n },\n initFields(target) {\n for (const member of target.getType().fields.byMember()) {\n if (member.opt) {\n continue;\n }\n const name = member.localName, t = target;\n if (member.repeated) {\n t[name] = [];\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n t[name] = { case: undefined };\n break;\n case \"enum\":\n t[name] = 0;\n break;\n case \"map\":\n t[name] = {};\n break;\n case \"scalar\":\n t[name] = scalarDefaultValue(member.T, member.L); // eslint-disable-line @typescript-eslint/no-unsafe-assignment\n break;\n case \"message\":\n // message fields are always optional in proto3\n break;\n }\n }\n } }));\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nfunction normalizeFieldInfosProto3(fieldInfos) {\n var _a, _b, _c, _d;\n const r = [];\n let o;\n for (const field of typeof fieldInfos == \"function\"\n ? fieldInfos()\n : fieldInfos) {\n const f = field;\n f.localName = localFieldName(field.name, field.oneof !== undefined);\n f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : fieldJsonName(field.name);\n f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false;\n if (field.kind == \"scalar\") {\n f.L = (_c = field.L) !== null && _c !== void 0 ? _c : LongType.BIGINT;\n }\n // We do not surface options at this time\n // f.options = field.options ?? emptyReadonlyObject;\n if (field.oneof !== undefined) {\n const ooname = typeof field.oneof == \"string\" ? field.oneof : field.oneof.name;\n if (!o || o.name != ooname) {\n o = new InternalOneofInfo(ooname);\n }\n f.oneof = o;\n o.addField(f);\n }\n // proto3 specific:\n if (field.kind == \"message\") {\n f.delimited = false;\n }\n // From the proto3 language guide:\n // > In proto3, repeated fields of scalar numeric types are packed by default.\n // This information is incomplete - according to the conformance tests, BOOL\n // and ENUM are packed by default as well. This means only STRING and BYTES\n // are not packed by default, which makes sense because they are length-delimited.\n f.packed =\n (_d = field.packed) !== null && _d !== void 0 ? _d : (field.kind == \"enum\" ||\n (field.kind == \"scalar\" &&\n field.T != ScalarType.BYTES &&\n field.T != ScalarType.STRING));\n r.push(f);\n }\n return r;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ScalarType } from \"../field.js\";\nimport { makeBinaryFormatCommon, writeMapEntry, writeMessageField, writePacked, writeScalar, } from \"./binary-format-common.js\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions, no-case-declarations, prefer-const */\nexport function makeBinaryFormatProto2() {\n return Object.assign(Object.assign({}, makeBinaryFormatCommon()), { writeMessage(message, writer, options) {\n const type = message.getType();\n let field;\n try {\n for (field of type.fields.byNumber()) {\n let value, // this will be our field value, whether it is member of a oneof or not\n repeated = field.repeated, localName = field.localName;\n if (field.oneof) {\n const oneof = message[field.oneof.localName];\n if (oneof.case !== localName) {\n continue; // field is not selected, skip\n }\n value = oneof.value;\n }\n else {\n value = message[localName];\n // In contrast to proto3, we raise an error if a non-optional (proto2 required)\n // field is missing a value.\n if (value === undefined && !field.oneof && !field.opt) {\n throw new Error(`cannot encode field ${type.typeName}.${field.name} to binary: required field not set`);\n }\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (repeated) {\n if (field.packed) {\n writePacked(writer, scalarType, field.no, value);\n }\n else {\n for (const item of value) {\n writeScalar(writer, scalarType, field.no, item, true);\n }\n }\n }\n else {\n if (value !== undefined) {\n // In contrast to proto3, we do not skip intrinsic default values.\n // Explicit default values are not special cased either.\n writeScalar(writer, scalarType, field.no, value, true);\n }\n }\n break;\n case \"message\":\n if (repeated) {\n for (const item of value) {\n writeMessageField(writer, options, field, item);\n }\n }\n else {\n writeMessageField(writer, options, field, value);\n }\n break;\n case \"map\":\n for (const [key, val] of Object.entries(value)) {\n writeMapEntry(writer, options, field, key, val);\n }\n break;\n }\n }\n }\n catch (e) {\n let m = field\n ? `cannot encode field ${type.typeName}.${field === null || field === void 0 ? void 0 : field.name} to binary`\n : `cannot encode message ${type.typeName} to binary`;\n let r = e instanceof Error ? e.message : String(e);\n throw new Error(m + (r.length > 0 ? `: ${r}` : \"\"));\n }\n if (options.writeUnknownFields) {\n this.writeUnknownFields(message, writer);\n }\n return writer;\n } });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { wrapField } from \"./field-wrapper.js\";\nimport { assert } from \"./assert.js\";\nimport { makeJsonFormatCommon } from \"./json-format-common.js\";\n/* eslint-disable no-case-declarations, @typescript-eslint/restrict-plus-operands,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nexport function makeJsonFormatProto2() {\n return makeJsonFormatCommon((writeEnum, writeScalar) => {\n return function writeField(field, value, options) {\n if (field.kind == \"map\") {\n const jsonObj = {};\n switch (field.V.kind) {\n case \"scalar\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n const val = writeScalar(field.V.T, entryValue, true);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"message\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n // JSON standard allows only (double quoted) string as property key\n jsonObj[entryKey.toString()] = entryValue.toJson(options);\n }\n break;\n case \"enum\":\n const enumType = field.V.T;\n for (const [entryKey, entryValue] of Object.entries(value)) {\n assert(entryValue === undefined || typeof entryValue == \"number\");\n const val = writeEnum(enumType, entryValue, true, options.enumAsInteger);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n }\n return options.emitDefaultValues || Object.keys(jsonObj).length > 0\n ? jsonObj\n : undefined;\n }\n else if (field.repeated) {\n const jsonArr = [];\n switch (field.kind) {\n case \"scalar\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeScalar(field.T, value[i], true));\n }\n break;\n case \"enum\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeEnum(field.T, value[i], true, options.enumAsInteger));\n }\n break;\n case \"message\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(value[i].toJson(options));\n }\n break;\n }\n return options.emitDefaultValues || jsonArr.length > 0\n ? jsonArr\n : undefined;\n }\n else {\n // In contrast to proto3, we raise an error if a non-optional (proto2 required)\n // field is missing a value.\n if (value === undefined) {\n if (!field.oneof && !field.opt) {\n throw `required field not set`;\n }\n return undefined;\n }\n switch (field.kind) {\n case \"scalar\":\n // In contrast to proto3, we do not skip intrinsic default values.\n // Explicit default values are not special cased either.\n return writeScalar(field.T, value, true);\n case \"enum\":\n // In contrast to proto3, we do not skip intrinsic default values.\n // Explicit default values are not special cased either.\n return writeEnum(field.T, value, true, options.enumAsInteger);\n case \"message\":\n return wrapField(field.T, value).toJson(options);\n }\n }\n };\n });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { makeProtoRuntime } from \"./private/proto-runtime.js\";\nimport { makeBinaryFormatProto2 } from \"./private/binary-format-proto2.js\";\nimport { makeUtilCommon } from \"./private/util-common.js\";\nimport { InternalFieldList } from \"./private/field-list.js\";\nimport { InternalOneofInfo } from \"./private/field.js\";\nimport { localFieldName, fieldJsonName } from \"./private/names.js\";\nimport { makeJsonFormatProto2 } from \"./private/json-format-proto2.js\";\nimport { LongType } from \"./field.js\";\n/**\n * Provides functionality for messages defined with the proto2 syntax.\n */\nexport const proto2 = makeProtoRuntime(\"proto2\", makeJsonFormatProto2(), makeBinaryFormatProto2(), Object.assign(Object.assign({}, makeUtilCommon()), { newFieldList(fields) {\n return new InternalFieldList(fields, normalizeFieldInfosProto2);\n },\n initFields(target) {\n for (const member of target.getType().fields.byMember()) {\n const name = member.localName, t = target;\n if (member.repeated) {\n t[name] = [];\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n t[name] = { case: undefined };\n break;\n case \"map\":\n t[name] = {};\n break;\n case \"scalar\":\n case \"enum\":\n case \"message\":\n // In contrast to proto3, enum and scalar fields have no intrinsic default value,\n // only an optional explicit default value.\n // Unlike proto3 intrinsic default values, proto2 explicit default values are not\n // set on construction, because they are not omitted on the wire. If we did set\n // default values on construction, a deserialize-serialize round-trip would add\n // fields to a message.\n break;\n }\n }\n } }));\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nfunction normalizeFieldInfosProto2(fieldInfos) {\n var _a, _b, _c, _d, _e;\n const r = [];\n let o;\n for (const field of typeof fieldInfos == \"function\"\n ? fieldInfos()\n : fieldInfos) {\n const f = field;\n f.localName = localFieldName(field.name, field.oneof !== undefined);\n f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : fieldJsonName(field.name);\n f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false;\n if (field.kind == \"scalar\") {\n f.L = (_c = field.L) !== null && _c !== void 0 ? _c : LongType.BIGINT;\n }\n // We do not surface options at this time\n // f.options = field.options ?? emptyReadonlyObject;\n if (field.oneof !== undefined) {\n const ooname = typeof field.oneof == \"string\" ? field.oneof : field.oneof.name;\n if (!o || o.name != ooname) {\n o = new InternalOneofInfo(ooname);\n }\n f.oneof = o;\n o.addField(f);\n }\n // proto2 specific:\n if (field.kind == \"message\") {\n f.delimited = (_d = field.delimited) !== null && _d !== void 0 ? _d : false;\n }\n // In contrast to proto3, repeated fields are unpacked except when explicitly specified.\n f.packed = (_e = field.packed) !== null && _e !== void 0 ? _e : false;\n r.push(f);\n }\n return r;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * MethodKind represents the four method types that can be declared in\n * protobuf with the `stream` keyword:\n *\n * 1. Unary: rpc (Input) returns (Output)\n * 2. ServerStreaming: rpc (Input) returns (stream Output)\n * 3. ClientStreaming: rpc (stream Input) returns (Output)\n * 4. BiDiStreaming: rpc (stream Input) returns (stream Output)\n */\nexport var MethodKind;\n(function (MethodKind) {\n MethodKind[MethodKind[\"Unary\"] = 0] = \"Unary\";\n MethodKind[MethodKind[\"ServerStreaming\"] = 1] = \"ServerStreaming\";\n MethodKind[MethodKind[\"ClientStreaming\"] = 2] = \"ClientStreaming\";\n MethodKind[MethodKind[\"BiDiStreaming\"] = 3] = \"BiDiStreaming\";\n})(MethodKind || (MethodKind = {}));\n/**\n * Is this method side-effect-free (or safe in HTTP parlance), or just\n * idempotent, or neither? HTTP based RPC implementation may choose GET verb\n * for safe methods, and PUT verb for idempotent methods instead of the\n * default POST.\n *\n * This enum matches the protobuf enum google.protobuf.MethodOptions.IdempotencyLevel,\n * defined in the well-known type google/protobuf/descriptor.proto, but\n * drops UNKNOWN.\n */\nexport var MethodIdempotency;\n(function (MethodIdempotency) {\n /**\n * Idempotent, no side effects.\n */\n MethodIdempotency[MethodIdempotency[\"NoSideEffects\"] = 1] = \"NoSideEffects\";\n /**\n * Idempotent, but may have side effects.\n */\n MethodIdempotency[MethodIdempotency[\"Idempotent\"] = 2] = \"Idempotent\";\n})(MethodIdempotency || (MethodIdempotency = {}));\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// Author: kenton@google.com (Kenton Varda)\n// Based on original Protocol Buffers design by\n// Sanjay Ghemawat, Jeff Dean, and others.\n//\n// The messages in this file describe the definitions found in .proto files.\n// A valid .proto file can be translated directly to a FileDescriptorProto\n// without any other information (e.g. without reading its imports).\n// @generated by protoc-gen-es v1.6.0 with parameter \"bootstrap_wkt=true,ts_nocheck=false,target=ts\"\n// @generated from file google/protobuf/descriptor.proto (package google.protobuf, syntax proto2)\n/* eslint-disable */\nimport { proto2 } from \"../../proto2.js\";\nimport { Message } from \"../../message.js\";\n/**\n * The full set of known editions.\n *\n * @generated from enum google.protobuf.Edition\n */\nexport var Edition;\n(function (Edition) {\n /**\n * A placeholder for an unknown edition value.\n *\n * @generated from enum value: EDITION_UNKNOWN = 0;\n */\n Edition[Edition[\"EDITION_UNKNOWN\"] = 0] = \"EDITION_UNKNOWN\";\n /**\n * Legacy syntax \"editions\". These pre-date editions, but behave much like\n * distinct editions. These can't be used to specify the edition of proto\n * files, but feature definitions must supply proto2/proto3 defaults for\n * backwards compatibility.\n *\n * @generated from enum value: EDITION_PROTO2 = 998;\n */\n Edition[Edition[\"EDITION_PROTO2\"] = 998] = \"EDITION_PROTO2\";\n /**\n * @generated from enum value: EDITION_PROTO3 = 999;\n */\n Edition[Edition[\"EDITION_PROTO3\"] = 999] = \"EDITION_PROTO3\";\n /**\n * Editions that have been released. The specific values are arbitrary and\n * should not be depended on, but they will always be time-ordered for easy\n * comparison.\n *\n * @generated from enum value: EDITION_2023 = 1000;\n */\n Edition[Edition[\"EDITION_2023\"] = 1000] = \"EDITION_2023\";\n /**\n * Placeholder editions for testing feature resolution. These should not be\n * used or relyed on outside of tests.\n *\n * @generated from enum value: EDITION_1_TEST_ONLY = 1;\n */\n Edition[Edition[\"EDITION_1_TEST_ONLY\"] = 1] = \"EDITION_1_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_2_TEST_ONLY = 2;\n */\n Edition[Edition[\"EDITION_2_TEST_ONLY\"] = 2] = \"EDITION_2_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99997_TEST_ONLY = 99997;\n */\n Edition[Edition[\"EDITION_99997_TEST_ONLY\"] = 99997] = \"EDITION_99997_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99998_TEST_ONLY = 99998;\n */\n Edition[Edition[\"EDITION_99998_TEST_ONLY\"] = 99998] = \"EDITION_99998_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99999_TEST_ONLY = 99999;\n */\n Edition[Edition[\"EDITION_99999_TEST_ONLY\"] = 99999] = \"EDITION_99999_TEST_ONLY\";\n})(Edition || (Edition = {}));\n// Retrieve enum metadata with: proto2.getEnumType(Edition)\nproto2.util.setEnumType(Edition, \"google.protobuf.Edition\", [\n { no: 0, name: \"EDITION_UNKNOWN\" },\n { no: 998, name: \"EDITION_PROTO2\" },\n { no: 999, name: \"EDITION_PROTO3\" },\n { no: 1000, name: \"EDITION_2023\" },\n { no: 1, name: \"EDITION_1_TEST_ONLY\" },\n { no: 2, name: \"EDITION_2_TEST_ONLY\" },\n { no: 99997, name: \"EDITION_99997_TEST_ONLY\" },\n { no: 99998, name: \"EDITION_99998_TEST_ONLY\" },\n { no: 99999, name: \"EDITION_99999_TEST_ONLY\" },\n]);\n/**\n * The protocol compiler can output a FileDescriptorSet containing the .proto\n * files it parses.\n *\n * @generated from message google.protobuf.FileDescriptorSet\n */\nexport class FileDescriptorSet extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FileDescriptorProto file = 1;\n */\n this.file = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FileDescriptorSet().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FileDescriptorSet().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FileDescriptorSet().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FileDescriptorSet, a, b);\n }\n}\nFileDescriptorSet.runtime = proto2;\nFileDescriptorSet.typeName = \"google.protobuf.FileDescriptorSet\";\nFileDescriptorSet.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"file\", kind: \"message\", T: FileDescriptorProto, repeated: true },\n]);\n/**\n * Describes a complete .proto file.\n *\n * @generated from message google.protobuf.FileDescriptorProto\n */\nexport class FileDescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * Names of files imported by this file.\n *\n * @generated from field: repeated string dependency = 3;\n */\n this.dependency = [];\n /**\n * Indexes of the public imported files in the dependency list above.\n *\n * @generated from field: repeated int32 public_dependency = 10;\n */\n this.publicDependency = [];\n /**\n * Indexes of the weak imported files in the dependency list.\n * For Google-internal migration only. Do not use.\n *\n * @generated from field: repeated int32 weak_dependency = 11;\n */\n this.weakDependency = [];\n /**\n * All top-level definitions in this file.\n *\n * @generated from field: repeated google.protobuf.DescriptorProto message_type = 4;\n */\n this.messageType = [];\n /**\n * @generated from field: repeated google.protobuf.EnumDescriptorProto enum_type = 5;\n */\n this.enumType = [];\n /**\n * @generated from field: repeated google.protobuf.ServiceDescriptorProto service = 6;\n */\n this.service = [];\n /**\n * @generated from field: repeated google.protobuf.FieldDescriptorProto extension = 7;\n */\n this.extension = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FileDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FileDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FileDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FileDescriptorProto, a, b);\n }\n}\nFileDescriptorProto.runtime = proto2;\nFileDescriptorProto.typeName = \"google.protobuf.FileDescriptorProto\";\nFileDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"dependency\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 10, name: \"public_dependency\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true },\n { no: 11, name: \"weak_dependency\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true },\n { no: 4, name: \"message_type\", kind: \"message\", T: DescriptorProto, repeated: true },\n { no: 5, name: \"enum_type\", kind: \"message\", T: EnumDescriptorProto, repeated: true },\n { no: 6, name: \"service\", kind: \"message\", T: ServiceDescriptorProto, repeated: true },\n { no: 7, name: \"extension\", kind: \"message\", T: FieldDescriptorProto, repeated: true },\n { no: 8, name: \"options\", kind: \"message\", T: FileOptions, opt: true },\n { no: 9, name: \"source_code_info\", kind: \"message\", T: SourceCodeInfo, opt: true },\n { no: 12, name: \"syntax\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 14, name: \"edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n]);\n/**\n * Describes a message type.\n *\n * @generated from message google.protobuf.DescriptorProto\n */\nexport class DescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FieldDescriptorProto field = 2;\n */\n this.field = [];\n /**\n * @generated from field: repeated google.protobuf.FieldDescriptorProto extension = 6;\n */\n this.extension = [];\n /**\n * @generated from field: repeated google.protobuf.DescriptorProto nested_type = 3;\n */\n this.nestedType = [];\n /**\n * @generated from field: repeated google.protobuf.EnumDescriptorProto enum_type = 4;\n */\n this.enumType = [];\n /**\n * @generated from field: repeated google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;\n */\n this.extensionRange = [];\n /**\n * @generated from field: repeated google.protobuf.OneofDescriptorProto oneof_decl = 8;\n */\n this.oneofDecl = [];\n /**\n * @generated from field: repeated google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;\n */\n this.reservedRange = [];\n /**\n * Reserved field names, which may not be used by fields in the same message.\n * A given name may only be reserved once.\n *\n * @generated from field: repeated string reserved_name = 10;\n */\n this.reservedName = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new DescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new DescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new DescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(DescriptorProto, a, b);\n }\n}\nDescriptorProto.runtime = proto2;\nDescriptorProto.typeName = \"google.protobuf.DescriptorProto\";\nDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"field\", kind: \"message\", T: FieldDescriptorProto, repeated: true },\n { no: 6, name: \"extension\", kind: \"message\", T: FieldDescriptorProto, repeated: true },\n { no: 3, name: \"nested_type\", kind: \"message\", T: DescriptorProto, repeated: true },\n { no: 4, name: \"enum_type\", kind: \"message\", T: EnumDescriptorProto, repeated: true },\n { no: 5, name: \"extension_range\", kind: \"message\", T: DescriptorProto_ExtensionRange, repeated: true },\n { no: 8, name: \"oneof_decl\", kind: \"message\", T: OneofDescriptorProto, repeated: true },\n { no: 7, name: \"options\", kind: \"message\", T: MessageOptions, opt: true },\n { no: 9, name: \"reserved_range\", kind: \"message\", T: DescriptorProto_ReservedRange, repeated: true },\n { no: 10, name: \"reserved_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.DescriptorProto.ExtensionRange\n */\nexport class DescriptorProto_ExtensionRange extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new DescriptorProto_ExtensionRange().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new DescriptorProto_ExtensionRange().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new DescriptorProto_ExtensionRange().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(DescriptorProto_ExtensionRange, a, b);\n }\n}\nDescriptorProto_ExtensionRange.runtime = proto2;\nDescriptorProto_ExtensionRange.typeName = \"google.protobuf.DescriptorProto.ExtensionRange\";\nDescriptorProto_ExtensionRange.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"start\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 3, name: \"options\", kind: \"message\", T: ExtensionRangeOptions, opt: true },\n]);\n/**\n * Range of reserved tag numbers. Reserved tag numbers may not be used by\n * fields or extension ranges in the same message. Reserved ranges may\n * not overlap.\n *\n * @generated from message google.protobuf.DescriptorProto.ReservedRange\n */\nexport class DescriptorProto_ReservedRange extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new DescriptorProto_ReservedRange().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new DescriptorProto_ReservedRange().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new DescriptorProto_ReservedRange().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(DescriptorProto_ReservedRange, a, b);\n }\n}\nDescriptorProto_ReservedRange.runtime = proto2;\nDescriptorProto_ReservedRange.typeName = \"google.protobuf.DescriptorProto.ReservedRange\";\nDescriptorProto_ReservedRange.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"start\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n]);\n/**\n * @generated from message google.protobuf.ExtensionRangeOptions\n */\nexport class ExtensionRangeOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n /**\n * For external users: DO NOT USE. We are in the process of open sourcing\n * extension declaration and executing internal cleanups before it can be\n * used externally.\n *\n * @generated from field: repeated google.protobuf.ExtensionRangeOptions.Declaration declaration = 2;\n */\n this.declaration = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ExtensionRangeOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ExtensionRangeOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ExtensionRangeOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ExtensionRangeOptions, a, b);\n }\n}\nExtensionRangeOptions.runtime = proto2;\nExtensionRangeOptions.typeName = \"google.protobuf.ExtensionRangeOptions\";\nExtensionRangeOptions.fields = proto2.util.newFieldList(() => [\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n { no: 2, name: \"declaration\", kind: \"message\", T: ExtensionRangeOptions_Declaration, repeated: true },\n { no: 50, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 3, name: \"verification\", kind: \"enum\", T: proto2.getEnumType(ExtensionRangeOptions_VerificationState), opt: true, default: ExtensionRangeOptions_VerificationState.UNVERIFIED },\n]);\n/**\n * The verification state of the extension range.\n *\n * @generated from enum google.protobuf.ExtensionRangeOptions.VerificationState\n */\nexport var ExtensionRangeOptions_VerificationState;\n(function (ExtensionRangeOptions_VerificationState) {\n /**\n * All the extensions of the range must be declared.\n *\n * @generated from enum value: DECLARATION = 0;\n */\n ExtensionRangeOptions_VerificationState[ExtensionRangeOptions_VerificationState[\"DECLARATION\"] = 0] = \"DECLARATION\";\n /**\n * @generated from enum value: UNVERIFIED = 1;\n */\n ExtensionRangeOptions_VerificationState[ExtensionRangeOptions_VerificationState[\"UNVERIFIED\"] = 1] = \"UNVERIFIED\";\n})(ExtensionRangeOptions_VerificationState || (ExtensionRangeOptions_VerificationState = {}));\n// Retrieve enum metadata with: proto2.getEnumType(ExtensionRangeOptions_VerificationState)\nproto2.util.setEnumType(ExtensionRangeOptions_VerificationState, \"google.protobuf.ExtensionRangeOptions.VerificationState\", [\n { no: 0, name: \"DECLARATION\" },\n { no: 1, name: \"UNVERIFIED\" },\n]);\n/**\n * @generated from message google.protobuf.ExtensionRangeOptions.Declaration\n */\nexport class ExtensionRangeOptions_Declaration extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ExtensionRangeOptions_Declaration().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ExtensionRangeOptions_Declaration().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ExtensionRangeOptions_Declaration().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ExtensionRangeOptions_Declaration, a, b);\n }\n}\nExtensionRangeOptions_Declaration.runtime = proto2;\nExtensionRangeOptions_Declaration.typeName = \"google.protobuf.ExtensionRangeOptions.Declaration\";\nExtensionRangeOptions_Declaration.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"full_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"reserved\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 6, name: \"repeated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n]);\n/**\n * Describes a field within a message.\n *\n * @generated from message google.protobuf.FieldDescriptorProto\n */\nexport class FieldDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FieldDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FieldDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FieldDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FieldDescriptorProto, a, b);\n }\n}\nFieldDescriptorProto.runtime = proto2;\nFieldDescriptorProto.typeName = \"google.protobuf.FieldDescriptorProto\";\nFieldDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"label\", kind: \"enum\", T: proto2.getEnumType(FieldDescriptorProto_Label), opt: true },\n { no: 5, name: \"type\", kind: \"enum\", T: proto2.getEnumType(FieldDescriptorProto_Type), opt: true },\n { no: 6, name: \"type_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"extendee\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 7, name: \"default_value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 9, name: \"oneof_index\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"json_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 8, name: \"options\", kind: \"message\", T: FieldOptions, opt: true },\n { no: 17, name: \"proto3_optional\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n]);\n/**\n * @generated from enum google.protobuf.FieldDescriptorProto.Type\n */\nexport var FieldDescriptorProto_Type;\n(function (FieldDescriptorProto_Type) {\n /**\n * 0 is reserved for errors.\n * Order is weird for historical reasons.\n *\n * @generated from enum value: TYPE_DOUBLE = 1;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"DOUBLE\"] = 1] = \"DOUBLE\";\n /**\n * @generated from enum value: TYPE_FLOAT = 2;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FLOAT\"] = 2] = \"FLOAT\";\n /**\n * Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n * negative values are likely.\n *\n * @generated from enum value: TYPE_INT64 = 3;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"INT64\"] = 3] = \"INT64\";\n /**\n * @generated from enum value: TYPE_UINT64 = 4;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"UINT64\"] = 4] = \"UINT64\";\n /**\n * Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n * negative values are likely.\n *\n * @generated from enum value: TYPE_INT32 = 5;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"INT32\"] = 5] = \"INT32\";\n /**\n * @generated from enum value: TYPE_FIXED64 = 6;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FIXED64\"] = 6] = \"FIXED64\";\n /**\n * @generated from enum value: TYPE_FIXED32 = 7;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FIXED32\"] = 7] = \"FIXED32\";\n /**\n * @generated from enum value: TYPE_BOOL = 8;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"BOOL\"] = 8] = \"BOOL\";\n /**\n * @generated from enum value: TYPE_STRING = 9;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"STRING\"] = 9] = \"STRING\";\n /**\n * Tag-delimited aggregate.\n * Group type is deprecated and not supported after google.protobuf. However, Proto3\n * implementations should still be able to parse the group wire format and\n * treat group fields as unknown fields. In Editions, the group wire format\n * can be enabled via the `message_encoding` feature.\n *\n * @generated from enum value: TYPE_GROUP = 10;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"GROUP\"] = 10] = \"GROUP\";\n /**\n * Length-delimited aggregate.\n *\n * @generated from enum value: TYPE_MESSAGE = 11;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"MESSAGE\"] = 11] = \"MESSAGE\";\n /**\n * New in version 2.\n *\n * @generated from enum value: TYPE_BYTES = 12;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"BYTES\"] = 12] = \"BYTES\";\n /**\n * @generated from enum value: TYPE_UINT32 = 13;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"UINT32\"] = 13] = \"UINT32\";\n /**\n * @generated from enum value: TYPE_ENUM = 14;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"ENUM\"] = 14] = \"ENUM\";\n /**\n * @generated from enum value: TYPE_SFIXED32 = 15;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SFIXED32\"] = 15] = \"SFIXED32\";\n /**\n * @generated from enum value: TYPE_SFIXED64 = 16;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SFIXED64\"] = 16] = \"SFIXED64\";\n /**\n * Uses ZigZag encoding.\n *\n * @generated from enum value: TYPE_SINT32 = 17;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SINT32\"] = 17] = \"SINT32\";\n /**\n * Uses ZigZag encoding.\n *\n * @generated from enum value: TYPE_SINT64 = 18;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SINT64\"] = 18] = \"SINT64\";\n})(FieldDescriptorProto_Type || (FieldDescriptorProto_Type = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldDescriptorProto_Type)\nproto2.util.setEnumType(FieldDescriptorProto_Type, \"google.protobuf.FieldDescriptorProto.Type\", [\n { no: 1, name: \"TYPE_DOUBLE\" },\n { no: 2, name: \"TYPE_FLOAT\" },\n { no: 3, name: \"TYPE_INT64\" },\n { no: 4, name: \"TYPE_UINT64\" },\n { no: 5, name: \"TYPE_INT32\" },\n { no: 6, name: \"TYPE_FIXED64\" },\n { no: 7, name: \"TYPE_FIXED32\" },\n { no: 8, name: \"TYPE_BOOL\" },\n { no: 9, name: \"TYPE_STRING\" },\n { no: 10, name: \"TYPE_GROUP\" },\n { no: 11, name: \"TYPE_MESSAGE\" },\n { no: 12, name: \"TYPE_BYTES\" },\n { no: 13, name: \"TYPE_UINT32\" },\n { no: 14, name: \"TYPE_ENUM\" },\n { no: 15, name: \"TYPE_SFIXED32\" },\n { no: 16, name: \"TYPE_SFIXED64\" },\n { no: 17, name: \"TYPE_SINT32\" },\n { no: 18, name: \"TYPE_SINT64\" },\n]);\n/**\n * @generated from enum google.protobuf.FieldDescriptorProto.Label\n */\nexport var FieldDescriptorProto_Label;\n(function (FieldDescriptorProto_Label) {\n /**\n * 0 is reserved for errors\n *\n * @generated from enum value: LABEL_OPTIONAL = 1;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"OPTIONAL\"] = 1] = \"OPTIONAL\";\n /**\n * @generated from enum value: LABEL_REPEATED = 3;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"REPEATED\"] = 3] = \"REPEATED\";\n /**\n * The required label is only allowed in google.protobuf. In proto3 and Editions\n * it's explicitly prohibited. In Editions, the `field_presence` feature\n * can be used to get this behavior.\n *\n * @generated from enum value: LABEL_REQUIRED = 2;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"REQUIRED\"] = 2] = \"REQUIRED\";\n})(FieldDescriptorProto_Label || (FieldDescriptorProto_Label = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldDescriptorProto_Label)\nproto2.util.setEnumType(FieldDescriptorProto_Label, \"google.protobuf.FieldDescriptorProto.Label\", [\n { no: 1, name: \"LABEL_OPTIONAL\" },\n { no: 3, name: \"LABEL_REPEATED\" },\n { no: 2, name: \"LABEL_REQUIRED\" },\n]);\n/**\n * Describes a oneof.\n *\n * @generated from message google.protobuf.OneofDescriptorProto\n */\nexport class OneofDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new OneofDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new OneofDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new OneofDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(OneofDescriptorProto, a, b);\n }\n}\nOneofDescriptorProto.runtime = proto2;\nOneofDescriptorProto.typeName = \"google.protobuf.OneofDescriptorProto\";\nOneofDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"options\", kind: \"message\", T: OneofOptions, opt: true },\n]);\n/**\n * Describes an enum type.\n *\n * @generated from message google.protobuf.EnumDescriptorProto\n */\nexport class EnumDescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.EnumValueDescriptorProto value = 2;\n */\n this.value = [];\n /**\n * Range of reserved numeric values. Reserved numeric values may not be used\n * by enum values in the same enum declaration. Reserved ranges may not\n * overlap.\n *\n * @generated from field: repeated google.protobuf.EnumDescriptorProto.EnumReservedRange reserved_range = 4;\n */\n this.reservedRange = [];\n /**\n * Reserved enum value names, which may not be reused. A given name may only\n * be reserved once.\n *\n * @generated from field: repeated string reserved_name = 5;\n */\n this.reservedName = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumDescriptorProto, a, b);\n }\n}\nEnumDescriptorProto.runtime = proto2;\nEnumDescriptorProto.typeName = \"google.protobuf.EnumDescriptorProto\";\nEnumDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"value\", kind: \"message\", T: EnumValueDescriptorProto, repeated: true },\n { no: 3, name: \"options\", kind: \"message\", T: EnumOptions, opt: true },\n { no: 4, name: \"reserved_range\", kind: \"message\", T: EnumDescriptorProto_EnumReservedRange, repeated: true },\n { no: 5, name: \"reserved_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n]);\n/**\n * Range of reserved numeric values. Reserved values may not be used by\n * entries in the same enum. Reserved ranges may not overlap.\n *\n * Note that this is distinct from DescriptorProto.ReservedRange in that it\n * is inclusive such that it can appropriately represent the entire int32\n * domain.\n *\n * @generated from message google.protobuf.EnumDescriptorProto.EnumReservedRange\n */\nexport class EnumDescriptorProto_EnumReservedRange extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumDescriptorProto_EnumReservedRange().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumDescriptorProto_EnumReservedRange().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumDescriptorProto_EnumReservedRange().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumDescriptorProto_EnumReservedRange, a, b);\n }\n}\nEnumDescriptorProto_EnumReservedRange.runtime = proto2;\nEnumDescriptorProto_EnumReservedRange.typeName = \"google.protobuf.EnumDescriptorProto.EnumReservedRange\";\nEnumDescriptorProto_EnumReservedRange.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"start\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n]);\n/**\n * Describes a value within an enum.\n *\n * @generated from message google.protobuf.EnumValueDescriptorProto\n */\nexport class EnumValueDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumValueDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumValueDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumValueDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumValueDescriptorProto, a, b);\n }\n}\nEnumValueDescriptorProto.runtime = proto2;\nEnumValueDescriptorProto.typeName = \"google.protobuf.EnumValueDescriptorProto\";\nEnumValueDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 3, name: \"options\", kind: \"message\", T: EnumValueOptions, opt: true },\n]);\n/**\n * Describes a service.\n *\n * @generated from message google.protobuf.ServiceDescriptorProto\n */\nexport class ServiceDescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.MethodDescriptorProto method = 2;\n */\n this.method = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ServiceDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ServiceDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ServiceDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ServiceDescriptorProto, a, b);\n }\n}\nServiceDescriptorProto.runtime = proto2;\nServiceDescriptorProto.typeName = \"google.protobuf.ServiceDescriptorProto\";\nServiceDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"method\", kind: \"message\", T: MethodDescriptorProto, repeated: true },\n { no: 3, name: \"options\", kind: \"message\", T: ServiceOptions, opt: true },\n]);\n/**\n * Describes a method of a service.\n *\n * @generated from message google.protobuf.MethodDescriptorProto\n */\nexport class MethodDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new MethodDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new MethodDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new MethodDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(MethodDescriptorProto, a, b);\n }\n}\nMethodDescriptorProto.runtime = proto2;\nMethodDescriptorProto.typeName = \"google.protobuf.MethodDescriptorProto\";\nMethodDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"input_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"output_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"options\", kind: \"message\", T: MethodOptions, opt: true },\n { no: 5, name: \"client_streaming\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 6, name: \"server_streaming\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n]);\n/**\n * @generated from message google.protobuf.FileOptions\n */\nexport class FileOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here.\n * See the documentation for the \"Options\" section above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FileOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FileOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FileOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FileOptions, a, b);\n }\n}\nFileOptions.runtime = proto2;\nFileOptions.typeName = \"google.protobuf.FileOptions\";\nFileOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"java_package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 8, name: \"java_outer_classname\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 10, name: \"java_multiple_files\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 20, name: \"java_generate_equals_and_hash\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 27, name: \"java_string_check_utf8\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 9, name: \"optimize_for\", kind: \"enum\", T: proto2.getEnumType(FileOptions_OptimizeMode), opt: true, default: FileOptions_OptimizeMode.SPEED },\n { no: 11, name: \"go_package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 16, name: \"cc_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 17, name: \"java_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 18, name: \"py_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 42, name: \"php_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 23, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 31, name: \"cc_enable_arenas\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: true },\n { no: 36, name: \"objc_class_prefix\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 37, name: \"csharp_namespace\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 39, name: \"swift_prefix\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 40, name: \"php_class_prefix\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 41, name: \"php_namespace\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 44, name: \"php_metadata_namespace\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 45, name: \"ruby_package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 50, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * Generated classes can be optimized for speed or code size.\n *\n * @generated from enum google.protobuf.FileOptions.OptimizeMode\n */\nexport var FileOptions_OptimizeMode;\n(function (FileOptions_OptimizeMode) {\n /**\n * Generate complete code for parsing, serialization,\n *\n * @generated from enum value: SPEED = 1;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"SPEED\"] = 1] = \"SPEED\";\n /**\n * etc.\n *\n * Use ReflectionOps to implement these methods.\n *\n * @generated from enum value: CODE_SIZE = 2;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"CODE_SIZE\"] = 2] = \"CODE_SIZE\";\n /**\n * Generate code using MessageLite and the lite runtime.\n *\n * @generated from enum value: LITE_RUNTIME = 3;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"LITE_RUNTIME\"] = 3] = \"LITE_RUNTIME\";\n})(FileOptions_OptimizeMode || (FileOptions_OptimizeMode = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FileOptions_OptimizeMode)\nproto2.util.setEnumType(FileOptions_OptimizeMode, \"google.protobuf.FileOptions.OptimizeMode\", [\n { no: 1, name: \"SPEED\" },\n { no: 2, name: \"CODE_SIZE\" },\n { no: 3, name: \"LITE_RUNTIME\" },\n]);\n/**\n * @generated from message google.protobuf.MessageOptions\n */\nexport class MessageOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new MessageOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new MessageOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new MessageOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(MessageOptions, a, b);\n }\n}\nMessageOptions.runtime = proto2;\nMessageOptions.typeName = \"google.protobuf.MessageOptions\";\nMessageOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"message_set_wire_format\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 2, name: \"no_standard_descriptor_accessor\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 3, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 7, name: \"map_entry\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 11, name: \"deprecated_legacy_json_field_conflicts\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 12, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.FieldOptions\n */\nexport class FieldOptions extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FieldOptions.OptionTargetType targets = 19;\n */\n this.targets = [];\n /**\n * @generated from field: repeated google.protobuf.FieldOptions.EditionDefault edition_defaults = 20;\n */\n this.editionDefaults = [];\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FieldOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FieldOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FieldOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FieldOptions, a, b);\n }\n}\nFieldOptions.runtime = proto2;\nFieldOptions.typeName = \"google.protobuf.FieldOptions\";\nFieldOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"ctype\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_CType), opt: true, default: FieldOptions_CType.STRING },\n { no: 2, name: \"packed\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 6, name: \"jstype\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_JSType), opt: true, default: FieldOptions_JSType.JS_NORMAL },\n { no: 5, name: \"lazy\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 15, name: \"unverified_lazy\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 3, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 10, name: \"weak\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 16, name: \"debug_redact\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 17, name: \"retention\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_OptionRetention), opt: true },\n { no: 19, name: \"targets\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_OptionTargetType), repeated: true },\n { no: 20, name: \"edition_defaults\", kind: \"message\", T: FieldOptions_EditionDefault, repeated: true },\n { no: 21, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from enum google.protobuf.FieldOptions.CType\n */\nexport var FieldOptions_CType;\n(function (FieldOptions_CType) {\n /**\n * Default mode.\n *\n * @generated from enum value: STRING = 0;\n */\n FieldOptions_CType[FieldOptions_CType[\"STRING\"] = 0] = \"STRING\";\n /**\n * The option [ctype=CORD] may be applied to a non-repeated field of type\n * \"bytes\". It indicates that in C++, the data should be stored in a Cord\n * instead of a string. For very large strings, this may reduce memory\n * fragmentation. It may also allow better performance when parsing from a\n * Cord, or when parsing with aliasing enabled, as the parsed Cord may then\n * alias the original buffer.\n *\n * @generated from enum value: CORD = 1;\n */\n FieldOptions_CType[FieldOptions_CType[\"CORD\"] = 1] = \"CORD\";\n /**\n * @generated from enum value: STRING_PIECE = 2;\n */\n FieldOptions_CType[FieldOptions_CType[\"STRING_PIECE\"] = 2] = \"STRING_PIECE\";\n})(FieldOptions_CType || (FieldOptions_CType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_CType)\nproto2.util.setEnumType(FieldOptions_CType, \"google.protobuf.FieldOptions.CType\", [\n { no: 0, name: \"STRING\" },\n { no: 1, name: \"CORD\" },\n { no: 2, name: \"STRING_PIECE\" },\n]);\n/**\n * @generated from enum google.protobuf.FieldOptions.JSType\n */\nexport var FieldOptions_JSType;\n(function (FieldOptions_JSType) {\n /**\n * Use the default type.\n *\n * @generated from enum value: JS_NORMAL = 0;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_NORMAL\"] = 0] = \"JS_NORMAL\";\n /**\n * Use JavaScript strings.\n *\n * @generated from enum value: JS_STRING = 1;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_STRING\"] = 1] = \"JS_STRING\";\n /**\n * Use JavaScript numbers.\n *\n * @generated from enum value: JS_NUMBER = 2;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_NUMBER\"] = 2] = \"JS_NUMBER\";\n})(FieldOptions_JSType || (FieldOptions_JSType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_JSType)\nproto2.util.setEnumType(FieldOptions_JSType, \"google.protobuf.FieldOptions.JSType\", [\n { no: 0, name: \"JS_NORMAL\" },\n { no: 1, name: \"JS_STRING\" },\n { no: 2, name: \"JS_NUMBER\" },\n]);\n/**\n * If set to RETENTION_SOURCE, the option will be omitted from the binary.\n * Note: as of January 2023, support for this is in progress and does not yet\n * have an effect (b/264593489).\n *\n * @generated from enum google.protobuf.FieldOptions.OptionRetention\n */\nexport var FieldOptions_OptionRetention;\n(function (FieldOptions_OptionRetention) {\n /**\n * @generated from enum value: RETENTION_UNKNOWN = 0;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_UNKNOWN\"] = 0] = \"RETENTION_UNKNOWN\";\n /**\n * @generated from enum value: RETENTION_RUNTIME = 1;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_RUNTIME\"] = 1] = \"RETENTION_RUNTIME\";\n /**\n * @generated from enum value: RETENTION_SOURCE = 2;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_SOURCE\"] = 2] = \"RETENTION_SOURCE\";\n})(FieldOptions_OptionRetention || (FieldOptions_OptionRetention = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_OptionRetention)\nproto2.util.setEnumType(FieldOptions_OptionRetention, \"google.protobuf.FieldOptions.OptionRetention\", [\n { no: 0, name: \"RETENTION_UNKNOWN\" },\n { no: 1, name: \"RETENTION_RUNTIME\" },\n { no: 2, name: \"RETENTION_SOURCE\" },\n]);\n/**\n * This indicates the types of entities that the field may apply to when used\n * as an option. If it is unset, then the field may be freely used as an\n * option on any kind of entity. Note: as of January 2023, support for this is\n * in progress and does not yet have an effect (b/264593489).\n *\n * @generated from enum google.protobuf.FieldOptions.OptionTargetType\n */\nexport var FieldOptions_OptionTargetType;\n(function (FieldOptions_OptionTargetType) {\n /**\n * @generated from enum value: TARGET_TYPE_UNKNOWN = 0;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_UNKNOWN\"] = 0] = \"TARGET_TYPE_UNKNOWN\";\n /**\n * @generated from enum value: TARGET_TYPE_FILE = 1;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_FILE\"] = 1] = \"TARGET_TYPE_FILE\";\n /**\n * @generated from enum value: TARGET_TYPE_EXTENSION_RANGE = 2;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_EXTENSION_RANGE\"] = 2] = \"TARGET_TYPE_EXTENSION_RANGE\";\n /**\n * @generated from enum value: TARGET_TYPE_MESSAGE = 3;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_MESSAGE\"] = 3] = \"TARGET_TYPE_MESSAGE\";\n /**\n * @generated from enum value: TARGET_TYPE_FIELD = 4;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_FIELD\"] = 4] = \"TARGET_TYPE_FIELD\";\n /**\n * @generated from enum value: TARGET_TYPE_ONEOF = 5;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ONEOF\"] = 5] = \"TARGET_TYPE_ONEOF\";\n /**\n * @generated from enum value: TARGET_TYPE_ENUM = 6;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ENUM\"] = 6] = \"TARGET_TYPE_ENUM\";\n /**\n * @generated from enum value: TARGET_TYPE_ENUM_ENTRY = 7;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ENUM_ENTRY\"] = 7] = \"TARGET_TYPE_ENUM_ENTRY\";\n /**\n * @generated from enum value: TARGET_TYPE_SERVICE = 8;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_SERVICE\"] = 8] = \"TARGET_TYPE_SERVICE\";\n /**\n * @generated from enum value: TARGET_TYPE_METHOD = 9;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_METHOD\"] = 9] = \"TARGET_TYPE_METHOD\";\n})(FieldOptions_OptionTargetType || (FieldOptions_OptionTargetType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_OptionTargetType)\nproto2.util.setEnumType(FieldOptions_OptionTargetType, \"google.protobuf.FieldOptions.OptionTargetType\", [\n { no: 0, name: \"TARGET_TYPE_UNKNOWN\" },\n { no: 1, name: \"TARGET_TYPE_FILE\" },\n { no: 2, name: \"TARGET_TYPE_EXTENSION_RANGE\" },\n { no: 3, name: \"TARGET_TYPE_MESSAGE\" },\n { no: 4, name: \"TARGET_TYPE_FIELD\" },\n { no: 5, name: \"TARGET_TYPE_ONEOF\" },\n { no: 6, name: \"TARGET_TYPE_ENUM\" },\n { no: 7, name: \"TARGET_TYPE_ENUM_ENTRY\" },\n { no: 8, name: \"TARGET_TYPE_SERVICE\" },\n { no: 9, name: \"TARGET_TYPE_METHOD\" },\n]);\n/**\n * @generated from message google.protobuf.FieldOptions.EditionDefault\n */\nexport class FieldOptions_EditionDefault extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FieldOptions_EditionDefault().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FieldOptions_EditionDefault().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FieldOptions_EditionDefault().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FieldOptions_EditionDefault, a, b);\n }\n}\nFieldOptions_EditionDefault.runtime = proto2;\nFieldOptions_EditionDefault.typeName = \"google.protobuf.FieldOptions.EditionDefault\";\nFieldOptions_EditionDefault.fields = proto2.util.newFieldList(() => [\n { no: 3, name: \"edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n { no: 2, name: \"value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n]);\n/**\n * @generated from message google.protobuf.OneofOptions\n */\nexport class OneofOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new OneofOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new OneofOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new OneofOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(OneofOptions, a, b);\n }\n}\nOneofOptions.runtime = proto2;\nOneofOptions.typeName = \"google.protobuf.OneofOptions\";\nOneofOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.EnumOptions\n */\nexport class EnumOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumOptions, a, b);\n }\n}\nEnumOptions.runtime = proto2;\nEnumOptions.typeName = \"google.protobuf.EnumOptions\";\nEnumOptions.fields = proto2.util.newFieldList(() => [\n { no: 2, name: \"allow_alias\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 3, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 6, name: \"deprecated_legacy_json_field_conflicts\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 7, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.EnumValueOptions\n */\nexport class EnumValueOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumValueOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumValueOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumValueOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumValueOptions, a, b);\n }\n}\nEnumValueOptions.runtime = proto2;\nEnumValueOptions.typeName = \"google.protobuf.EnumValueOptions\";\nEnumValueOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 2, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 3, name: \"debug_redact\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.ServiceOptions\n */\nexport class ServiceOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ServiceOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ServiceOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ServiceOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ServiceOptions, a, b);\n }\n}\nServiceOptions.runtime = proto2;\nServiceOptions.typeName = \"google.protobuf.ServiceOptions\";\nServiceOptions.fields = proto2.util.newFieldList(() => [\n { no: 34, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 33, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.MethodOptions\n */\nexport class MethodOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new MethodOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new MethodOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new MethodOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(MethodOptions, a, b);\n }\n}\nMethodOptions.runtime = proto2;\nMethodOptions.typeName = \"google.protobuf.MethodOptions\";\nMethodOptions.fields = proto2.util.newFieldList(() => [\n { no: 33, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 34, name: \"idempotency_level\", kind: \"enum\", T: proto2.getEnumType(MethodOptions_IdempotencyLevel), opt: true, default: MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN },\n { no: 35, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * Is this method side-effect-free (or safe in HTTP parlance), or idempotent,\n * or neither? HTTP based RPC implementation may choose GET verb for safe\n * methods, and PUT verb for idempotent methods instead of the default POST.\n *\n * @generated from enum google.protobuf.MethodOptions.IdempotencyLevel\n */\nexport var MethodOptions_IdempotencyLevel;\n(function (MethodOptions_IdempotencyLevel) {\n /**\n * @generated from enum value: IDEMPOTENCY_UNKNOWN = 0;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"IDEMPOTENCY_UNKNOWN\"] = 0] = \"IDEMPOTENCY_UNKNOWN\";\n /**\n * implies idempotent\n *\n * @generated from enum value: NO_SIDE_EFFECTS = 1;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"NO_SIDE_EFFECTS\"] = 1] = \"NO_SIDE_EFFECTS\";\n /**\n * idempotent, but may have side effects\n *\n * @generated from enum value: IDEMPOTENT = 2;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"IDEMPOTENT\"] = 2] = \"IDEMPOTENT\";\n})(MethodOptions_IdempotencyLevel || (MethodOptions_IdempotencyLevel = {}));\n// Retrieve enum metadata with: proto2.getEnumType(MethodOptions_IdempotencyLevel)\nproto2.util.setEnumType(MethodOptions_IdempotencyLevel, \"google.protobuf.MethodOptions.IdempotencyLevel\", [\n { no: 0, name: \"IDEMPOTENCY_UNKNOWN\" },\n { no: 1, name: \"NO_SIDE_EFFECTS\" },\n { no: 2, name: \"IDEMPOTENT\" },\n]);\n/**\n * A message representing a option the parser does not recognize. This only\n * appears in options protos created by the compiler::Parser class.\n * DescriptorPool resolves these when building Descriptor objects. Therefore,\n * options protos in descriptor objects (e.g. returned by Descriptor::options(),\n * or produced by Descriptor::CopyTo()) will never have UninterpretedOptions\n * in them.\n *\n * @generated from message google.protobuf.UninterpretedOption\n */\nexport class UninterpretedOption extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.UninterpretedOption.NamePart name = 2;\n */\n this.name = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new UninterpretedOption().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new UninterpretedOption().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new UninterpretedOption().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(UninterpretedOption, a, b);\n }\n}\nUninterpretedOption.runtime = proto2;\nUninterpretedOption.typeName = \"google.protobuf.UninterpretedOption\";\nUninterpretedOption.fields = proto2.util.newFieldList(() => [\n { no: 2, name: \"name\", kind: \"message\", T: UninterpretedOption_NamePart, repeated: true },\n { no: 3, name: \"identifier_value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"positive_int_value\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */, opt: true },\n { no: 5, name: \"negative_int_value\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 6, name: \"double_value\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 7, name: \"string_value\", kind: \"scalar\", T: 12 /* ScalarType.BYTES */, opt: true },\n { no: 8, name: \"aggregate_value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n]);\n/**\n * The name of the uninterpreted option. Each string represents a segment in\n * a dot-separated name. is_extension is true iff a segment represents an\n * extension (denoted with parentheses in options specs in .proto files).\n * E.g.,{ [\"foo\", false], [\"bar.baz\", true], [\"moo\", false] } represents\n * \"foo.(bar.baz).moo\".\n *\n * @generated from message google.protobuf.UninterpretedOption.NamePart\n */\nexport class UninterpretedOption_NamePart extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new UninterpretedOption_NamePart().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new UninterpretedOption_NamePart().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new UninterpretedOption_NamePart().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(UninterpretedOption_NamePart, a, b);\n }\n}\nUninterpretedOption_NamePart.runtime = proto2;\nUninterpretedOption_NamePart.typeName = \"google.protobuf.UninterpretedOption.NamePart\";\nUninterpretedOption_NamePart.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name_part\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"is_extension\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n]);\n/**\n * TODO Enums in C++ gencode (and potentially other languages) are\n * not well scoped. This means that each of the feature enums below can clash\n * with each other. The short names we've chosen maximize call-site\n * readability, but leave us very open to this scenario. A future feature will\n * be designed and implemented to handle this, hopefully before we ever hit a\n * conflict here.\n *\n * @generated from message google.protobuf.FeatureSet\n */\nexport class FeatureSet extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FeatureSet().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FeatureSet().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FeatureSet().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FeatureSet, a, b);\n }\n}\nFeatureSet.runtime = proto2;\nFeatureSet.typeName = \"google.protobuf.FeatureSet\";\nFeatureSet.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"field_presence\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_FieldPresence), opt: true },\n { no: 2, name: \"enum_type\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_EnumType), opt: true },\n { no: 3, name: \"repeated_field_encoding\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_RepeatedFieldEncoding), opt: true },\n { no: 4, name: \"utf8_validation\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_Utf8Validation), opt: true },\n { no: 5, name: \"message_encoding\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_MessageEncoding), opt: true },\n { no: 6, name: \"json_format\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_JsonFormat), opt: true },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.FieldPresence\n */\nexport var FeatureSet_FieldPresence;\n(function (FeatureSet_FieldPresence) {\n /**\n * @generated from enum value: FIELD_PRESENCE_UNKNOWN = 0;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"FIELD_PRESENCE_UNKNOWN\"] = 0] = \"FIELD_PRESENCE_UNKNOWN\";\n /**\n * @generated from enum value: EXPLICIT = 1;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"EXPLICIT\"] = 1] = \"EXPLICIT\";\n /**\n * @generated from enum value: IMPLICIT = 2;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"IMPLICIT\"] = 2] = \"IMPLICIT\";\n /**\n * @generated from enum value: LEGACY_REQUIRED = 3;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"LEGACY_REQUIRED\"] = 3] = \"LEGACY_REQUIRED\";\n})(FeatureSet_FieldPresence || (FeatureSet_FieldPresence = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_FieldPresence)\nproto2.util.setEnumType(FeatureSet_FieldPresence, \"google.protobuf.FeatureSet.FieldPresence\", [\n { no: 0, name: \"FIELD_PRESENCE_UNKNOWN\" },\n { no: 1, name: \"EXPLICIT\" },\n { no: 2, name: \"IMPLICIT\" },\n { no: 3, name: \"LEGACY_REQUIRED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.EnumType\n */\nexport var FeatureSet_EnumType;\n(function (FeatureSet_EnumType) {\n /**\n * @generated from enum value: ENUM_TYPE_UNKNOWN = 0;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"ENUM_TYPE_UNKNOWN\"] = 0] = \"ENUM_TYPE_UNKNOWN\";\n /**\n * @generated from enum value: OPEN = 1;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"OPEN\"] = 1] = \"OPEN\";\n /**\n * @generated from enum value: CLOSED = 2;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"CLOSED\"] = 2] = \"CLOSED\";\n})(FeatureSet_EnumType || (FeatureSet_EnumType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_EnumType)\nproto2.util.setEnumType(FeatureSet_EnumType, \"google.protobuf.FeatureSet.EnumType\", [\n { no: 0, name: \"ENUM_TYPE_UNKNOWN\" },\n { no: 1, name: \"OPEN\" },\n { no: 2, name: \"CLOSED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.RepeatedFieldEncoding\n */\nexport var FeatureSet_RepeatedFieldEncoding;\n(function (FeatureSet_RepeatedFieldEncoding) {\n /**\n * @generated from enum value: REPEATED_FIELD_ENCODING_UNKNOWN = 0;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"REPEATED_FIELD_ENCODING_UNKNOWN\"] = 0] = \"REPEATED_FIELD_ENCODING_UNKNOWN\";\n /**\n * @generated from enum value: PACKED = 1;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"PACKED\"] = 1] = \"PACKED\";\n /**\n * @generated from enum value: EXPANDED = 2;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"EXPANDED\"] = 2] = \"EXPANDED\";\n})(FeatureSet_RepeatedFieldEncoding || (FeatureSet_RepeatedFieldEncoding = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_RepeatedFieldEncoding)\nproto2.util.setEnumType(FeatureSet_RepeatedFieldEncoding, \"google.protobuf.FeatureSet.RepeatedFieldEncoding\", [\n { no: 0, name: \"REPEATED_FIELD_ENCODING_UNKNOWN\" },\n { no: 1, name: \"PACKED\" },\n { no: 2, name: \"EXPANDED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.Utf8Validation\n */\nexport var FeatureSet_Utf8Validation;\n(function (FeatureSet_Utf8Validation) {\n /**\n * @generated from enum value: UTF8_VALIDATION_UNKNOWN = 0;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"UTF8_VALIDATION_UNKNOWN\"] = 0] = \"UTF8_VALIDATION_UNKNOWN\";\n /**\n * @generated from enum value: NONE = 1;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"NONE\"] = 1] = \"NONE\";\n /**\n * @generated from enum value: VERIFY = 2;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"VERIFY\"] = 2] = \"VERIFY\";\n})(FeatureSet_Utf8Validation || (FeatureSet_Utf8Validation = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_Utf8Validation)\nproto2.util.setEnumType(FeatureSet_Utf8Validation, \"google.protobuf.FeatureSet.Utf8Validation\", [\n { no: 0, name: \"UTF8_VALIDATION_UNKNOWN\" },\n { no: 1, name: \"NONE\" },\n { no: 2, name: \"VERIFY\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.MessageEncoding\n */\nexport var FeatureSet_MessageEncoding;\n(function (FeatureSet_MessageEncoding) {\n /**\n * @generated from enum value: MESSAGE_ENCODING_UNKNOWN = 0;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"MESSAGE_ENCODING_UNKNOWN\"] = 0] = \"MESSAGE_ENCODING_UNKNOWN\";\n /**\n * @generated from enum value: LENGTH_PREFIXED = 1;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"LENGTH_PREFIXED\"] = 1] = \"LENGTH_PREFIXED\";\n /**\n * @generated from enum value: DELIMITED = 2;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"DELIMITED\"] = 2] = \"DELIMITED\";\n})(FeatureSet_MessageEncoding || (FeatureSet_MessageEncoding = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_MessageEncoding)\nproto2.util.setEnumType(FeatureSet_MessageEncoding, \"google.protobuf.FeatureSet.MessageEncoding\", [\n { no: 0, name: \"MESSAGE_ENCODING_UNKNOWN\" },\n { no: 1, name: \"LENGTH_PREFIXED\" },\n { no: 2, name: \"DELIMITED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.JsonFormat\n */\nexport var FeatureSet_JsonFormat;\n(function (FeatureSet_JsonFormat) {\n /**\n * @generated from enum value: JSON_FORMAT_UNKNOWN = 0;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"JSON_FORMAT_UNKNOWN\"] = 0] = \"JSON_FORMAT_UNKNOWN\";\n /**\n * @generated from enum value: ALLOW = 1;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"ALLOW\"] = 1] = \"ALLOW\";\n /**\n * @generated from enum value: LEGACY_BEST_EFFORT = 2;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"LEGACY_BEST_EFFORT\"] = 2] = \"LEGACY_BEST_EFFORT\";\n})(FeatureSet_JsonFormat || (FeatureSet_JsonFormat = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_JsonFormat)\nproto2.util.setEnumType(FeatureSet_JsonFormat, \"google.protobuf.FeatureSet.JsonFormat\", [\n { no: 0, name: \"JSON_FORMAT_UNKNOWN\" },\n { no: 1, name: \"ALLOW\" },\n { no: 2, name: \"LEGACY_BEST_EFFORT\" },\n]);\n/**\n * A compiled specification for the defaults of a set of features. These\n * messages are generated from FeatureSet extensions and can be used to seed\n * feature resolution. The resolution with this object becomes a simple search\n * for the closest matching edition, followed by proto merges.\n *\n * @generated from message google.protobuf.FeatureSetDefaults\n */\nexport class FeatureSetDefaults extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault defaults = 1;\n */\n this.defaults = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FeatureSetDefaults().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FeatureSetDefaults().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FeatureSetDefaults().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FeatureSetDefaults, a, b);\n }\n}\nFeatureSetDefaults.runtime = proto2;\nFeatureSetDefaults.typeName = \"google.protobuf.FeatureSetDefaults\";\nFeatureSetDefaults.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"defaults\", kind: \"message\", T: FeatureSetDefaults_FeatureSetEditionDefault, repeated: true },\n { no: 4, name: \"minimum_edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n { no: 5, name: \"maximum_edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n]);\n/**\n * A map from every known edition with a unique set of defaults to its\n * defaults. Not all editions may be contained here. For a given edition,\n * the defaults at the closest matching edition ordered at or before it should\n * be used. This field must be in strict ascending order by edition.\n *\n * @generated from message google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\n */\nexport class FeatureSetDefaults_FeatureSetEditionDefault extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FeatureSetDefaults_FeatureSetEditionDefault().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FeatureSetDefaults_FeatureSetEditionDefault().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FeatureSetDefaults_FeatureSetEditionDefault().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FeatureSetDefaults_FeatureSetEditionDefault, a, b);\n }\n}\nFeatureSetDefaults_FeatureSetEditionDefault.runtime = proto2;\nFeatureSetDefaults_FeatureSetEditionDefault.typeName = \"google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\";\nFeatureSetDefaults_FeatureSetEditionDefault.fields = proto2.util.newFieldList(() => [\n { no: 3, name: \"edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n { no: 2, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n]);\n/**\n * Encapsulates information about the original source file from which a\n * FileDescriptorProto was generated.\n *\n * @generated from message google.protobuf.SourceCodeInfo\n */\nexport class SourceCodeInfo extends Message {\n constructor(data) {\n super();\n /**\n * A Location identifies a piece of source code in a .proto file which\n * corresponds to a particular definition. This information is intended\n * to be useful to IDEs, code indexers, documentation generators, and similar\n * tools.\n *\n * For example, say we have a file like:\n * message Foo {\n * optional string foo = 1;\n * }\n * Let's look at just the field definition:\n * optional string foo = 1;\n * ^ ^^ ^^ ^ ^^^\n * a bc de f ghi\n * We have the following locations:\n * span path represents\n * [a,i) [ 4, 0, 2, 0 ] The whole field definition.\n * [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).\n * [c,d) [ 4, 0, 2, 0, 5 ] The type (string).\n * [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).\n * [g,h) [ 4, 0, 2, 0, 3 ] The number (1).\n *\n * Notes:\n * - A location may refer to a repeated field itself (i.e. not to any\n * particular index within it). This is used whenever a set of elements are\n * logically enclosed in a single code segment. For example, an entire\n * extend block (possibly containing multiple extension definitions) will\n * have an outer location whose path refers to the \"extensions\" repeated\n * field without an index.\n * - Multiple locations may have the same path. This happens when a single\n * logical declaration is spread out across multiple places. The most\n * obvious example is the \"extend\" block again -- there may be multiple\n * extend blocks in the same scope, each of which will have the same path.\n * - A location's span is not always a subset of its parent's span. For\n * example, the \"extendee\" of an extension declaration appears at the\n * beginning of the \"extend\" block and is shared by all extensions within\n * the block.\n * - Just because a location's span is a subset of some other location's span\n * does not mean that it is a descendant. For example, a \"group\" defines\n * both a type and a field in a single declaration. Thus, the locations\n * corresponding to the type and field and their components will overlap.\n * - Code which tries to interpret locations should probably be designed to\n * ignore those that it doesn't understand, as more types of locations could\n * be recorded in the future.\n *\n * @generated from field: repeated google.protobuf.SourceCodeInfo.Location location = 1;\n */\n this.location = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new SourceCodeInfo().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new SourceCodeInfo().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new SourceCodeInfo().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(SourceCodeInfo, a, b);\n }\n}\nSourceCodeInfo.runtime = proto2;\nSourceCodeInfo.typeName = \"google.protobuf.SourceCodeInfo\";\nSourceCodeInfo.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"location\", kind: \"message\", T: SourceCodeInfo_Location, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.SourceCodeInfo.Location\n */\nexport class SourceCodeInfo_Location extends Message {\n constructor(data) {\n super();\n /**\n * Identifies which part of the FileDescriptorProto was defined at this\n * location.\n *\n * Each element is a field number or an index. They form a path from\n * the root FileDescriptorProto to the place where the definition occurs.\n * For example, this path:\n * [ 4, 3, 2, 7, 1 ]\n * refers to:\n * file.message_type(3) // 4, 3\n * .field(7) // 2, 7\n * .name() // 1\n * This is because FileDescriptorProto.message_type has field number 4:\n * repeated DescriptorProto message_type = 4;\n * and DescriptorProto.field has field number 2:\n * repeated FieldDescriptorProto field = 2;\n * and FieldDescriptorProto.name has field number 1:\n * optional string name = 1;\n *\n * Thus, the above path gives the location of a field name. If we removed\n * the last element:\n * [ 4, 3, 2, 7 ]\n * this path refers to the whole field declaration (from the beginning\n * of the label to the terminating semicolon).\n *\n * @generated from field: repeated int32 path = 1 [packed = true];\n */\n this.path = [];\n /**\n * Always has exactly three or four elements: start line, start column,\n * end line (optional, otherwise assumed same as start line), end column.\n * These are packed into a single field for efficiency. Note that line\n * and column numbers are zero-based -- typically you will want to add\n * 1 to each before displaying to a user.\n *\n * @generated from field: repeated int32 span = 2 [packed = true];\n */\n this.span = [];\n /**\n * @generated from field: repeated string leading_detached_comments = 6;\n */\n this.leadingDetachedComments = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new SourceCodeInfo_Location().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new SourceCodeInfo_Location().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new SourceCodeInfo_Location().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(SourceCodeInfo_Location, a, b);\n }\n}\nSourceCodeInfo_Location.runtime = proto2;\nSourceCodeInfo_Location.typeName = \"google.protobuf.SourceCodeInfo.Location\";\nSourceCodeInfo_Location.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"path\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true, packed: true },\n { no: 2, name: \"span\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true, packed: true },\n { no: 3, name: \"leading_comments\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"trailing_comments\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"leading_detached_comments\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n]);\n/**\n * Describes the relationship between generated code and its original source\n * file. A GeneratedCodeInfo message is associated with only one generated\n * source file, but may contain references to different source .proto files.\n *\n * @generated from message google.protobuf.GeneratedCodeInfo\n */\nexport class GeneratedCodeInfo extends Message {\n constructor(data) {\n super();\n /**\n * An Annotation connects some span of text in generated code to an element\n * of its generating .proto file.\n *\n * @generated from field: repeated google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;\n */\n this.annotation = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new GeneratedCodeInfo().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new GeneratedCodeInfo().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new GeneratedCodeInfo().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(GeneratedCodeInfo, a, b);\n }\n}\nGeneratedCodeInfo.runtime = proto2;\nGeneratedCodeInfo.typeName = \"google.protobuf.GeneratedCodeInfo\";\nGeneratedCodeInfo.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"annotation\", kind: \"message\", T: GeneratedCodeInfo_Annotation, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.GeneratedCodeInfo.Annotation\n */\nexport class GeneratedCodeInfo_Annotation extends Message {\n constructor(data) {\n super();\n /**\n * Identifies the element in the original source .proto file. This field\n * is formatted the same as SourceCodeInfo.Location.path.\n *\n * @generated from field: repeated int32 path = 1 [packed = true];\n */\n this.path = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new GeneratedCodeInfo_Annotation().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new GeneratedCodeInfo_Annotation().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new GeneratedCodeInfo_Annotation().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(GeneratedCodeInfo_Annotation, a, b);\n }\n}\nGeneratedCodeInfo_Annotation.runtime = proto2;\nGeneratedCodeInfo_Annotation.typeName = \"google.protobuf.GeneratedCodeInfo.Annotation\";\nGeneratedCodeInfo_Annotation.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"path\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true, packed: true },\n { no: 2, name: \"source_file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"begin\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"semantic\", kind: \"enum\", T: proto2.getEnumType(GeneratedCodeInfo_Annotation_Semantic), opt: true },\n]);\n/**\n * Represents the identified object's effect on the element in the original\n * .proto file.\n *\n * @generated from enum google.protobuf.GeneratedCodeInfo.Annotation.Semantic\n */\nexport var GeneratedCodeInfo_Annotation_Semantic;\n(function (GeneratedCodeInfo_Annotation_Semantic) {\n /**\n * There is no effect or the effect is indescribable.\n *\n * @generated from enum value: NONE = 0;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"NONE\"] = 0] = \"NONE\";\n /**\n * The element is set or otherwise mutated.\n *\n * @generated from enum value: SET = 1;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"SET\"] = 1] = \"SET\";\n /**\n * An alias to the element is returned.\n *\n * @generated from enum value: ALIAS = 2;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"ALIAS\"] = 2] = \"ALIAS\";\n})(GeneratedCodeInfo_Annotation_Semantic || (GeneratedCodeInfo_Annotation_Semantic = {}));\n// Retrieve enum metadata with: proto2.getEnumType(GeneratedCodeInfo_Annotation_Semantic)\nproto2.util.setEnumType(GeneratedCodeInfo_Annotation_Semantic, \"google.protobuf.GeneratedCodeInfo.Annotation.Semantic\", [\n { no: 0, name: \"NONE\" },\n { no: 1, name: \"SET\" },\n { no: 2, name: \"ALIAS\" },\n]);\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../../message.js\";\nimport { proto3 } from \"../../proto3.js\";\n/**\n * A generic empty message that you can re-use to avoid defining duplicated\n * empty messages in your APIs. A typical example is to use it as the request\n * or the response type of an API method. For instance:\n *\n * service Foo {\n * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n * }\n *\n *\n * @generated from message google.protobuf.Empty\n */\nexport class Empty extends Message {\n constructor(data) {\n super();\n proto3.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new Empty().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new Empty().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new Empty().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto3.util.equals(Empty, a, b);\n }\n}\nEmpty.runtime = proto3;\nEmpty.typeName = \"google.protobuf.Empty\";\nEmpty.fields = proto3.util.newFieldList(() => []);\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file user/user.proto (package user, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message user.VerifyUserRequest\n */\nexport class VerifyUserRequest extends Message {\n /**\n * @generated from field: string secret = 1;\n */\n secret = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.VerifyUserRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): VerifyUserRequest {\n return new VerifyUserRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): VerifyUserRequest {\n return new VerifyUserRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): VerifyUserRequest {\n return new VerifyUserRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: VerifyUserRequest | PlainMessage | undefined, b: VerifyUserRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(VerifyUserRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.GroupInfoRequest\n */\nexport class GroupInfoRequest extends Message {\n /**\n * @generated from field: string secret = 1;\n */\n secret = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.GroupInfoRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GroupInfoRequest {\n return new GroupInfoRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GroupInfoRequest {\n return new GroupInfoRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GroupInfoRequest {\n return new GroupInfoRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GroupInfoRequest | PlainMessage | undefined, b: GroupInfoRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GroupInfoRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.GroupID\n */\nexport class GroupID extends Message {\n /**\n * @generated from field: string group_id = 1;\n */\n groupId = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.GroupID\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"group_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GroupID {\n return new GroupID().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GroupID {\n return new GroupID().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GroupID {\n return new GroupID().fromJsonString(jsonString, options);\n }\n\n static equals(a: GroupID | PlainMessage | undefined, b: GroupID | PlainMessage | undefined): boolean {\n return proto3.util.equals(GroupID, a, b);\n }\n}\n\n/**\n * @generated from message user.ShareRequest\n */\nexport class ShareRequest extends Message {\n /**\n * @generated from field: string content_id = 1;\n */\n contentId = \"\";\n\n /**\n * @generated from field: string group_id = 2;\n */\n groupId = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.ShareRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"group_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ShareRequest {\n return new ShareRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ShareRequest {\n return new ShareRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ShareRequest {\n return new ShareRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ShareRequest | PlainMessage | undefined, b: ShareRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ShareRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.GroupInvite\n */\nexport class GroupInvite extends Message {\n /**\n * @generated from field: string secret = 1;\n */\n secret = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.GroupInvite\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GroupInvite {\n return new GroupInvite().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GroupInvite {\n return new GroupInvite().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GroupInvite {\n return new GroupInvite().fromJsonString(jsonString, options);\n }\n\n static equals(a: GroupInvite | PlainMessage | undefined, b: GroupInvite | PlainMessage | undefined): boolean {\n return proto3.util.equals(GroupInvite, a, b);\n }\n}\n\n/**\n * @generated from message user.Groups\n */\nexport class Groups extends Message {\n /**\n * @generated from field: repeated user.Group groups = 1;\n */\n groups: Group[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.Groups\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"groups\", kind: \"message\", T: Group, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Groups {\n return new Groups().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Groups {\n return new Groups().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Groups {\n return new Groups().fromJsonString(jsonString, options);\n }\n\n static equals(a: Groups | PlainMessage | undefined, b: Groups | PlainMessage | undefined): boolean {\n return proto3.util.equals(Groups, a, b);\n }\n}\n\n/**\n * @generated from message user.AnalyzeConversationRequest\n */\nexport class AnalyzeConversationRequest extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.AnalyzeConversationRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeConversationRequest | PlainMessage | undefined, b: AnalyzeConversationRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeConversationRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.User\n */\nexport class User extends Message {\n /**\n * @generated from field: string email = 1;\n */\n email = \"\";\n\n /**\n * @generated from field: string password = 2;\n */\n password = \"\";\n\n /**\n * @generated from field: string username = 3;\n */\n username = \"\";\n\n /**\n * @generated from field: user.Config config = 4;\n */\n config?: Config;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.User\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"email\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"password\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"username\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"config\", kind: \"message\", T: Config },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): User {\n return new User().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): User {\n return new User().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): User {\n return new User().fromJsonString(jsonString, options);\n }\n\n static equals(a: User | PlainMessage | undefined, b: User | PlainMessage | undefined): boolean {\n return proto3.util.equals(User, a, b);\n }\n}\n\n/**\n * @generated from message user.Group\n */\nexport class Group extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated string users = 3;\n */\n users: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.Group\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"users\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Group {\n return new Group().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Group {\n return new Group().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Group {\n return new Group().fromJsonString(jsonString, options);\n }\n\n static equals(a: Group | PlainMessage | undefined, b: Group | PlainMessage | undefined): boolean {\n return proto3.util.equals(Group, a, b);\n }\n}\n\n/**\n * @generated from message user.Config\n */\nexport class Config extends Message {\n /**\n * @generated from field: repeated string domain_whitelist = 1;\n */\n domainWhitelist: string[] = [];\n\n /**\n * @generated from field: bool offline_voice = 2;\n */\n offlineVoice = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.Config\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"domain_whitelist\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"offline_voice\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Config {\n return new Config().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Config {\n return new Config().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Config {\n return new Config().fromJsonString(jsonString, options);\n }\n\n static equals(a: Config | PlainMessage | undefined, b: Config | PlainMessage | undefined): boolean {\n return proto3.util.equals(Config, a, b);\n }\n}\n\n/**\n * @generated from message user.LoginResponse\n */\nexport class LoginResponse extends Message {\n /**\n * @generated from field: user.User user = 1;\n */\n user?: User;\n\n /**\n * @generated from field: bool success = 2;\n */\n success = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.LoginResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"message\", T: User },\n { no: 2, name: \"success\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): LoginResponse {\n return new LoginResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): LoginResponse {\n return new LoginResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): LoginResponse {\n return new LoginResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: LoginResponse | PlainMessage | undefined, b: LoginResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(LoginResponse, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file content/chatgpt/conversation.proto (package chatgpt, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message as Message$1, proto3, protoInt64 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message chatgpt.Conversation\n */\nexport class Conversation extends Message$1 {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: double create_time = 2;\n */\n createTime = 0;\n\n /**\n * @generated from field: double update_time = 3;\n */\n updateTime = 0;\n\n /**\n * @generated from field: map mapping = 4;\n */\n mapping: { [key: string]: Node } = {};\n\n /**\n * @generated from field: string conversation_id = 5;\n */\n conversationId = \"\";\n\n /**\n * @generated from field: string conversation_template_id = 6;\n */\n conversationTemplateId = \"\";\n\n /**\n * @generated from field: string current_node = 7;\n */\n currentNode = \"\";\n\n /**\n * @generated from field: string gizmo_id = 8;\n */\n gizmoId = \"\";\n\n /**\n * moderation_results = []\n * plugin_ids = null\n * safe_urls = []\n *\n * @generated from field: bool is_archived = 9;\n */\n isArchived = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Conversation\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"create_time\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 3, name: \"update_time\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 4, name: \"mapping\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: Node} },\n { no: 5, name: \"conversation_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"conversation_template_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"current_node\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 8, name: \"gizmo_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 9, name: \"is_archived\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Conversation {\n return new Conversation().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Conversation {\n return new Conversation().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Conversation {\n return new Conversation().fromJsonString(jsonString, options);\n }\n\n static equals(a: Conversation | PlainMessage | undefined, b: Conversation | PlainMessage | undefined): boolean {\n return proto3.util.equals(Conversation, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.Node\n */\nexport class Node extends Message$1 {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: chatgpt.Message message = 2;\n */\n message?: Message;\n\n /**\n * @generated from field: string parent = 3;\n */\n parent = \"\";\n\n /**\n * @generated from field: repeated string children = 4;\n */\n children: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Node\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"message\", kind: \"message\", T: Message },\n { no: 3, name: \"parent\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"children\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Node {\n return new Node().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Node {\n return new Node().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Node {\n return new Node().fromJsonString(jsonString, options);\n }\n\n static equals(a: Node | PlainMessage | undefined, b: Node | PlainMessage | undefined): boolean {\n return proto3.util.equals(Node, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.Message\n */\nexport class Message extends Message$1 {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: chatgpt.Author author = 2;\n */\n author?: Author;\n\n /**\n * Optional, based on usage in JSON\n *\n * @generated from field: double create_time = 3;\n */\n createTime = 0;\n\n /**\n * @generated from field: chatgpt.Content content = 4;\n */\n content?: Content;\n\n /**\n * @generated from field: string status = 5;\n */\n status = \"\";\n\n /**\n * Optional, based on usage in JSON\n *\n * @generated from field: bool end_turn = 6;\n */\n endTurn = false;\n\n /**\n * @generated from field: int32 weight = 7;\n */\n weight = 0;\n\n /**\n * @generated from field: chatgpt.MessageMetadata metadata = 8;\n */\n metadata?: MessageMetadata;\n\n /**\n * @generated from field: string recipient = 9;\n */\n recipient = \"\";\n\n /**\n * @generated from field: double update_time = 10;\n */\n updateTime = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Message\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"author\", kind: \"message\", T: Author },\n { no: 3, name: \"create_time\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 4, name: \"content\", kind: \"message\", T: Content },\n { no: 5, name: \"status\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"end_turn\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 7, name: \"weight\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 8, name: \"metadata\", kind: \"message\", T: MessageMetadata },\n { no: 9, name: \"recipient\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 10, name: \"update_time\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Message {\n return new Message().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Message {\n return new Message().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Message {\n return new Message().fromJsonString(jsonString, options);\n }\n\n static equals(a: Message | PlainMessage | undefined, b: Message | PlainMessage | undefined): boolean {\n return proto3.util.equals(Message, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.MessageMetadata\n */\nexport class MessageMetadata extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.MessageMetadata\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): MessageMetadata {\n return new MessageMetadata().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): MessageMetadata {\n return new MessageMetadata().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): MessageMetadata {\n return new MessageMetadata().fromJsonString(jsonString, options);\n }\n\n static equals(a: MessageMetadata | PlainMessage | undefined, b: MessageMetadata | PlainMessage | undefined): boolean {\n return proto3.util.equals(MessageMetadata, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.Author\n */\nexport class Author extends Message$1 {\n /**\n * @generated from field: string role = 1;\n */\n role = \"\";\n\n /**\n * @generated from field: chatgpt.AuthorMetadata metadata = 2;\n */\n metadata?: AuthorMetadata;\n\n /**\n * @generated from field: string name = 3;\n */\n name = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Author\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"role\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"metadata\", kind: \"message\", T: AuthorMetadata },\n { no: 3, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Author {\n return new Author().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Author {\n return new Author().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Author {\n return new Author().fromJsonString(jsonString, options);\n }\n\n static equals(a: Author | PlainMessage | undefined, b: Author | PlainMessage | undefined): boolean {\n return proto3.util.equals(Author, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.Content\n */\nexport class Content extends Message$1 {\n /**\n * \"text\" or \"dalle.text2im\", prob others too\n *\n * @generated from field: string content_type = 1;\n */\n contentType = \"\";\n\n /**\n * TODO breadchris make this work for images\n * google.protobuf.Value parts = 2;\n *\n * @generated from field: repeated string text_parts = 2;\n */\n textParts: string[] = [];\n\n /**\n * @generated from field: repeated chatgpt.ImageAsset image_parts = 3;\n */\n imageParts: ImageAsset[] = [];\n\n /**\n * @generated from field: string text = 4;\n */\n text = \"\";\n\n /**\n * deprecated\n *\n * @generated from field: repeated string parts = 5;\n */\n parts: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Content\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text_parts\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 3, name: \"image_parts\", kind: \"message\", T: ImageAsset, repeated: true },\n { no: 4, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"parts\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Content {\n return new Content().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Content {\n return new Content().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Content {\n return new Content().fromJsonString(jsonString, options);\n }\n\n static equals(a: Content | PlainMessage | undefined, b: Content | PlainMessage | undefined): boolean {\n return proto3.util.equals(Content, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.ImageAsset\n */\nexport class ImageAsset extends Message$1 {\n /**\n * @generated from field: string content_type = 1;\n */\n contentType = \"\";\n\n /**\n * @generated from field: string asset_pointer = 2;\n */\n assetPointer = \"\";\n\n /**\n * @generated from field: int64 size_bytes = 3;\n */\n sizeBytes = protoInt64.zero;\n\n /**\n * @generated from field: int32 width = 4;\n */\n width = 0;\n\n /**\n * @generated from field: int32 height = 5;\n */\n height = 0;\n\n /**\n * @generated from field: int32 fovea = 6;\n */\n fovea = 0;\n\n /**\n * @generated from field: chatgpt.Metadata metadata = 7;\n */\n metadata?: Metadata;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.ImageAsset\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"asset_pointer\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"size_bytes\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 4, name: \"width\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 5, name: \"height\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 6, name: \"fovea\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 7, name: \"metadata\", kind: \"message\", T: Metadata },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ImageAsset {\n return new ImageAsset().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ImageAsset {\n return new ImageAsset().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ImageAsset {\n return new ImageAsset().fromJsonString(jsonString, options);\n }\n\n static equals(a: ImageAsset | PlainMessage | undefined, b: ImageAsset | PlainMessage | undefined): boolean {\n return proto3.util.equals(ImageAsset, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.Metadata\n */\nexport class Metadata extends Message$1 {\n /**\n * @generated from field: chatgpt.DalleMetadata dalle = 1;\n */\n dalle?: DalleMetadata;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Metadata\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"dalle\", kind: \"message\", T: DalleMetadata },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Metadata {\n return new Metadata().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Metadata {\n return new Metadata().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Metadata {\n return new Metadata().fromJsonString(jsonString, options);\n }\n\n static equals(a: Metadata | PlainMessage | undefined, b: Metadata | PlainMessage | undefined): boolean {\n return proto3.util.equals(Metadata, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.DalleMetadata\n */\nexport class DalleMetadata extends Message$1 {\n /**\n * @generated from field: string gen_id = 1;\n */\n genId = \"\";\n\n /**\n * @generated from field: string prompt = 2;\n */\n prompt = \"\";\n\n /**\n * @generated from field: uint32 seed = 3;\n */\n seed = 0;\n\n /**\n * @generated from field: string serialization_title = 4;\n */\n serializationTitle = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.DalleMetadata\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"gen_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"prompt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"seed\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 4, name: \"serialization_title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): DalleMetadata {\n return new DalleMetadata().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): DalleMetadata {\n return new DalleMetadata().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): DalleMetadata {\n return new DalleMetadata().fromJsonString(jsonString, options);\n }\n\n static equals(a: DalleMetadata | PlainMessage | undefined, b: DalleMetadata | PlainMessage | undefined): boolean {\n return proto3.util.equals(DalleMetadata, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.AuthorMetadata\n */\nexport class AuthorMetadata extends Message$1 {\n /**\n * This message can be extended based on the different key-value pairs found in your JSON's metadata.\n * For example:\n *\n * @generated from field: repeated chatgpt.Attachment attachments = 1;\n */\n attachments: Attachment[] = [];\n\n /**\n * Use string for timestamps to avoid precision issues, or use int64/uint64 if they represent epoch time.\n *\n * @generated from field: string timestamp_ = 2;\n */\n timestamp = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.AuthorMetadata\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"attachments\", kind: \"message\", T: Attachment, repeated: true },\n { no: 2, name: \"timestamp_\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AuthorMetadata {\n return new AuthorMetadata().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AuthorMetadata {\n return new AuthorMetadata().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AuthorMetadata {\n return new AuthorMetadata().fromJsonString(jsonString, options);\n }\n\n static equals(a: AuthorMetadata | PlainMessage | undefined, b: AuthorMetadata | PlainMessage | undefined): boolean {\n return proto3.util.equals(AuthorMetadata, a, b);\n }\n}\n\n/**\n * @generated from message chatgpt.Attachment\n */\nexport class Attachment extends Message$1 {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: string mimeType = 3;\n */\n mimeType = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chatgpt.Attachment\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"mimeType\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Attachment {\n return new Attachment().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Attachment {\n return new Attachment().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Attachment {\n return new Attachment().fromJsonString(jsonString, options);\n }\n\n static equals(a: Attachment | PlainMessage | undefined, b: Attachment | PlainMessage | undefined): boolean {\n return proto3.util.equals(Attachment, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file content/browser/history.proto (package browser, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message browser.History\n */\nexport class History extends Message {\n /**\n * @generated from field: repeated browser.Node nodes = 1;\n */\n nodes: Node[] = [];\n\n /**\n * @generated from field: repeated browser.Edge edges = 2;\n */\n edges: Edge[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"browser.History\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"nodes\", kind: \"message\", T: Node, repeated: true },\n { no: 2, name: \"edges\", kind: \"message\", T: Edge, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): History {\n return new History().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): History {\n return new History().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): History {\n return new History().fromJsonString(jsonString, options);\n }\n\n static equals(a: History | PlainMessage | undefined, b: History | PlainMessage | undefined): boolean {\n return proto3.util.equals(History, a, b);\n }\n}\n\n/**\n * @generated from message browser.Node\n */\nexport class Node extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string url = 2;\n */\n url = \"\";\n\n /**\n * @generated from field: string title = 3;\n */\n title = \"\";\n\n /**\n * @generated from field: double open = 4;\n */\n open = 0;\n\n /**\n * @generated from field: double close = 5;\n */\n close = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"browser.Node\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"open\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 5, name: \"close\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Node {\n return new Node().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Node {\n return new Node().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Node {\n return new Node().fromJsonString(jsonString, options);\n }\n\n static equals(a: Node | PlainMessage | undefined, b: Node | PlainMessage | undefined): boolean {\n return proto3.util.equals(Node, a, b);\n }\n}\n\n/**\n * @generated from message browser.Edge\n */\nexport class Edge extends Message {\n /**\n * @generated from field: string from = 1;\n */\n from = \"\";\n\n /**\n * @generated from field: string to = 2;\n */\n to = \"\";\n\n /**\n * @generated from field: string tab = 3;\n */\n tab = \"\";\n\n /**\n * @generated from field: double visit_time = 4;\n */\n visitTime = 0;\n\n /**\n * @generated from field: double visit_duration = 5;\n */\n visitDuration = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"browser.Edge\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"from\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"to\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"tab\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"visit_time\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 5, name: \"visit_duration\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Edge {\n return new Edge().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Edge {\n return new Edge().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Edge {\n return new Edge().fromJsonString(jsonString, options);\n }\n\n static equals(a: Edge | PlainMessage | undefined, b: Edge | PlainMessage | undefined): boolean {\n return proto3.util.equals(Edge, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file content/blog.proto (package content, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message content.HugoConfig\n */\nexport class HugoConfig extends Message {\n /**\n * @generated from field: string publish_dir = 1;\n */\n publishDir = \"\";\n\n /**\n * @generated from field: string base_url = 2;\n */\n baseUrl = \"\";\n\n /**\n * @generated from field: string title = 3;\n */\n title = \"\";\n\n /**\n * @generated from field: int32 paginate = 4;\n */\n paginate = 0;\n\n /**\n * @generated from field: repeated string theme = 5;\n */\n theme: string[] = [];\n\n /**\n * @generated from field: bool enable_inline_shortcodes = 6;\n */\n enableInlineShortcodes = false;\n\n /**\n * @generated from field: bool enable_robots_txt = 7;\n */\n enableRobotsTxt = false;\n\n /**\n * @generated from field: bool build_drafts = 8;\n */\n buildDrafts = false;\n\n /**\n * @generated from field: bool build_future = 9;\n */\n buildFuture = false;\n\n /**\n * @generated from field: bool build_expired = 10;\n */\n buildExpired = false;\n\n /**\n * @generated from field: bool enable_emoji = 11;\n */\n enableEmoji = false;\n\n /**\n * @generated from field: bool pygments_use_classes = 12;\n */\n pygmentsUseClasses = false;\n\n /**\n * @generated from field: repeated string main_sections = 13;\n */\n mainSections: string[] = [];\n\n /**\n * @generated from field: content.MinifyConfig minify = 14;\n */\n minify?: MinifyConfig;\n\n /**\n * @generated from field: map languages = 15;\n */\n languages: { [key: string]: LanguageConfig } = {};\n\n /**\n * @generated from field: map outputs = 16;\n */\n outputs: { [key: string]: RepeatedString } = {};\n\n /**\n * @generated from field: content.ParamsConfig params = 17;\n */\n params?: ParamsConfig;\n\n /**\n * @generated from field: content.MarkupConfig markup = 18;\n */\n markup?: MarkupConfig;\n\n /**\n * @generated from field: content.ServicesConfig services = 19;\n */\n services?: ServicesConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HugoConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"publish_dir\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"base_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"paginate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 5, name: \"theme\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 6, name: \"enable_inline_shortcodes\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 7, name: \"enable_robots_txt\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 8, name: \"build_drafts\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 9, name: \"build_future\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 10, name: \"build_expired\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 11, name: \"enable_emoji\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 12, name: \"pygments_use_classes\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 13, name: \"main_sections\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 14, name: \"minify\", kind: \"message\", T: MinifyConfig },\n { no: 15, name: \"languages\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: LanguageConfig} },\n { no: 16, name: \"outputs\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: RepeatedString} },\n { no: 17, name: \"params\", kind: \"message\", T: ParamsConfig },\n { no: 18, name: \"markup\", kind: \"message\", T: MarkupConfig },\n { no: 19, name: \"services\", kind: \"message\", T: ServicesConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HugoConfig {\n return new HugoConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HugoConfig {\n return new HugoConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HugoConfig {\n return new HugoConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HugoConfig | PlainMessage | undefined, b: HugoConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(HugoConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.MinifyConfig\n */\nexport class MinifyConfig extends Message {\n /**\n * @generated from field: bool disable_xml = 1;\n */\n disableXml = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.MinifyConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"disable_xml\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): MinifyConfig {\n return new MinifyConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): MinifyConfig {\n return new MinifyConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): MinifyConfig {\n return new MinifyConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: MinifyConfig | PlainMessage | undefined, b: MinifyConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(MinifyConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.LanguageConfig\n */\nexport class LanguageConfig extends Message {\n /**\n * @generated from field: string language_name = 1;\n */\n languageName = \"\";\n\n /**\n * @generated from field: int32 weight = 2;\n */\n weight = 0;\n\n /**\n * @generated from field: string title = 3;\n */\n title = \"\";\n\n /**\n * @generated from field: map taxonomies = 4;\n */\n taxonomies: { [key: string]: string } = {};\n\n /**\n * @generated from field: map menu = 5;\n */\n menu: { [key: string]: RepeatedMenuItem } = {};\n\n /**\n * @generated from field: map params = 6;\n */\n params: { [key: string]: string } = {};\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.LanguageConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"language_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"weight\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 3, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"taxonomies\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"scalar\", T: 9 /* ScalarType.STRING */} },\n { no: 5, name: \"menu\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: RepeatedMenuItem} },\n { no: 6, name: \"params\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"scalar\", T: 9 /* ScalarType.STRING */} },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): LanguageConfig {\n return new LanguageConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): LanguageConfig {\n return new LanguageConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): LanguageConfig {\n return new LanguageConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: LanguageConfig | PlainMessage | undefined, b: LanguageConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(LanguageConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.MenuItem\n */\nexport class MenuItem extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: string url = 2;\n */\n url = \"\";\n\n /**\n * @generated from field: int32 weight = 3;\n */\n weight = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.MenuItem\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"weight\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): MenuItem {\n return new MenuItem().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): MenuItem {\n return new MenuItem().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): MenuItem {\n return new MenuItem().fromJsonString(jsonString, options);\n }\n\n static equals(a: MenuItem | PlainMessage | undefined, b: MenuItem | PlainMessage | undefined): boolean {\n return proto3.util.equals(MenuItem, a, b);\n }\n}\n\n/**\n * @generated from message content.EditPostConfig\n */\nexport class EditPostConfig extends Message {\n /**\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n /**\n * @generated from field: string text = 2;\n */\n text = \"\";\n\n /**\n * @generated from field: bool append_file_path = 3;\n */\n appendFilePath = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.EditPostConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"append_file_path\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): EditPostConfig {\n return new EditPostConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): EditPostConfig {\n return new EditPostConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): EditPostConfig {\n return new EditPostConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: EditPostConfig | PlainMessage | undefined, b: EditPostConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(EditPostConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.AssetsConfig\n */\nexport class AssetsConfig extends Message {\n /**\n * @generated from field: bool disable_hljs = 1;\n */\n disableHljs = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.AssetsConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"disable_hljs\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AssetsConfig {\n return new AssetsConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AssetsConfig {\n return new AssetsConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AssetsConfig {\n return new AssetsConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: AssetsConfig | PlainMessage | undefined, b: AssetsConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(AssetsConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.MarkupConfig\n */\nexport class MarkupConfig extends Message {\n /**\n * @generated from field: content.GoldmarkConfig goldmark = 1;\n */\n goldmark?: GoldmarkConfig;\n\n /**\n * @generated from field: content.HighlightConfig highlight = 2;\n */\n highlight?: HighlightConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.MarkupConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"goldmark\", kind: \"message\", T: GoldmarkConfig },\n { no: 2, name: \"highlight\", kind: \"message\", T: HighlightConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): MarkupConfig {\n return new MarkupConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): MarkupConfig {\n return new MarkupConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): MarkupConfig {\n return new MarkupConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: MarkupConfig | PlainMessage | undefined, b: MarkupConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(MarkupConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.GoldmarkConfig\n */\nexport class GoldmarkConfig extends Message {\n /**\n * @generated from field: content.RendererConfig renderer = 1;\n */\n renderer?: RendererConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.GoldmarkConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"renderer\", kind: \"message\", T: RendererConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GoldmarkConfig {\n return new GoldmarkConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GoldmarkConfig {\n return new GoldmarkConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GoldmarkConfig {\n return new GoldmarkConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: GoldmarkConfig | PlainMessage | undefined, b: GoldmarkConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(GoldmarkConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.RendererConfig\n */\nexport class RendererConfig extends Message {\n /**\n * @generated from field: bool unsafe = 1;\n */\n unsafe = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.RendererConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"unsafe\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RendererConfig {\n return new RendererConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RendererConfig {\n return new RendererConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RendererConfig {\n return new RendererConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: RendererConfig | PlainMessage | undefined, b: RendererConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(RendererConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.HighlightConfig\n */\nexport class HighlightConfig extends Message {\n /**\n * @generated from field: bool no_classes = 1;\n */\n noClasses = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HighlightConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"no_classes\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HighlightConfig {\n return new HighlightConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HighlightConfig {\n return new HighlightConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HighlightConfig {\n return new HighlightConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HighlightConfig | PlainMessage | undefined, b: HighlightConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(HighlightConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ServicesConfig\n */\nexport class ServicesConfig extends Message {\n /**\n * @generated from field: content.ServiceConfig instagram = 1;\n */\n instagram?: ServiceConfig;\n\n /**\n * @generated from field: content.ServiceConfig twitter = 2;\n */\n twitter?: ServiceConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ServicesConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"instagram\", kind: \"message\", T: ServiceConfig },\n { no: 2, name: \"twitter\", kind: \"message\", T: ServiceConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ServicesConfig {\n return new ServicesConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ServicesConfig {\n return new ServicesConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ServicesConfig {\n return new ServicesConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ServicesConfig | PlainMessage | undefined, b: ServicesConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ServicesConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ServiceConfig\n */\nexport class ServiceConfig extends Message {\n /**\n * @generated from field: bool disable_inline_css = 1;\n */\n disableInlineCss = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ServiceConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"disable_inline_css\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ServiceConfig {\n return new ServiceConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ServiceConfig {\n return new ServiceConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ServiceConfig {\n return new ServiceConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ServiceConfig | PlainMessage | undefined, b: ServiceConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ServiceConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.RepeatedString\n */\nexport class RepeatedString extends Message {\n /**\n * @generated from field: repeated string values = 1;\n */\n values: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.RepeatedString\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"values\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RepeatedString {\n return new RepeatedString().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RepeatedString {\n return new RepeatedString().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RepeatedString {\n return new RepeatedString().fromJsonString(jsonString, options);\n }\n\n static equals(a: RepeatedString | PlainMessage | undefined, b: RepeatedString | PlainMessage | undefined): boolean {\n return proto3.util.equals(RepeatedString, a, b);\n }\n}\n\n/**\n * @generated from message content.RepeatedMenuItem\n */\nexport class RepeatedMenuItem extends Message {\n /**\n * @generated from field: repeated content.MenuItem items = 1;\n */\n items: MenuItem[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.RepeatedMenuItem\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"items\", kind: \"message\", T: MenuItem, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RepeatedMenuItem {\n return new RepeatedMenuItem().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RepeatedMenuItem {\n return new RepeatedMenuItem().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RepeatedMenuItem {\n return new RepeatedMenuItem().fromJsonString(jsonString, options);\n }\n\n static equals(a: RepeatedMenuItem | PlainMessage | undefined, b: RepeatedMenuItem | PlainMessage | undefined): boolean {\n return proto3.util.equals(RepeatedMenuItem, a, b);\n }\n}\n\n/**\n * @generated from message content.ParamsConfig\n */\nexport class ParamsConfig extends Message {\n /**\n * @generated from field: string env = 1;\n */\n env = \"\";\n\n /**\n * @generated from field: string description = 2;\n */\n description = \"\";\n\n /**\n * @generated from field: string author = 3;\n */\n author = \"\";\n\n /**\n * @generated from field: string default_theme = 4;\n */\n defaultTheme = \"\";\n\n /**\n * @generated from field: bool show_share_buttons = 5;\n */\n showShareButtons = false;\n\n /**\n * @generated from field: bool show_reading_time = 6;\n */\n showReadingTime = false;\n\n /**\n * @generated from field: bool display_full_lang_name = 7;\n */\n displayFullLangName = false;\n\n /**\n * @generated from field: bool show_post_nav_links = 8;\n */\n showPostNavLinks = false;\n\n /**\n * @generated from field: bool show_bread_crumbs = 9;\n */\n showBreadCrumbs = false;\n\n /**\n * @generated from field: bool show_code_copy_buttons = 10;\n */\n showCodeCopyButtons = false;\n\n /**\n * @generated from field: bool show_rss_button_in_section_term_list = 11;\n */\n showRssButtonInSectionTermList = false;\n\n /**\n * @generated from field: bool show_all_pages_in_archive = 12;\n */\n showAllPagesInArchive = false;\n\n /**\n * @generated from field: bool show_page_nums = 13;\n */\n showPageNums = false;\n\n /**\n * @generated from field: bool show_toc = 14;\n */\n showToc = false;\n\n /**\n * @generated from field: repeated string images = 15;\n */\n images: string[] = [];\n\n /**\n * @generated from field: content.ProfileModeConfig profile_mode = 16;\n */\n profileMode?: ProfileModeConfig;\n\n /**\n * @generated from field: content.HomeInfoParamsConfig home_info_params = 17;\n */\n homeInfoParams?: HomeInfoParamsConfig;\n\n /**\n * @generated from field: repeated content.SocialIconConfig social_icons = 18;\n */\n socialIcons: SocialIconConfig[] = [];\n\n /**\n * @generated from field: content.EditPostConfig edit_post = 19;\n */\n editPost?: EditPostConfig;\n\n /**\n * @generated from field: content.AssetsConfig assets = 20;\n */\n assets?: AssetsConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ParamsConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"env\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"author\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"default_theme\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"show_share_buttons\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 6, name: \"show_reading_time\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 7, name: \"display_full_lang_name\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 8, name: \"show_post_nav_links\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 9, name: \"show_bread_crumbs\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 10, name: \"show_code_copy_buttons\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 11, name: \"show_rss_button_in_section_term_list\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 12, name: \"show_all_pages_in_archive\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 13, name: \"show_page_nums\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 14, name: \"show_toc\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 15, name: \"images\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 16, name: \"profile_mode\", kind: \"message\", T: ProfileModeConfig },\n { no: 17, name: \"home_info_params\", kind: \"message\", T: HomeInfoParamsConfig },\n { no: 18, name: \"social_icons\", kind: \"message\", T: SocialIconConfig, repeated: true },\n { no: 19, name: \"edit_post\", kind: \"message\", T: EditPostConfig },\n { no: 20, name: \"assets\", kind: \"message\", T: AssetsConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ParamsConfig {\n return new ParamsConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ParamsConfig {\n return new ParamsConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ParamsConfig {\n return new ParamsConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ParamsConfig | PlainMessage | undefined, b: ParamsConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ParamsConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ProfileModeConfig\n */\nexport class ProfileModeConfig extends Message {\n /**\n * @generated from field: bool enabled = 1;\n */\n enabled = false;\n\n /**\n * @generated from field: string title = 2;\n */\n title = \"\";\n\n /**\n * @generated from field: string image_url = 3;\n */\n imageUrl = \"\";\n\n /**\n * @generated from field: string image_title = 4;\n */\n imageTitle = \"\";\n\n /**\n * @generated from field: repeated content.ButtonConfig buttons = 5;\n */\n buttons: ButtonConfig[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ProfileModeConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"enabled\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 2, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"image_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"image_title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"buttons\", kind: \"message\", T: ButtonConfig, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ProfileModeConfig {\n return new ProfileModeConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ProfileModeConfig {\n return new ProfileModeConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ProfileModeConfig {\n return new ProfileModeConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ProfileModeConfig | PlainMessage | undefined, b: ProfileModeConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ProfileModeConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ButtonConfig\n */\nexport class ButtonConfig extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: string url = 2;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ButtonConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ButtonConfig {\n return new ButtonConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ButtonConfig {\n return new ButtonConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ButtonConfig {\n return new ButtonConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ButtonConfig | PlainMessage | undefined, b: ButtonConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ButtonConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.HomeInfoParamsConfig\n */\nexport class HomeInfoParamsConfig extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string content = 2;\n */\n content = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HomeInfoParamsConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"content\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HomeInfoParamsConfig {\n return new HomeInfoParamsConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HomeInfoParamsConfig {\n return new HomeInfoParamsConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HomeInfoParamsConfig {\n return new HomeInfoParamsConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HomeInfoParamsConfig | PlainMessage | undefined, b: HomeInfoParamsConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(HomeInfoParamsConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.SocialIconConfig\n */\nexport class SocialIconConfig extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: string title = 2;\n */\n title = \"\";\n\n /**\n * @generated from field: string url = 3;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.SocialIconConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SocialIconConfig {\n return new SocialIconConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SocialIconConfig {\n return new SocialIconConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SocialIconConfig {\n return new SocialIconConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: SocialIconConfig | PlainMessage | undefined, b: SocialIconConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(SocialIconConfig, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file content/content.proto (package content, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { DescriptorProto, EnumDescriptorProto, Message, proto3, protoInt64 } from \"@bufbuild/protobuf\";\nimport { User } from \"../user/user_pb.js\";\nimport { Conversation } from \"./chatgpt/conversation_pb.js\";\nimport { History } from \"./browser/history_pb.js\";\nimport { HugoConfig, MenuItem } from \"./blog_pb.js\";\n\n/**\n * @generated from message content.InferRequest\n */\nexport class InferRequest extends Message {\n /**\n * @generated from field: string prompt = 1;\n */\n prompt = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.InferRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): InferRequest {\n return new InferRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): InferRequest {\n return new InferRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): InferRequest {\n return new InferRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: InferRequest | PlainMessage | undefined, b: InferRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(InferRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.InferResponse\n */\nexport class InferResponse extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.InferResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): InferResponse {\n return new InferResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): InferResponse {\n return new InferResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): InferResponse {\n return new InferResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: InferResponse | PlainMessage | undefined, b: InferResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(InferResponse, a, b);\n }\n}\n\n/**\n * @generated from message content.TypesResponse\n */\nexport class TypesResponse extends Message {\n /**\n * @generated from field: content.GRPCTypeInfo content = 1;\n */\n content?: GRPCTypeInfo;\n\n /**\n * @generated from field: content.GRPCTypeInfo site = 2;\n */\n site?: GRPCTypeInfo;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.TypesResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: GRPCTypeInfo },\n { no: 2, name: \"site\", kind: \"message\", T: GRPCTypeInfo },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): TypesResponse {\n return new TypesResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): TypesResponse {\n return new TypesResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): TypesResponse {\n return new TypesResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: TypesResponse | PlainMessage | undefined, b: TypesResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(TypesResponse, a, b);\n }\n}\n\n/**\n * @generated from message content.GetSourcesRequest\n */\nexport class GetSourcesRequest extends Message {\n /**\n * @generated from field: repeated string content_types = 1;\n */\n contentTypes: string[] = [];\n\n /**\n * @generated from field: repeated string tags = 2;\n */\n tags: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.GetSourcesRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_types\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSourcesRequest {\n return new GetSourcesRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSourcesRequest {\n return new GetSourcesRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSourcesRequest {\n return new GetSourcesRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSourcesRequest | PlainMessage | undefined, b: GetSourcesRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSourcesRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.VoiceInputRequest\n */\nexport class VoiceInputRequest extends Message {\n /**\n * @generated from field: int32 capture_device = 1;\n */\n captureDevice = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.VoiceInputRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"capture_device\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): VoiceInputRequest {\n return new VoiceInputRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): VoiceInputRequest {\n return new VoiceInputRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): VoiceInputRequest {\n return new VoiceInputRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: VoiceInputRequest | PlainMessage | undefined, b: VoiceInputRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(VoiceInputRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.VoiceInputResponse\n */\nexport class VoiceInputResponse extends Message {\n /**\n * @generated from field: content.Segment segment = 1;\n */\n segment?: Segment;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.VoiceInputResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"segment\", kind: \"message\", T: Segment },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): VoiceInputResponse {\n return new VoiceInputResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): VoiceInputResponse {\n return new VoiceInputResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): VoiceInputResponse {\n return new VoiceInputResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: VoiceInputResponse | PlainMessage | undefined, b: VoiceInputResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(VoiceInputResponse, a, b);\n }\n}\n\n/**\n * @generated from message content.RelateRequest\n */\nexport class RelateRequest extends Message {\n /**\n * @generated from field: string parent = 1;\n */\n parent = \"\";\n\n /**\n * @generated from field: repeated string children = 2;\n */\n children: string[] = [];\n\n /**\n * @generated from field: bool connect = 3;\n */\n connect = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.RelateRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"parent\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"children\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 3, name: \"connect\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RelateRequest {\n return new RelateRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RelateRequest {\n return new RelateRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RelateRequest {\n return new RelateRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: RelateRequest | PlainMessage | undefined, b: RelateRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(RelateRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.Sources\n */\nexport class Sources extends Message {\n /**\n * @generated from field: repeated content.EnumeratedSource sources = 1;\n */\n sources: EnumeratedSource[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Sources\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"sources\", kind: \"message\", T: EnumeratedSource, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Sources {\n return new Sources().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Sources {\n return new Sources().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Sources {\n return new Sources().fromJsonString(jsonString, options);\n }\n\n static equals(a: Sources | PlainMessage | undefined, b: Sources | PlainMessage | undefined): boolean {\n return proto3.util.equals(Sources, a, b);\n }\n}\n\n/**\n * @generated from message content.EnumeratedSource\n */\nexport class EnumeratedSource extends Message {\n /**\n * @generated from field: content.Source source = 1;\n */\n source?: Source;\n\n /**\n * @generated from field: repeated content.DisplayContent display_content = 2;\n */\n displayContent: DisplayContent[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.EnumeratedSource\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"source\", kind: \"message\", T: Source },\n { no: 2, name: \"display_content\", kind: \"message\", T: DisplayContent, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): EnumeratedSource {\n return new EnumeratedSource().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): EnumeratedSource {\n return new EnumeratedSource().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): EnumeratedSource {\n return new EnumeratedSource().fromJsonString(jsonString, options);\n }\n\n static equals(a: EnumeratedSource | PlainMessage | undefined, b: EnumeratedSource | PlainMessage | undefined): boolean {\n return proto3.util.equals(EnumeratedSource, a, b);\n }\n}\n\n/**\n * @generated from message content.DisplayContent\n */\nexport class DisplayContent extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string description = 2;\n */\n description = \"\";\n\n /**\n * @generated from field: string type = 3;\n */\n type = \"\";\n\n /**\n * @generated from field: content.Content content = 4;\n */\n content?: Content;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.DisplayContent\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"content\", kind: \"message\", T: Content },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): DisplayContent {\n return new DisplayContent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): DisplayContent {\n return new DisplayContent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): DisplayContent {\n return new DisplayContent().fromJsonString(jsonString, options);\n }\n\n static equals(a: DisplayContent | PlainMessage | undefined, b: DisplayContent | PlainMessage | undefined): boolean {\n return proto3.util.equals(DisplayContent, a, b);\n }\n}\n\n/**\n * @generated from message content.Source\n */\nexport class Source extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from oneof content.Source.type\n */\n type: {\n /**\n * @generated from field: content.Server server = 2;\n */\n value: Server;\n case: \"server\";\n } | {\n /**\n * @generated from field: content.Folder folder = 3;\n */\n value: Folder;\n case: \"folder\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Source\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"server\", kind: \"message\", T: Server, oneof: \"type\" },\n { no: 3, name: \"folder\", kind: \"message\", T: Folder, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Source {\n return new Source().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Source {\n return new Source().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Source {\n return new Source().fromJsonString(jsonString, options);\n }\n\n static equals(a: Source | PlainMessage | undefined, b: Source | PlainMessage | undefined): boolean {\n return proto3.util.equals(Source, a, b);\n }\n}\n\n/**\n * @generated from message content.Server\n */\nexport class Server extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Server\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Server {\n return new Server().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Server {\n return new Server().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Server {\n return new Server().fromJsonString(jsonString, options);\n }\n\n static equals(a: Server | PlainMessage | undefined, b: Server | PlainMessage | undefined): boolean {\n return proto3.util.equals(Server, a, b);\n }\n}\n\n/**\n * @generated from message content.Folder\n */\nexport class Folder extends Message {\n /**\n * @generated from field: string path = 2;\n */\n path = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Folder\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 2, name: \"path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Folder {\n return new Folder().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Folder {\n return new Folder().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Folder {\n return new Folder().fromJsonString(jsonString, options);\n }\n\n static equals(a: Folder | PlainMessage | undefined, b: Folder | PlainMessage | undefined): boolean {\n return proto3.util.equals(Folder, a, b);\n }\n}\n\n/**\n * @generated from message content.SetTagsRequest\n */\nexport class SetTagsRequest extends Message {\n /**\n * @generated from field: string content_id = 1;\n */\n contentId = \"\";\n\n /**\n * @generated from field: repeated string tags = 2;\n */\n tags: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.SetTagsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SetTagsRequest {\n return new SetTagsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SetTagsRequest {\n return new SetTagsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SetTagsRequest {\n return new SetTagsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: SetTagsRequest | PlainMessage | undefined, b: SetTagsRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(SetTagsRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.TagRequest\n */\nexport class TagRequest extends Message {\n /**\n * @generated from field: string group_id = 1;\n */\n groupId = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.TagRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"group_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): TagRequest {\n return new TagRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): TagRequest {\n return new TagRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): TagRequest {\n return new TagRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: TagRequest | PlainMessage | undefined, b: TagRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(TagRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.Tags\n */\nexport class Tags extends Message {\n /**\n * @generated from field: repeated content.Tag tags = 1;\n */\n tags: Tag[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Tags\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"tags\", kind: \"message\", T: Tag, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Tags {\n return new Tags().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Tags {\n return new Tags().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Tags {\n return new Tags().fromJsonString(jsonString, options);\n }\n\n static equals(a: Tags | PlainMessage | undefined, b: Tags | PlainMessage | undefined): boolean {\n return proto3.util.equals(Tags, a, b);\n }\n}\n\n/**\n * @generated from message content.Tag\n */\nexport class Tag extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated content.Tag sub_tags = 2;\n */\n subTags: Tag[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Tag\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"sub_tags\", kind: \"message\", T: Tag, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Tag {\n return new Tag().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Tag {\n return new Tag().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Tag {\n return new Tag().fromJsonString(jsonString, options);\n }\n\n static equals(a: Tag | PlainMessage | undefined, b: Tag | PlainMessage | undefined): boolean {\n return proto3.util.equals(Tag, a, b);\n }\n}\n\n/**\n * @generated from message content.ContentIDs\n */\nexport class ContentIDs extends Message {\n /**\n * @generated from field: repeated string content_ids = 1;\n */\n contentIds: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ContentIDs\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_ids\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ContentIDs {\n return new ContentIDs().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ContentIDs {\n return new ContentIDs().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ContentIDs {\n return new ContentIDs().fromJsonString(jsonString, options);\n }\n\n static equals(a: ContentIDs | PlainMessage | undefined, b: ContentIDs | PlainMessage | undefined): boolean {\n return proto3.util.equals(ContentIDs, a, b);\n }\n}\n\n/**\n * @generated from message content.Contents\n */\nexport class Contents extends Message {\n /**\n * @generated from field: content.Content content = 1;\n */\n content?: Content;\n\n /**\n * @generated from field: repeated string tags = 2;\n */\n tags: string[] = [];\n\n /**\n * @generated from field: repeated content.Content related = 3;\n */\n related: Content[] = [];\n\n /**\n * @generated from field: repeated string parents = 4;\n */\n parents: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Contents\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: Content },\n { no: 2, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 3, name: \"related\", kind: \"message\", T: Content, repeated: true },\n { no: 4, name: \"parents\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Contents {\n return new Contents().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Contents {\n return new Contents().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Contents {\n return new Contents().fromJsonString(jsonString, options);\n }\n\n static equals(a: Contents | PlainMessage | undefined, b: Contents | PlainMessage | undefined): boolean {\n return proto3.util.equals(Contents, a, b);\n }\n}\n\n/**\n * @generated from message content.Query\n */\nexport class Query extends Message {\n /**\n * @generated from field: string query = 1;\n */\n query = \"\";\n\n /**\n * @generated from field: uint32 page = 2;\n */\n page = 0;\n\n /**\n * @generated from field: string contentID = 3;\n */\n contentID = \"\";\n\n /**\n * @generated from field: string groupID = 4;\n */\n groupID = \"\";\n\n /**\n * @generated from field: repeated string tags = 5;\n */\n tags: string[] = [];\n\n /**\n * @generated from field: repeated string content_types = 6;\n */\n contentTypes: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Query\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"query\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"page\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 3, name: \"contentID\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"groupID\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 6, name: \"content_types\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Query {\n return new Query().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Query {\n return new Query().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Query {\n return new Query().fromJsonString(jsonString, options);\n }\n\n static equals(a: Query | PlainMessage | undefined, b: Query | PlainMessage | undefined): boolean {\n return proto3.util.equals(Query, a, b);\n }\n}\n\n/**\n * @generated from message content.Results\n */\nexport class Results extends Message {\n /**\n * @generated from field: repeated content.StoredContent storedContent = 1;\n */\n storedContent: StoredContent[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Results\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"storedContent\", kind: \"message\", T: StoredContent, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Results {\n return new Results().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Results {\n return new Results().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Results {\n return new Results().fromJsonString(jsonString, options);\n }\n\n static equals(a: Results | PlainMessage | undefined, b: Results | PlainMessage | undefined): boolean {\n return proto3.util.equals(Results, a, b);\n }\n}\n\n/**\n * @generated from message content.StoredContent\n */\nexport class StoredContent extends Message {\n /**\n * @generated from field: content.Content content = 1;\n */\n content?: Content;\n\n /**\n * @generated from field: string id = 2;\n */\n id = \"\";\n\n /**\n * @generated from field: repeated content.Content related = 3;\n */\n related: Content[] = [];\n\n /**\n * @generated from field: string title = 4;\n */\n title = \"\";\n\n /**\n * @generated from field: string description = 5;\n */\n description = \"\";\n\n /**\n * @generated from field: string image = 6;\n */\n image = \"\";\n\n /**\n * @generated from field: string url = 7;\n */\n url = \"\";\n\n /**\n * @generated from field: user.User user = 9;\n */\n user?: User;\n\n /**\n * @generated from field: repeated content.Tag tags = 10;\n */\n tags: Tag[] = [];\n\n /**\n * @generated from field: string preview = 11;\n */\n preview = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.StoredContent\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: Content },\n { no: 2, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"related\", kind: \"message\", T: Content, repeated: true },\n { no: 4, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"image\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 9, name: \"user\", kind: \"message\", T: User },\n { no: 10, name: \"tags\", kind: \"message\", T: Tag, repeated: true },\n { no: 11, name: \"preview\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): StoredContent {\n return new StoredContent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): StoredContent {\n return new StoredContent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): StoredContent {\n return new StoredContent().fromJsonString(jsonString, options);\n }\n\n static equals(a: StoredContent | PlainMessage | undefined, b: StoredContent | PlainMessage | undefined): boolean {\n return proto3.util.equals(StoredContent, a, b);\n }\n}\n\n/**\n * @generated from message content.Edge\n */\nexport class Edge extends Message {\n /**\n * @generated from field: string from = 1;\n */\n from = \"\";\n\n /**\n * @generated from field: string to = 2;\n */\n to = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Edge\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"from\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"to\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Edge {\n return new Edge().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Edge {\n return new Edge().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Edge {\n return new Edge().fromJsonString(jsonString, options);\n }\n\n static equals(a: Edge | PlainMessage | undefined, b: Edge | PlainMessage | undefined): boolean {\n return proto3.util.equals(Edge, a, b);\n }\n}\n\n/**\n * Content has data and metadata\n *\n * @generated from message content.Content\n */\nexport class Content extends Message {\n /**\n * @generated from field: repeated string tags = 1;\n */\n tags: string[] = [];\n\n /**\n * @generated from field: string created_at = 2;\n */\n createdAt = \"\";\n\n /**\n * @generated from field: string uri = 3;\n */\n uri = \"\";\n\n /**\n * @generated from field: string id = 4;\n */\n id = \"\";\n\n /**\n * @generated from oneof content.Content.type\n */\n type: {\n /**\n * @generated from field: content.Data data = 6;\n */\n value: Data;\n case: \"data\";\n } | {\n /**\n * @generated from field: content.Normalized normalized = 7;\n */\n value: Normalized;\n case: \"normalized\";\n } | {\n /**\n * @generated from field: content.Transformed transformed = 8;\n */\n value: Transformed;\n case: \"transformed\";\n } | {\n /**\n * @generated from field: content.Post post = 9;\n */\n value: Post;\n case: \"post\";\n } | {\n /**\n * @generated from field: content.Site site = 10;\n */\n value: Site;\n case: \"site\";\n } | {\n /**\n * @generated from field: chatgpt.Conversation chatgpt_conversation = 11;\n */\n value: Conversation;\n case: \"chatgptConversation\";\n } | {\n /**\n * @generated from field: browser.History browser_history = 12;\n */\n value: History;\n case: \"browserHistory\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Content\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"created_at\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"uri\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"data\", kind: \"message\", T: Data, oneof: \"type\" },\n { no: 7, name: \"normalized\", kind: \"message\", T: Normalized, oneof: \"type\" },\n { no: 8, name: \"transformed\", kind: \"message\", T: Transformed, oneof: \"type\" },\n { no: 9, name: \"post\", kind: \"message\", T: Post, oneof: \"type\" },\n { no: 10, name: \"site\", kind: \"message\", T: Site, oneof: \"type\" },\n { no: 11, name: \"chatgpt_conversation\", kind: \"message\", T: Conversation, oneof: \"type\" },\n { no: 12, name: \"browser_history\", kind: \"message\", T: History, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Content {\n return new Content().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Content {\n return new Content().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Content {\n return new Content().fromJsonString(jsonString, options);\n }\n\n static equals(a: Content | PlainMessage | undefined, b: Content | PlainMessage | undefined): boolean {\n return proto3.util.equals(Content, a, b);\n }\n}\n\n/**\n * @generated from message content.Post\n */\nexport class Post extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string summary = 2;\n */\n summary = \"\";\n\n /**\n * @generated from field: string content = 3;\n */\n content = \"\";\n\n /**\n * @generated from field: repeated string authors = 4;\n */\n authors: string[] = [];\n\n /**\n * @generated from field: bool draft = 6;\n */\n draft = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Post\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"summary\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"content\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"authors\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 6, name: \"draft\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Post {\n return new Post().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Post {\n return new Post().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Post {\n return new Post().fromJsonString(jsonString, options);\n }\n\n static equals(a: Post | PlainMessage | undefined, b: Post | PlainMessage | undefined): boolean {\n return proto3.util.equals(Post, a, b);\n }\n}\n\n/**\n * @generated from message content.GitRepo\n */\nexport class GitRepo extends Message {\n /**\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.GitRepo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GitRepo {\n return new GitRepo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GitRepo {\n return new GitRepo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GitRepo {\n return new GitRepo().fromJsonString(jsonString, options);\n }\n\n static equals(a: GitRepo | PlainMessage | undefined, b: GitRepo | PlainMessage | undefined): boolean {\n return proto3.util.equals(GitRepo, a, b);\n }\n}\n\n/**\n * @generated from message content.Data\n */\nexport class Data extends Message {\n /**\n * @generated from oneof content.Data.type\n */\n type: {\n /**\n * @generated from field: content.Text text = 4;\n */\n value: Text;\n case: \"text\";\n } | {\n /**\n * @generated from field: content.File file = 5;\n */\n value: File;\n case: \"file\";\n } | {\n /**\n * @generated from field: content.URL url = 6;\n */\n value: URL;\n case: \"url\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Data\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 4, name: \"text\", kind: \"message\", T: Text, oneof: \"type\" },\n { no: 5, name: \"file\", kind: \"message\", T: File, oneof: \"type\" },\n { no: 6, name: \"url\", kind: \"message\", T: URL, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Data {\n return new Data().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Data {\n return new Data().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Data {\n return new Data().fromJsonString(jsonString, options);\n }\n\n static equals(a: Data | PlainMessage | undefined, b: Data | PlainMessage | undefined): boolean {\n return proto3.util.equals(Data, a, b);\n }\n}\n\n/**\n * @generated from message content.Normalized\n */\nexport class Normalized extends Message {\n /**\n * @generated from oneof content.Normalized.type\n */\n type: {\n /**\n * @generated from field: content.Article article = 3;\n */\n value: Article;\n case: \"article\";\n } | {\n /**\n * @generated from field: content.HTML html = 4;\n */\n value: HTML;\n case: \"html\";\n } | {\n /**\n * @generated from field: content.Transcript transcript = 6;\n */\n value: Transcript;\n case: \"transcript\";\n } | {\n /**\n * @generated from field: content.ReadMe readme = 7;\n */\n value: ReadMe;\n case: \"readme\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Normalized\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 3, name: \"article\", kind: \"message\", T: Article, oneof: \"type\" },\n { no: 4, name: \"html\", kind: \"message\", T: HTML, oneof: \"type\" },\n { no: 6, name: \"transcript\", kind: \"message\", T: Transcript, oneof: \"type\" },\n { no: 7, name: \"readme\", kind: \"message\", T: ReadMe, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Normalized {\n return new Normalized().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Normalized {\n return new Normalized().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Normalized {\n return new Normalized().fromJsonString(jsonString, options);\n }\n\n static equals(a: Normalized | PlainMessage | undefined, b: Normalized | PlainMessage | undefined): boolean {\n return proto3.util.equals(Normalized, a, b);\n }\n}\n\n/**\n * @generated from message content.Transformed\n */\nexport class Transformed extends Message {\n /**\n * @generated from oneof content.Transformed.type\n */\n type: {\n /**\n * @generated from field: content.Summary summary = 1;\n */\n value: Summary;\n case: \"summary\";\n } | {\n /**\n * @generated from field: content.Categories categories = 2;\n */\n value: Categories;\n case: \"categories\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Transformed\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"summary\", kind: \"message\", T: Summary, oneof: \"type\" },\n { no: 2, name: \"categories\", kind: \"message\", T: Categories, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Transformed {\n return new Transformed().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Transformed {\n return new Transformed().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Transformed {\n return new Transformed().fromJsonString(jsonString, options);\n }\n\n static equals(a: Transformed | PlainMessage | undefined, b: Transformed | PlainMessage | undefined): boolean {\n return proto3.util.equals(Transformed, a, b);\n }\n}\n\n/**\n * @generated from message content.Article\n */\nexport class Article extends Message
{\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string author = 2;\n */\n author = \"\";\n\n /**\n * @generated from field: int32 length = 3;\n */\n length = 0;\n\n /**\n * @generated from field: string excerpt = 4;\n */\n excerpt = \"\";\n\n /**\n * @generated from field: string site_name = 5;\n */\n siteName = \"\";\n\n /**\n * @generated from field: string image = 6;\n */\n image = \"\";\n\n /**\n * @generated from field: string favicon = 7;\n */\n favicon = \"\";\n\n /**\n * @generated from field: string text = 8;\n */\n text = \"\";\n\n constructor(data?: PartialMessage
) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Article\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"author\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"length\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 4, name: \"excerpt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"site_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"image\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"favicon\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 8, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Article {\n return new Article().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Article {\n return new Article().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Article {\n return new Article().fromJsonString(jsonString, options);\n }\n\n static equals(a: Article | PlainMessage
| undefined, b: Article | PlainMessage
| undefined): boolean {\n return proto3.util.equals(Article, a, b);\n }\n}\n\n/**\n * @generated from message content.HTML\n */\nexport class HTML extends Message {\n /**\n * @generated from field: string html = 1;\n */\n html = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HTML\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"html\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HTML {\n return new HTML().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HTML {\n return new HTML().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HTML {\n return new HTML().fromJsonString(jsonString, options);\n }\n\n static equals(a: HTML | PlainMessage | undefined, b: HTML | PlainMessage | undefined): boolean {\n return proto3.util.equals(HTML, a, b);\n }\n}\n\n/**\n * @generated from message content.ReadMe\n */\nexport class ReadMe extends Message {\n /**\n * @generated from field: string data = 1;\n */\n data = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ReadMe\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"data\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ReadMe {\n return new ReadMe().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ReadMe {\n return new ReadMe().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ReadMe {\n return new ReadMe().fromJsonString(jsonString, options);\n }\n\n static equals(a: ReadMe | PlainMessage | undefined, b: ReadMe | PlainMessage | undefined): boolean {\n return proto3.util.equals(ReadMe, a, b);\n }\n}\n\n/**\n * @generated from message content.Summary\n */\nexport class Summary extends Message {\n /**\n * @generated from field: string summary = 1;\n */\n summary = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Summary\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"summary\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Summary {\n return new Summary().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Summary {\n return new Summary().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Summary {\n return new Summary().fromJsonString(jsonString, options);\n }\n\n static equals(a: Summary | PlainMessage | undefined, b: Summary | PlainMessage | undefined): boolean {\n return proto3.util.equals(Summary, a, b);\n }\n}\n\n/**\n * @generated from message content.Categories\n */\nexport class Categories extends Message {\n /**\n * @generated from field: repeated string categories = 1;\n */\n categories: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Categories\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"categories\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Categories {\n return new Categories().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Categories {\n return new Categories().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Categories {\n return new Categories().fromJsonString(jsonString, options);\n }\n\n static equals(a: Categories | PlainMessage | undefined, b: Categories | PlainMessage | undefined): boolean {\n return proto3.util.equals(Categories, a, b);\n }\n}\n\n/**\n * @generated from message content.File\n */\nexport class File extends Message {\n /**\n * @generated from field: string file = 1;\n */\n file = \"\";\n\n /**\n * @generated from field: bytes data = 2;\n */\n data = new Uint8Array(0);\n\n /**\n * @generated from field: string url = 3;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.File\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"data\", kind: \"scalar\", T: 12 /* ScalarType.BYTES */ },\n { no: 3, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): File {\n return new File().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): File {\n return new File().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): File {\n return new File().fromJsonString(jsonString, options);\n }\n\n static equals(a: File | PlainMessage | undefined, b: File | PlainMessage | undefined): boolean {\n return proto3.util.equals(File, a, b);\n }\n}\n\n/**\n * @generated from message content.Text\n */\nexport class Text extends Message {\n /**\n * @generated from field: string data = 1;\n */\n data = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Text\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"data\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Text {\n return new Text().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Text {\n return new Text().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Text {\n return new Text().fromJsonString(jsonString, options);\n }\n\n static equals(a: Text | PlainMessage | undefined, b: Text | PlainMessage | undefined): boolean {\n return proto3.util.equals(Text, a, b);\n }\n}\n\n/**\n * @generated from message content.URL\n */\nexport class URL extends Message {\n /**\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n /**\n * @generated from field: bool crawl = 2;\n */\n crawl = false;\n\n /**\n * @generated from field: string title = 3;\n */\n title = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.URL\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"crawl\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 3, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): URL {\n return new URL().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): URL {\n return new URL().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): URL {\n return new URL().fromJsonString(jsonString, options);\n }\n\n static equals(a: URL | PlainMessage | undefined, b: URL | PlainMessage | undefined): boolean {\n return proto3.util.equals(URL, a, b);\n }\n}\n\n/**\n * @generated from message content.Token\n */\nexport class Token extends Message {\n /**\n * @generated from field: uint32 id = 1;\n */\n id = 0;\n\n /**\n * @generated from field: uint64 start_time = 2;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 3;\n */\n endTime = protoInt64.zero;\n\n /**\n * @generated from field: string text = 4;\n */\n text = \"\";\n\n /**\n * @generated from field: string p = 5;\n */\n p = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Token\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 3, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 4, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"p\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Token {\n return new Token().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Token {\n return new Token().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Token {\n return new Token().fromJsonString(jsonString, options);\n }\n\n static equals(a: Token | PlainMessage | undefined, b: Token | PlainMessage | undefined): boolean {\n return proto3.util.equals(Token, a, b);\n }\n}\n\n/**\n * @generated from message content.Segment\n */\nexport class Segment extends Message {\n /**\n * @generated from field: uint32 num = 1;\n */\n num = 0;\n\n /**\n * @generated from field: repeated content.Token tokens = 2;\n */\n tokens: Token[] = [];\n\n /**\n * @generated from field: string text = 3;\n */\n text = \"\";\n\n /**\n * @generated from field: uint64 start_time = 4;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 5;\n */\n endTime = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Segment\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"num\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"tokens\", kind: \"message\", T: Token, repeated: true },\n { no: 3, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 5, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Segment {\n return new Segment().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Segment {\n return new Segment().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Segment {\n return new Segment().fromJsonString(jsonString, options);\n }\n\n static equals(a: Segment | PlainMessage | undefined, b: Segment | PlainMessage | undefined): boolean {\n return proto3.util.equals(Segment, a, b);\n }\n}\n\n/**\n * @generated from message content.Transcript\n */\nexport class Transcript extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated content.Segment segments = 3;\n */\n segments: Segment[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Transcript\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"segments\", kind: \"message\", T: Segment, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Transcript {\n return new Transcript().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Transcript {\n return new Transcript().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Transcript {\n return new Transcript().fromJsonString(jsonString, options);\n }\n\n static equals(a: Transcript | PlainMessage | undefined, b: Transcript | PlainMessage | undefined): boolean {\n return proto3.util.equals(Transcript, a, b);\n }\n}\n\n/**\n * @generated from message content.GRPCTypeInfo\n */\nexport class GRPCTypeInfo extends Message {\n /**\n * @generated from field: google.protobuf.DescriptorProto msg = 1;\n */\n msg?: DescriptorProto;\n\n /**\n * @generated from field: map desc_lookup = 3;\n */\n descLookup: { [key: string]: DescriptorProto } = {};\n\n /**\n * @generated from field: map enum_lookup = 4;\n */\n enumLookup: { [key: string]: EnumDescriptorProto } = {};\n\n /**\n * @generated from field: string package_name = 6;\n */\n packageName = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.GRPCTypeInfo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"msg\", kind: \"message\", T: DescriptorProto },\n { no: 3, name: \"desc_lookup\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: DescriptorProto} },\n { no: 4, name: \"enum_lookup\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: EnumDescriptorProto} },\n { no: 6, name: \"package_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GRPCTypeInfo {\n return new GRPCTypeInfo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GRPCTypeInfo {\n return new GRPCTypeInfo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GRPCTypeInfo {\n return new GRPCTypeInfo().fromJsonString(jsonString, options);\n }\n\n static equals(a: GRPCTypeInfo | PlainMessage | undefined, b: GRPCTypeInfo | PlainMessage | undefined): boolean {\n return proto3.util.equals(GRPCTypeInfo, a, b);\n }\n}\n\n/**\n * @generated from message content.Site\n */\nexport class Site extends Message {\n /**\n * @generated from field: repeated content.Section sections = 1;\n */\n sections: Section[] = [];\n\n /**\n * @generated from field: content.HugoConfig hugo_config = 2;\n */\n hugoConfig?: HugoConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Site\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"sections\", kind: \"message\", T: Section, repeated: true },\n { no: 2, name: \"hugo_config\", kind: \"message\", T: HugoConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Site {\n return new Site().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Site {\n return new Site().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Site {\n return new Site().fromJsonString(jsonString, options);\n }\n\n static equals(a: Site | PlainMessage | undefined, b: Site | PlainMessage | undefined): boolean {\n return proto3.util.equals(Site, a, b);\n }\n}\n\n/**\n * @generated from message content.Section\n */\nexport class Section extends Message
{\n /**\n * TODO breadchris tags should be a filter that can have AND, OR, regex?\n *\n * @generated from field: repeated string tags = 1;\n */\n tags: string[] = [];\n\n /**\n * @generated from field: content.MenuItem menu = 2;\n */\n menu?: MenuItem;\n\n constructor(data?: PartialMessage
) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Section\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"menu\", kind: \"message\", T: MenuItem },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Section {\n return new Section().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Section {\n return new Section().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Section {\n return new Section().fromJsonString(jsonString, options);\n }\n\n static equals(a: Section | PlainMessage
| undefined, b: Section | PlainMessage
| undefined): boolean {\n return proto3.util.equals(Section, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file protoflow.proto (package protoflow, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, protoInt64 } from \"@bufbuild/protobuf\";\nimport { Content, Segment as Segment$1 } from \"./content/content_pb.js\";\n\n/**\n * @generated from message protoflow.AnalyzeConversationRequest\n */\nexport class AnalyzeConversationRequest extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.AnalyzeConversationRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeConversationRequest | PlainMessage | undefined, b: AnalyzeConversationRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeConversationRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GenerateImagesRequest\n */\nexport class GenerateImagesRequest extends Message {\n /**\n * @generated from field: string prompt = 1;\n */\n prompt = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GenerateImagesRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GenerateImagesRequest {\n return new GenerateImagesRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GenerateImagesRequest {\n return new GenerateImagesRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GenerateImagesRequest {\n return new GenerateImagesRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GenerateImagesRequest | PlainMessage | undefined, b: GenerateImagesRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GenerateImagesRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GenerateImagesResponse\n */\nexport class GenerateImagesResponse extends Message {\n /**\n * @generated from field: repeated string images = 1;\n */\n images: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GenerateImagesResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"images\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GenerateImagesResponse {\n return new GenerateImagesResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GenerateImagesResponse {\n return new GenerateImagesResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GenerateImagesResponse {\n return new GenerateImagesResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GenerateImagesResponse | PlainMessage | undefined, b: GenerateImagesResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GenerateImagesResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.DeleteSessionRequest\n */\nexport class DeleteSessionRequest extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.DeleteSessionRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): DeleteSessionRequest {\n return new DeleteSessionRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): DeleteSessionRequest {\n return new DeleteSessionRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): DeleteSessionRequest {\n return new DeleteSessionRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: DeleteSessionRequest | PlainMessage | undefined, b: DeleteSessionRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(DeleteSessionRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Prompt\n */\nexport class Prompt extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string text = 2;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Prompt\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Prompt {\n return new Prompt().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Prompt {\n return new Prompt().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Prompt {\n return new Prompt().fromJsonString(jsonString, options);\n }\n\n static equals(a: Prompt | PlainMessage | undefined, b: Prompt | PlainMessage | undefined): boolean {\n return proto3.util.equals(Prompt, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetPromptsRequest\n */\nexport class GetPromptsRequest extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetPromptsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetPromptsRequest {\n return new GetPromptsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetPromptsRequest {\n return new GetPromptsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetPromptsRequest {\n return new GetPromptsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetPromptsRequest | PlainMessage | undefined, b: GetPromptsRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetPromptsRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetPromptsResponse\n */\nexport class GetPromptsResponse extends Message {\n /**\n * @generated from field: repeated protoflow.Prompt prompts = 1;\n */\n prompts: Prompt[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetPromptsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompts\", kind: \"message\", T: Prompt, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetPromptsResponse {\n return new GetPromptsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetPromptsResponse {\n return new GetPromptsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetPromptsResponse {\n return new GetPromptsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetPromptsResponse | PlainMessage | undefined, b: GetPromptsResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetPromptsResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.InferRequest\n */\nexport class InferRequest extends Message {\n /**\n * @generated from field: string prompt = 1;\n */\n prompt = \"\";\n\n /**\n * @generated from field: repeated string text = 2;\n */\n text: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.InferRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): InferRequest {\n return new InferRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): InferRequest {\n return new InferRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): InferRequest {\n return new InferRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: InferRequest | PlainMessage | undefined, b: InferRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(InferRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.InferResponse\n */\nexport class InferResponse extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.InferResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): InferResponse {\n return new InferResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): InferResponse {\n return new InferResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): InferResponse {\n return new InferResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: InferResponse | PlainMessage | undefined, b: InferResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(InferResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.UploadContentRequest\n */\nexport class UploadContentRequest extends Message {\n /**\n * @generated from field: content.Content content = 1;\n */\n content?: Content;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.UploadContentRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: Content },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): UploadContentRequest {\n return new UploadContentRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): UploadContentRequest {\n return new UploadContentRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): UploadContentRequest {\n return new UploadContentRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: UploadContentRequest | PlainMessage | undefined, b: UploadContentRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(UploadContentRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.UploadContentResponse\n */\nexport class UploadContentResponse extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.UploadContentResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): UploadContentResponse {\n return new UploadContentResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): UploadContentResponse {\n return new UploadContentResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): UploadContentResponse {\n return new UploadContentResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: UploadContentResponse | PlainMessage | undefined, b: UploadContentResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(UploadContentResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionRequest\n */\nexport class GetSessionRequest extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionRequest {\n return new GetSessionRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionRequest {\n return new GetSessionRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionRequest {\n return new GetSessionRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionRequest | PlainMessage | undefined, b: GetSessionRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionResponse\n */\nexport class GetSessionResponse extends Message {\n /**\n * @generated from field: protoflow.Session session = 1;\n */\n session?: Session;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"session\", kind: \"message\", T: Session },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionResponse {\n return new GetSessionResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionResponse {\n return new GetSessionResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionResponse {\n return new GetSessionResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionResponse | PlainMessage | undefined, b: GetSessionResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionsRequest\n */\nexport class GetSessionsRequest extends Message {\n /**\n * @generated from field: uint64 page = 1;\n */\n page = protoInt64.zero;\n\n /**\n * @generated from field: uint64 limit = 2;\n */\n limit = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"page\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 2, name: \"limit\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionsRequest {\n return new GetSessionsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionsRequest {\n return new GetSessionsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionsRequest {\n return new GetSessionsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionsRequest | PlainMessage | undefined, b: GetSessionsRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionsRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionsResponse\n */\nexport class GetSessionsResponse extends Message {\n /**\n * @generated from field: repeated protoflow.Session sessions = 1;\n */\n sessions: Session[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"sessions\", kind: \"message\", T: Session, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionsResponse {\n return new GetSessionsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionsResponse {\n return new GetSessionsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionsResponse {\n return new GetSessionsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionsResponse | PlainMessage | undefined, b: GetSessionsResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionsResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Token\n */\nexport class Token extends Message {\n /**\n * @generated from field: uint32 id = 1;\n */\n id = 0;\n\n /**\n * @generated from field: uint64 start_time = 2;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 3;\n */\n endTime = protoInt64.zero;\n\n /**\n * @generated from field: string text = 4;\n */\n text = \"\";\n\n /**\n * @generated from field: string p = 5;\n */\n p = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Token\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 3, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 4, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"p\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Token {\n return new Token().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Token {\n return new Token().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Token {\n return new Token().fromJsonString(jsonString, options);\n }\n\n static equals(a: Token | PlainMessage | undefined, b: Token | PlainMessage | undefined): boolean {\n return proto3.util.equals(Token, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Segment\n */\nexport class Segment extends Message {\n /**\n * @generated from field: uint32 num = 1;\n */\n num = 0;\n\n /**\n * @generated from field: repeated protoflow.Token tokens = 2;\n */\n tokens: Token[] = [];\n\n /**\n * @generated from field: string text = 3;\n */\n text = \"\";\n\n /**\n * @generated from field: uint64 start_time = 4;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 5;\n */\n endTime = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Segment\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"num\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"tokens\", kind: \"message\", T: Token, repeated: true },\n { no: 3, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 5, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Segment {\n return new Segment().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Segment {\n return new Segment().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Segment {\n return new Segment().fromJsonString(jsonString, options);\n }\n\n static equals(a: Segment | PlainMessage | undefined, b: Segment | PlainMessage | undefined): boolean {\n return proto3.util.equals(Segment, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Session\n */\nexport class Session extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated protoflow.Segment segments = 3;\n */\n segments: Segment[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Session\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"segments\", kind: \"message\", T: Segment, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Session {\n return new Session().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Session {\n return new Session().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Session {\n return new Session().fromJsonString(jsonString, options);\n }\n\n static equals(a: Session | PlainMessage | undefined, b: Session | PlainMessage | undefined): boolean {\n return proto3.util.equals(Session, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.TranscriptionRequest\n */\nexport class TranscriptionRequest extends Message {\n /**\n * @generated from field: string file_path = 14;\n */\n filePath = \"\";\n\n /**\n * Path to the model file\n *\n * @generated from field: string model = 1;\n */\n model = \"\";\n\n /**\n * Spoken language\n *\n * @generated from field: string language = 2;\n */\n language = \"\";\n\n /**\n * Translate from source language to English\n *\n * @generated from field: bool translate = 3;\n */\n translate = false;\n\n /**\n * Time offset in nanoseconds to match Go's time.Duration\n *\n * @generated from field: int64 offset = 4;\n */\n offset = protoInt64.zero;\n\n /**\n * Duration of audio to process in nanoseconds\n *\n * @generated from field: int64 duration = 5;\n */\n duration = protoInt64.zero;\n\n /**\n * Number of threads to use\n *\n * @generated from field: uint32 threads = 6;\n */\n threads = 0;\n\n /**\n * Enable speedup\n *\n * @generated from field: bool speedup = 7;\n */\n speedup = false;\n\n /**\n * Maximum segment length in characters\n *\n * @generated from field: uint32 max_len = 8;\n */\n maxLen = 0;\n\n /**\n * Maximum tokens per segment\n *\n * @generated from field: uint32 max_tokens = 9;\n */\n maxTokens = 0;\n\n /**\n * Maximum segment score\n *\n * @generated from field: double word_threshold = 10;\n */\n wordThreshold = 0;\n\n /**\n * Display tokens\n *\n * @generated from field: bool tokens = 11;\n */\n tokens = false;\n\n /**\n * Colorize tokens\n *\n * @generated from field: bool colorize = 12;\n */\n colorize = false;\n\n /**\n * Output format (srt, none or leave as empty string)\n *\n * @generated from field: string out = 13;\n */\n out = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.TranscriptionRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 14, name: \"file_path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 1, name: \"model\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"language\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"translate\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 4, name: \"offset\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 5, name: \"duration\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 6, name: \"threads\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 7, name: \"speedup\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 8, name: \"max_len\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 9, name: \"max_tokens\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 10, name: \"word_threshold\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 11, name: \"tokens\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 12, name: \"colorize\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 13, name: \"out\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): TranscriptionRequest {\n return new TranscriptionRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): TranscriptionRequest {\n return new TranscriptionRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): TranscriptionRequest {\n return new TranscriptionRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: TranscriptionRequest | PlainMessage | undefined, b: TranscriptionRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(TranscriptionRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.RegisterFlags\n */\nexport class RegisterFlags extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.RegisterFlags\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RegisterFlags {\n return new RegisterFlags().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RegisterFlags {\n return new RegisterFlags().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RegisterFlags {\n return new RegisterFlags().fromJsonString(jsonString, options);\n }\n\n static equals(a: RegisterFlags | PlainMessage | undefined, b: RegisterFlags | PlainMessage | undefined): boolean {\n return proto3.util.equals(RegisterFlags, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.OCRText\n */\nexport class OCRText extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.OCRText\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): OCRText {\n return new OCRText().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): OCRText {\n return new OCRText().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): OCRText {\n return new OCRText().fromJsonString(jsonString, options);\n }\n\n static equals(a: OCRText | PlainMessage | undefined, b: OCRText | PlainMessage | undefined): boolean {\n return proto3.util.equals(OCRText, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Image\n */\nexport class Image extends Message {\n /**\n * @generated from field: bytes image = 1;\n */\n image = new Uint8Array(0);\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Image\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"image\", kind: \"scalar\", T: 12 /* ScalarType.BYTES */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Image {\n return new Image().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Image {\n return new Image().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Image {\n return new Image().fromJsonString(jsonString, options);\n }\n\n static equals(a: Image | PlainMessage | undefined, b: Image | PlainMessage | undefined): boolean {\n return proto3.util.equals(Image, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.ConvertFileRequest\n */\nexport class ConvertFileRequest extends Message {\n /**\n * @generated from field: string from = 1;\n */\n from = \"\";\n\n /**\n * @generated from field: string to = 2;\n */\n to = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.ConvertFileRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"from\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"to\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ConvertFileRequest {\n return new ConvertFileRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ConvertFileRequest {\n return new ConvertFileRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ConvertFileRequest {\n return new ConvertFileRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ConvertFileRequest | PlainMessage | undefined, b: ConvertFileRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ConvertFileRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.ChatRequest\n */\nexport class ChatRequest extends Message {\n /**\n * @generated from field: int32 capture_device = 1;\n */\n captureDevice = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.ChatRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"capture_device\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ChatRequest {\n return new ChatRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ChatRequest {\n return new ChatRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ChatRequest {\n return new ChatRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ChatRequest | PlainMessage | undefined, b: ChatRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ChatRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.ChatResponse\n */\nexport class ChatResponse extends Message {\n /**\n * @generated from field: protoflow.Segment segment = 1;\n */\n segment?: Segment;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.ChatResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"segment\", kind: \"message\", T: Segment },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ChatResponse {\n return new ChatResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ChatResponse {\n return new ChatResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ChatResponse {\n return new ChatResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ChatResponse | PlainMessage | undefined, b: ChatResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(ChatResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.YouTubeVideo\n */\nexport class YouTubeVideo extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string file = 2;\n */\n file = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.YouTubeVideo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): YouTubeVideo {\n return new YouTubeVideo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): YouTubeVideo {\n return new YouTubeVideo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): YouTubeVideo {\n return new YouTubeVideo().fromJsonString(jsonString, options);\n }\n\n static equals(a: YouTubeVideo | PlainMessage | undefined, b: YouTubeVideo | PlainMessage | undefined): boolean {\n return proto3.util.equals(YouTubeVideo, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.FilePath\n */\nexport class FilePath extends Message {\n /**\n * @generated from field: string file = 1;\n */\n file = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.FilePath\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): FilePath {\n return new FilePath().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): FilePath {\n return new FilePath().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): FilePath {\n return new FilePath().fromJsonString(jsonString, options);\n }\n\n static equals(a: FilePath | PlainMessage | undefined, b: FilePath | PlainMessage | undefined): boolean {\n return proto3.util.equals(FilePath, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.YouTubeVideoResponse\n */\nexport class YouTubeVideoResponse extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: protoflow.FilePath file_path = 2;\n */\n filePath?: FilePath;\n\n /**\n * @generated from field: repeated content.Segment transcript = 3;\n */\n transcript: Segment$1[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.YouTubeVideoResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"file_path\", kind: \"message\", T: FilePath },\n { no: 3, name: \"transcript\", kind: \"message\", T: Segment$1, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): YouTubeVideoResponse {\n return new YouTubeVideoResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): YouTubeVideoResponse {\n return new YouTubeVideoResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): YouTubeVideoResponse {\n return new YouTubeVideoResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: YouTubeVideoResponse | PlainMessage | undefined, b: YouTubeVideoResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(YouTubeVideoResponse, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file ai.proto (package ai, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message ai.AnalyzeConversationResponse\n */\nexport class AnalyzeConversationResponse extends Message {\n /**\n * Phone numbers of the participants\n *\n * @generated from field: repeated string phone_numbers = 1;\n */\n phoneNumbers: string[] = [];\n\n /**\n * The summary of the conversation\n *\n * @generated from field: string summary = 2;\n */\n summary = \"\";\n\n /**\n * Based on the content of the conversation, the system will generate a list of questions\n *\n * @generated from field: repeated string questions = 3;\n */\n questions: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"ai.AnalyzeConversationResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"phone_numbers\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"summary\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"questions\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeConversationResponse {\n return new AnalyzeConversationResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeConversationResponse {\n return new AnalyzeConversationResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeConversationResponse {\n return new AnalyzeConversationResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeConversationResponse | PlainMessage | undefined, b: AnalyzeConversationResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeConversationResponse, a, b);\n }\n}\n\n/**\n * @generated from message ai.AnalyzeContent\n */\nexport class AnalyzeContent extends Message {\n /**\n * Potential categories for the content in the form: category/subcategory/other-category. The category is all lowercase and spaces are replaced with dashes.\n *\n * @generated from field: repeated string categories = 1;\n */\n categories: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"ai.AnalyzeContent\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"categories\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeContent {\n return new AnalyzeContent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeContent {\n return new AnalyzeContent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeContent {\n return new AnalyzeContent().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeContent | PlainMessage | undefined, b: AnalyzeContent | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeContent, a, b);\n }\n}\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file protoflow.proto (package protoflow, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { AnalyzeConversationRequest, ChatRequest, ChatResponse, ConvertFileRequest, DeleteSessionRequest, FilePath, GenerateImagesRequest, GenerateImagesResponse, GetPromptsRequest, GetPromptsResponse, GetSessionRequest, GetSessionResponse, GetSessionsRequest, GetSessionsResponse, InferRequest, InferResponse, Prompt, UploadContentRequest, YouTubeVideo, YouTubeVideoResponse } from \"./protoflow_pb.js\";\nimport { Empty, MethodKind } from \"@bufbuild/protobuf\";\nimport { AnalyzeConversationResponse } from \"./ai_pb.js\";\n\n/**\n * @generated from service protoflow.ProtoflowService\n */\nexport const ProtoflowService = {\n typeName: \"protoflow.ProtoflowService\",\n methods: {\n /**\n * @generated from rpc protoflow.ProtoflowService.DownloadYouTubeVideo\n */\n downloadYouTubeVideo: {\n name: \"DownloadYouTubeVideo\",\n I: YouTubeVideo,\n O: YouTubeVideoResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GetSessions\n */\n getSessions: {\n name: \"GetSessions\",\n I: GetSessionsRequest,\n O: GetSessionsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GetSession\n */\n getSession: {\n name: \"GetSession\",\n I: GetSessionRequest,\n O: GetSessionResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.DeleteSession\n */\n deleteSession: {\n name: \"DeleteSession\",\n I: DeleteSessionRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GetPrompts\n */\n getPrompts: {\n name: \"GetPrompts\",\n I: GetPromptsRequest,\n O: GetPromptsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.NewPrompt\n */\n newPrompt: {\n name: \"NewPrompt\",\n I: Prompt,\n O: Prompt,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.UploadContent\n */\n uploadContent: {\n name: \"UploadContent\",\n I: UploadContentRequest,\n O: ChatResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.Infer\n */\n infer: {\n name: \"Infer\",\n I: InferRequest,\n O: InferResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.Chat\n */\n chat: {\n name: \"Chat\",\n I: ChatRequest,\n O: ChatResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.ConvertFile\n */\n convertFile: {\n name: \"ConvertFile\",\n I: ConvertFileRequest,\n O: FilePath,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GenerateImages\n */\n generateImages: {\n name: \"GenerateImages\",\n I: GenerateImagesRequest,\n O: GenerateImagesResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.AnalyzeConversation\n */\n analyzeConversation: {\n name: \"AnalyzeConversation\",\n I: AnalyzeConversationRequest,\n O: AnalyzeConversationResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file content/content.proto (package content, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Content, ContentIDs, Contents, GetSourcesRequest, InferRequest, InferResponse, Query, RelateRequest, Results, SetTagsRequest, Sources, TagRequest, Tags, TypesResponse, VoiceInputRequest, VoiceInputResponse } from \"./content_pb.js\";\nimport { Empty, MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service content.ContentService\n */\nexport const ContentService = {\n typeName: \"content.ContentService\",\n methods: {\n /**\n * @generated from rpc content.ContentService.Save\n */\n save: {\n name: \"Save\",\n I: Contents,\n O: ContentIDs,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Search\n */\n search: {\n name: \"Search\",\n I: Query,\n O: Results,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Relate\n */\n relate: {\n name: \"Relate\",\n I: RelateRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Analyze\n */\n analyze: {\n name: \"Analyze\",\n I: Content,\n O: Contents,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Delete\n */\n delete: {\n name: \"Delete\",\n I: ContentIDs,\n O: ContentIDs,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.GetTags\n */\n getTags: {\n name: \"GetTags\",\n I: TagRequest,\n O: Tags,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.SetTags\n */\n setTags: {\n name: \"SetTags\",\n I: SetTagsRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Publish\n */\n publish: {\n name: \"Publish\",\n I: ContentIDs,\n O: ContentIDs,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.GetSources\n */\n getSources: {\n name: \"GetSources\",\n I: GetSourcesRequest,\n O: Sources,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Infer\n */\n infer: {\n name: \"Infer\",\n I: InferRequest,\n O: InferResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc content.ContentService.Types\n */\n types: {\n name: \"Types\",\n I: Empty,\n O: TypesResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.VoiceInput\n */\n voiceInput: {\n name: \"VoiceInput\",\n I: VoiceInputRequest,\n O: VoiceInputResponse,\n kind: MethodKind.ServerStreaming,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file user/user.proto (package user, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Config, Group, GroupID, GroupInfoRequest, GroupInvite, Groups, LoginResponse, ShareRequest, User, VerifyUserRequest } from \"./user_pb.js\";\nimport { Empty, MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service user.UserService\n */\nexport const UserService = {\n typeName: \"user.UserService\",\n methods: {\n /**\n * @generated from rpc user.UserService.Register\n */\n register: {\n name: \"Register\",\n I: User,\n O: User,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.Login\n */\n login: {\n name: \"Login\",\n I: User,\n O: LoginResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.Logout\n */\n logout: {\n name: \"Logout\",\n I: Empty,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.ResetPassword\n */\n resetPassword: {\n name: \"ResetPassword\",\n I: User,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.VerifyUser\n */\n verifyUser: {\n name: \"VerifyUser\",\n I: VerifyUserRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.UpdateConfig\n */\n updateConfig: {\n name: \"UpdateConfig\",\n I: Config,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.CreateGroupInvite\n */\n createGroupInvite: {\n name: \"CreateGroupInvite\",\n I: GroupID,\n O: GroupInvite,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.JoinGroup\n */\n joinGroup: {\n name: \"JoinGroup\",\n I: GroupInvite,\n O: Group,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.GroupInfo\n */\n groupInfo: {\n name: \"GroupInfo\",\n I: GroupInfoRequest,\n O: Group,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.CreateGroup\n */\n createGroup: {\n name: \"CreateGroup\",\n I: Group,\n O: Group,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.GetGroups\n */\n getGroups: {\n name: \"GetGroups\",\n I: Empty,\n O: Groups,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.DeleteGroup\n */\n deleteGroup: {\n name: \"DeleteGroup\",\n I: Group,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.Share\n */\n share: {\n name: \"Share\",\n I: ShareRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file chat/chat.proto (package chat, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message as Message$1, proto3, protoInt64 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message chat.BanUserRequest\n */\nexport class BanUserRequest extends Message$1 {\n /**\n * @generated from field: string user = 1;\n */\n user = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.BanUserRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): BanUserRequest {\n return new BanUserRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): BanUserRequest {\n return new BanUserRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): BanUserRequest {\n return new BanUserRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: BanUserRequest | PlainMessage | undefined, b: BanUserRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(BanUserRequest, a, b);\n }\n}\n\n/**\n * @generated from message chat.BanUserResponse\n */\nexport class BanUserResponse extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.BanUserResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): BanUserResponse {\n return new BanUserResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): BanUserResponse {\n return new BanUserResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): BanUserResponse {\n return new BanUserResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: BanUserResponse | PlainMessage | undefined, b: BanUserResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(BanUserResponse, a, b);\n }\n}\n\n/**\n * @generated from message chat.SendMessageRequest\n */\nexport class SendMessageRequest extends Message$1 {\n /**\n * @generated from field: string message = 2;\n */\n message = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.SendMessageRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 2, name: \"message\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SendMessageRequest {\n return new SendMessageRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SendMessageRequest {\n return new SendMessageRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SendMessageRequest {\n return new SendMessageRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: SendMessageRequest | PlainMessage | undefined, b: SendMessageRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(SendMessageRequest, a, b);\n }\n}\n\n/**\n * @generated from message chat.SendMessageResponse\n */\nexport class SendMessageResponse extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.SendMessageResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SendMessageResponse {\n return new SendMessageResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SendMessageResponse {\n return new SendMessageResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SendMessageResponse {\n return new SendMessageResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: SendMessageResponse | PlainMessage | undefined, b: SendMessageResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(SendMessageResponse, a, b);\n }\n}\n\n/**\n * @generated from message chat.ReceiveMessagesRequest\n */\nexport class ReceiveMessagesRequest extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.ReceiveMessagesRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ReceiveMessagesRequest {\n return new ReceiveMessagesRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ReceiveMessagesRequest {\n return new ReceiveMessagesRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ReceiveMessagesRequest {\n return new ReceiveMessagesRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ReceiveMessagesRequest | PlainMessage | undefined, b: ReceiveMessagesRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ReceiveMessagesRequest, a, b);\n }\n}\n\n/**\n * @generated from message chat.Message\n */\nexport class Message extends Message$1 {\n /**\n * @generated from field: string user = 1;\n */\n user = \"\";\n\n /**\n * @generated from field: string text = 2;\n */\n text = \"\";\n\n /**\n * @generated from field: int64 timestamp = 3;\n */\n timestamp = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.Message\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"timestamp\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Message {\n return new Message().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Message {\n return new Message().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Message {\n return new Message().fromJsonString(jsonString, options);\n }\n\n static equals(a: Message | PlainMessage | undefined, b: Message | PlainMessage | undefined): boolean {\n return proto3.util.equals(Message, a, b);\n }\n}\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file chat/chat.proto (package chat, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { BanUserRequest, BanUserResponse, Message, ReceiveMessagesRequest, SendMessageRequest, SendMessageResponse } from \"./chat_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service chat.ChatService\n */\nexport const ChatService = {\n typeName: \"chat.ChatService\",\n methods: {\n /**\n * @generated from rpc chat.ChatService.SendMessage\n */\n sendMessage: {\n name: \"SendMessage\",\n I: SendMessageRequest,\n O: SendMessageResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc chat.ChatService.ReceiveMessages\n */\n receiveMessages: {\n name: \"ReceiveMessages\",\n I: ReceiveMessagesRequest,\n O: Message,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc chat.ChatService.BanUser\n */\n banUser: {\n name: \"BanUser\",\n I: BanUserRequest,\n O: BanUserResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file event/event.proto (package event, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message event.Metric\n */\nexport class Metric extends Message {\n /**\n * @generated from oneof event.Metric.type\n */\n type: {\n /**\n * @generated from field: event.HTTPRequest http = 1;\n */\n value: HTTPRequest;\n case: \"http\";\n } | {\n /**\n * @generated from field: event.RRWeb rrweb = 2;\n */\n value: RRWeb;\n case: \"rrweb\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"event.Metric\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"http\", kind: \"message\", T: HTTPRequest, oneof: \"type\" },\n { no: 2, name: \"rrweb\", kind: \"message\", T: RRWeb, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Metric {\n return new Metric().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Metric {\n return new Metric().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Metric {\n return new Metric().fromJsonString(jsonString, options);\n }\n\n static equals(a: Metric | PlainMessage | undefined, b: Metric | PlainMessage | undefined): boolean {\n return proto3.util.equals(Metric, a, b);\n }\n}\n\n/**\n * @generated from message event.HTTPRequest\n */\nexport class HTTPRequest extends Message {\n /**\n * @generated from field: string method = 1;\n */\n method = \"\";\n\n /**\n * @generated from field: string path = 2;\n */\n path = \"\";\n\n /**\n * @generated from field: string query = 3;\n */\n query = \"\";\n\n /**\n * @generated from field: map headers = 4;\n */\n headers: { [key: string]: string } = {};\n\n /**\n * @generated from field: string host = 5;\n */\n host = \"\";\n\n /**\n * @generated from field: string remoteAddr = 6;\n */\n remoteAddr = \"\";\n\n /**\n * @generated from field: string userAgent = 7;\n */\n userAgent = \"\";\n\n /**\n * @generated from field: string referer = 8;\n */\n referer = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"event.HTTPRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"method\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"query\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"headers\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"scalar\", T: 9 /* ScalarType.STRING */} },\n { no: 5, name: \"host\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"remoteAddr\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"userAgent\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 8, name: \"referer\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HTTPRequest {\n return new HTTPRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HTTPRequest {\n return new HTTPRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HTTPRequest {\n return new HTTPRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: HTTPRequest | PlainMessage | undefined, b: HTTPRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(HTTPRequest, a, b);\n }\n}\n\n/**\n * @generated from message event.RRWeb\n */\nexport class RRWeb extends Message {\n /**\n * @generated from field: string events = 1;\n */\n events = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"event.RRWeb\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"events\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RRWeb {\n return new RRWeb().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RRWeb {\n return new RRWeb().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RRWeb {\n return new RRWeb().fromJsonString(jsonString, options);\n }\n\n static equals(a: RRWeb | PlainMessage | undefined, b: RRWeb | PlainMessage | undefined): boolean {\n return proto3.util.equals(RRWeb, a, b);\n }\n}\n\n/**\n * @generated from message event.SendResponse\n */\nexport class SendResponse extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"event.SendResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SendResponse {\n return new SendResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SendResponse {\n return new SendResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SendResponse {\n return new SendResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: SendResponse | PlainMessage | undefined, b: SendResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(SendResponse, a, b);\n }\n}\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file event/event.proto (package event, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Metric, SendResponse } from \"./event_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service event.EventService\n */\nexport const EventService = {\n typeName: \"event.EventService\",\n methods: {\n /**\n * @generated from rpc event.EventService.Send\n */\n send: {\n name: \"Send\",\n I: Metric,\n O: SendResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Connect represents categories of errors as codes, and each code maps to a\n * specific HTTP status code. The codes and their semantics were chosen to\n * match gRPC. Only the codes below are valid \u2014 there are no user-defined\n * codes.\n *\n * See the specification at https://connectrpc.com/docs/protocol#error-codes\n * for details.\n */\nexport var Code;\n(function (Code) {\n /**\n * Canceled, usually be the user\n */\n Code[Code[\"Canceled\"] = 1] = \"Canceled\";\n /**\n * Unknown error\n */\n Code[Code[\"Unknown\"] = 2] = \"Unknown\";\n /**\n * Argument invalid regardless of system state\n */\n Code[Code[\"InvalidArgument\"] = 3] = \"InvalidArgument\";\n /**\n * Operation expired, may or may not have completed.\n */\n Code[Code[\"DeadlineExceeded\"] = 4] = \"DeadlineExceeded\";\n /**\n * Entity not found.\n */\n Code[Code[\"NotFound\"] = 5] = \"NotFound\";\n /**\n * Entity already exists.\n */\n Code[Code[\"AlreadyExists\"] = 6] = \"AlreadyExists\";\n /**\n * Operation not authorized.\n */\n Code[Code[\"PermissionDenied\"] = 7] = \"PermissionDenied\";\n /**\n * Quota exhausted.\n */\n Code[Code[\"ResourceExhausted\"] = 8] = \"ResourceExhausted\";\n /**\n * Argument invalid in current system state.\n */\n Code[Code[\"FailedPrecondition\"] = 9] = \"FailedPrecondition\";\n /**\n * Operation aborted.\n */\n Code[Code[\"Aborted\"] = 10] = \"Aborted\";\n /**\n * Out of bounds, use instead of FailedPrecondition.\n */\n Code[Code[\"OutOfRange\"] = 11] = \"OutOfRange\";\n /**\n * Operation not implemented or disabled.\n */\n Code[Code[\"Unimplemented\"] = 12] = \"Unimplemented\";\n /**\n * Internal error, reserved for \"serious errors\".\n */\n Code[Code[\"Internal\"] = 13] = \"Internal\";\n /**\n * Unavailable, client should back off and retry.\n */\n Code[Code[\"Unavailable\"] = 14] = \"Unavailable\";\n /**\n * Unrecoverable data loss or corruption.\n */\n Code[Code[\"DataLoss\"] = 15] = \"DataLoss\";\n /**\n * Request isn't authenticated.\n */\n Code[Code[\"Unauthenticated\"] = 16] = \"Unauthenticated\";\n})(Code || (Code = {}));\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"../code.js\";\n/**\n * codeToString returns the string representation of a Code.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeToString(value) {\n const name = Code[value];\n if (typeof name != \"string\") {\n return value.toString();\n }\n return (name[0].toLowerCase() +\n name.substring(1).replace(/[A-Z]/g, (c) => \"_\" + c.toLowerCase()));\n}\nlet stringToCode;\n/**\n * codeFromString parses the string representation of a Code in snake_case.\n * For example, the string \"permission_denied\" parses into Code.PermissionDenied.\n *\n * If the given string cannot be parsed, the function returns undefined.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeFromString(value) {\n if (!stringToCode) {\n stringToCode = {};\n for (const value of Object.values(Code)) {\n if (typeof value == \"string\") {\n continue;\n }\n stringToCode[codeToString(value)] = value;\n }\n }\n return stringToCode[value];\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"./code.js\";\nimport { Message } from \"@bufbuild/protobuf\";\nimport { codeToString } from \"./protocol-connect/code-string.js\";\n/**\n * ConnectError captures four pieces of information: a Code, an error\n * message, an optional cause of the error, and an optional collection of\n * arbitrary Protobuf messages called \"details\".\n *\n * Because developer tools typically show just the error message, we prefix\n * it with the status code, so that the most important information is always\n * visible immediately.\n *\n * Error details are wrapped with google.protobuf.Any on the wire, so that\n * a server or middleware can attach arbitrary data to an error. Use the\n * method findDetails() to retrieve the details.\n */\nexport class ConnectError extends Error {\n /**\n * Create a new ConnectError.\n * If no code is provided, code \"unknown\" is used.\n * Outgoing details are only relevant for the server side - a service may\n * raise an error with details, and it is up to the protocol implementation\n * to encode and send the details along with error.\n */\n constructor(message, code = Code.Unknown, metadata, outgoingDetails, cause) {\n super(createMessage(message, code));\n this.name = \"ConnectError\";\n // see https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#example\n Object.setPrototypeOf(this, new.target.prototype);\n this.rawMessage = message;\n this.code = code;\n this.metadata = new Headers(metadata !== null && metadata !== void 0 ? metadata : {});\n this.details = outgoingDetails !== null && outgoingDetails !== void 0 ? outgoingDetails : [];\n this.cause = cause;\n }\n /**\n * Convert any value - typically a caught error into a ConnectError,\n * following these rules:\n * - If the value is already a ConnectError, return it as is.\n * - If the value is an AbortError from the fetch API, return the message\n * of the AbortError with code Canceled.\n * - For other Errors, return the error message with code Unknown by default.\n * - For other values, return the values String representation as a message,\n * with the code Unknown by default.\n * The original value will be used for the \"cause\" property for the new\n * ConnectError.\n */\n static from(reason, code = Code.Unknown) {\n if (reason instanceof ConnectError) {\n return reason;\n }\n if (reason instanceof Error) {\n if (reason.name == \"AbortError\") {\n // Fetch requests can only be canceled with an AbortController.\n // We detect that condition by looking at the name of the raised\n // error object, and translate to the appropriate status code.\n return new ConnectError(reason.message, Code.Canceled);\n }\n return new ConnectError(reason.message, code, undefined, undefined, reason);\n }\n return new ConnectError(String(reason), code, undefined, undefined, reason);\n }\n static [Symbol.hasInstance](v) {\n if (!(v instanceof Error)) {\n return false;\n }\n if (Object.getPrototypeOf(v) === ConnectError.prototype) {\n return true;\n }\n return (v.name === \"ConnectError\" &&\n \"code\" in v &&\n typeof v.code === \"number\" &&\n \"metadata\" in v &&\n \"details\" in v &&\n Array.isArray(v.details) &&\n \"rawMessage\" in v &&\n typeof v.rawMessage == \"string\" &&\n \"cause\" in v);\n }\n findDetails(typeOrRegistry) {\n const registry = \"typeName\" in typeOrRegistry\n ? {\n findMessage: (typeName) => typeName === typeOrRegistry.typeName ? typeOrRegistry : undefined,\n }\n : typeOrRegistry;\n const details = [];\n for (const data of this.details) {\n if (data instanceof Message) {\n if (registry.findMessage(data.getType().typeName)) {\n details.push(data);\n }\n continue;\n }\n const type = registry.findMessage(data.type);\n if (type) {\n try {\n details.push(type.fromBinary(data.value));\n }\n catch (_) {\n // We silently give up if we are unable to parse the detail, because\n // that appears to be the least worst behavior.\n // It is very unlikely that a user surrounds a catch body handling the\n // error with another try-catch statement, and we do not want to\n // recommend doing so.\n }\n }\n }\n return details;\n }\n}\n/**\n * Create an error message, prefixing the given code.\n */\nfunction createMessage(message, code) {\n return message.length\n ? `[${codeToString(code)}] ${message}`\n : `[${codeToString(code)}]`;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message, protoBase64 } from \"@bufbuild/protobuf\";\nimport { ConnectError } from \"./connect-error.js\";\nimport { Code } from \"./code.js\";\n/**\n * Encode a single binary header value according to the Connect\n * and gRPC specifications.\n *\n * This function accepts raw binary data from a buffer, a string\n * with UTF-8 text, or a protobuf message. It encodes the input\n * with unpadded base64 and returns a string that can be used for\n * a header whose name ends with `-bin`.\n */\nexport function encodeBinaryHeader(value) {\n let bytes;\n if (value instanceof Message) {\n bytes = value.toBinary();\n }\n else if (typeof value == \"string\") {\n bytes = new TextEncoder().encode(value);\n }\n else {\n bytes = value instanceof Uint8Array ? value : new Uint8Array(value);\n }\n return protoBase64.enc(bytes).replace(/=+$/, \"\");\n}\nexport function decodeBinaryHeader(value, type, options) {\n try {\n const bytes = protoBase64.dec(value);\n if (type) {\n return type.fromBinary(bytes, options);\n }\n return bytes;\n }\n catch (e) {\n throw ConnectError.from(e, Code.DataLoss);\n }\n}\n/**\n * Merge two or more Headers objects by appending all fields from\n * all inputs to a new Headers object.\n */\nexport function appendHeaders(...headers) {\n const h = new Headers();\n for (const e of headers) {\n e.forEach((value, key) => {\n h.append(key, value);\n });\n }\n return h;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Create any client for the given service.\n *\n * The given createMethod function is called for each method definition\n * of the service. The function it returns is added to the client object\n * as a method.\n */\nexport function makeAnyClient(service, createMethod) {\n const client = {};\n for (const [localName, methodInfo] of Object.entries(service.methods)) {\n const method = createMethod(Object.assign(Object.assign({}, methodInfo), { localName,\n service }));\n if (method != null) {\n client[localName] = method;\n }\n }\n return client;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\nimport { compressedFlag } from \"./compression.js\";\n/**\n * Create a WHATWG ReadableStream of enveloped messages from a ReadableStream\n * of bytes.\n *\n * Ideally, this would simply be a TransformStream, but ReadableStream.pipeThrough\n * does not have the necessary availability at this time.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createEnvelopeReadableStream(stream) {\n let reader;\n let buffer = new Uint8Array(0);\n function append(chunk) {\n const n = new Uint8Array(buffer.length + chunk.length);\n n.set(buffer);\n n.set(chunk, buffer.length);\n buffer = n;\n }\n return new ReadableStream({\n start() {\n reader = stream.getReader();\n },\n async pull(controller) {\n let header = undefined;\n for (;;) {\n if (header === undefined && buffer.byteLength >= 5) {\n let length = 0;\n for (let i = 1; i < 5; i++) {\n length = (length << 8) + buffer[i];\n }\n header = { flags: buffer[0], length };\n }\n if (header !== undefined && buffer.byteLength >= header.length + 5) {\n break;\n }\n const result = await reader.read();\n if (result.done) {\n break;\n }\n append(result.value);\n }\n if (header === undefined) {\n if (buffer.byteLength == 0) {\n controller.close();\n return;\n }\n controller.error(new ConnectError(\"premature end of stream\", Code.DataLoss));\n return;\n }\n const data = buffer.subarray(5, 5 + header.length);\n buffer = buffer.subarray(5 + header.length);\n controller.enqueue({\n flags: header.flags,\n data,\n });\n },\n });\n}\n/**\n * Compress an EnvelopedMessage.\n *\n * Raises Internal if an enveloped message is already compressed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function envelopeCompress(envelope, compression, compressMinBytes) {\n let { flags, data } = envelope;\n if ((flags & compressedFlag) === compressedFlag) {\n throw new ConnectError(\"invalid envelope, already compressed\", Code.Internal);\n }\n if (compression && data.byteLength >= compressMinBytes) {\n data = await compression.compress(data);\n flags = flags | compressedFlag;\n }\n return { data, flags };\n}\n/**\n * Decompress an EnvelopedMessage.\n *\n * Raises InvalidArgument if an envelope is compressed, but compression is null.\n *\n * Relies on the provided Compression to raise ResourceExhausted if the\n * *decompressed* message size is larger than readMaxBytes. If the envelope is\n * not compressed, readMaxBytes is not honored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function envelopeDecompress(envelope, compression, readMaxBytes) {\n let { flags, data } = envelope;\n if ((flags & compressedFlag) === compressedFlag) {\n if (!compression) {\n throw new ConnectError(\"received compressed envelope, but do not know how to decompress\", Code.InvalidArgument);\n }\n data = await compression.decompress(data, readMaxBytes);\n flags = flags ^ compressedFlag;\n }\n return { data, flags };\n}\n/**\n * Encode a single enveloped message.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function encodeEnvelope(flags, data) {\n const bytes = new Uint8Array(data.length + 5);\n bytes.set(data, 5);\n const v = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n v.setUint8(0, flags); // first byte is flags\n v.setUint32(1, data.length); // 4 bytes message length\n return bytes;\n}\n/**\n * Encode a set of enveloped messages.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function encodeEnvelopes(...envelopes) {\n const len = envelopes.reduce((previousValue, currentValue) => previousValue + currentValue.data.length + 5, 0);\n const bytes = new Uint8Array(len);\n const v = new DataView(bytes.buffer);\n let offset = 0;\n for (const e of envelopes) {\n v.setUint8(offset, e.flags); // first byte is flags\n v.setUint32(offset + 1, e.data.length); // 4 bytes message length\n bytes.set(e.data, offset + 5);\n offset += e.data.length + 5;\n }\n return bytes;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nvar __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n};\nimport { Code } from \"../code.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { encodeEnvelope, envelopeCompress, envelopeDecompress, } from \"./envelope.js\";\nimport { assertReadMaxBytes } from \"./limit-io.js\";\nexport function pipeTo(source, ...rest) {\n const [transforms, sink, opt] = pickTransformsAndSink(rest);\n let iterable = source;\n let abortable;\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n iterable = abortable = makeIterableAbortable(iterable);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n iterable = pipe(iterable, ...transforms, { propagateDownStreamError: false });\n return sink(iterable).catch((reason) => {\n if (abortable) {\n return abortable.abort(reason).then(() => Promise.reject(reason));\n }\n return Promise.reject(reason);\n });\n}\n// pick transforms, the sink, and options from the pipeTo() rest parameter\nfunction pickTransformsAndSink(rest) {\n let opt;\n if (typeof rest[rest.length - 1] != \"function\") {\n opt = rest.pop();\n }\n const sink = rest.pop();\n return [rest, sink, opt];\n}\n/**\n * Creates an AsyncIterableSink that concatenates all elements from the input.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function sinkAll() {\n return async function (iterable) {\n var _a, e_1, _b, _c;\n const all = [];\n try {\n for (var _d = true, iterable_1 = __asyncValues(iterable), iterable_1_1; iterable_1_1 = await iterable_1.next(), _a = iterable_1_1.done, !_a; _d = true) {\n _c = iterable_1_1.value;\n _d = false;\n const chunk = _c;\n all.push(chunk);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_1.return)) await _b.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return all;\n };\n}\n/**\n * Creates an AsyncIterableSink that concatenates all chunks from the input into\n * a single Uint8Array.\n *\n * The iterable raises an error if the more than readMaxBytes are read.\n *\n * An optional length hint can be provided to optimize allocation and validation.\n * If more or less bytes are present in the source that the length hint indicates,\n * and error is raised.\n * If the length hint is larger than readMaxBytes, an error is raised.\n * If the length hint is not a positive integer, it is ignored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function sinkAllBytes(readMaxBytes, lengthHint) {\n return async function (iterable) {\n return await readAllBytes(iterable, readMaxBytes, lengthHint);\n };\n}\nexport function pipe(source, ...rest) {\n var _a;\n return __asyncGenerator(this, arguments, function* pipe_1() {\n const [transforms, opt] = pickTransforms(rest);\n let abortable;\n const sourceIt = source[Symbol.asyncIterator]();\n const cachedSource = {\n [Symbol.asyncIterator]() {\n return sourceIt;\n },\n };\n let iterable = cachedSource;\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n iterable = abortable = makeIterableAbortable(iterable);\n }\n for (const t of transforms) {\n iterable = t(iterable);\n }\n const it = iterable[Symbol.asyncIterator]();\n try {\n for (;;) {\n const r = yield __await(it.next());\n if (r.done === true) {\n break;\n }\n if (!abortable) {\n yield yield __await(r.value);\n continue;\n }\n try {\n yield yield __await(r.value);\n }\n catch (e) {\n yield __await(abortable.abort(e)); // propagate downstream error to the source\n throw e;\n }\n }\n }\n finally {\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n // Call return on the source iterable to indicate\n // that we will no longer consume it and it should\n // cleanup any allocated resources.\n (_a = sourceIt.return) === null || _a === void 0 ? void 0 : _a.call(sourceIt).catch(() => {\n // return returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n }\n }\n });\n}\nfunction pickTransforms(rest) {\n let opt;\n if (typeof rest[rest.length - 1] != \"function\") {\n opt = rest.pop();\n }\n return [rest, opt];\n}\n/**\n * Creates an AsyncIterableTransform that catches any error from the input, and\n * passes it to the given catchError function.\n *\n * The catchError function may return a final value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCatch(catchError) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n // we deliberate avoid a for-await loop because we only want to catch upstream\n // errors, not downstream errors (yield).\n const it = iterable[Symbol.asyncIterator]();\n for (;;) {\n let r;\n try {\n r = yield __await(it.next());\n }\n catch (e) {\n const caught = yield __await(catchError(e));\n if (caught !== undefined) {\n yield yield __await(caught);\n }\n break;\n }\n if (r.done === true) {\n break;\n }\n yield yield __await(r.value);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that catches any error from the input, and\n * passes it to the given function. Unlike transformCatch(), the given function\n * is also called when no error is raised.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCatchFinally(catchFinally) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n // we deliberate avoid a for-await loop because we only want to catch upstream\n // errors, not downstream errors (yield).\n let err;\n const it = iterable[Symbol.asyncIterator]();\n for (;;) {\n let r;\n try {\n r = yield __await(it.next());\n }\n catch (e) {\n err = e;\n break;\n }\n if (r.done === true) {\n break;\n }\n yield yield __await(r.value);\n }\n const caught = yield __await(catchFinally(err));\n if (caught !== undefined) {\n yield yield __await(caught);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that appends a value.\n *\n * The element to append is provided by a function. If the function returns\n * undefined, no element is appended.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformAppend(provide) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_2, _b, _c;\n try {\n for (var _d = true, iterable_2 = __asyncValues(iterable), iterable_2_1; iterable_2_1 = yield __await(iterable_2.next()), _a = iterable_2_1.done, !_a; _d = true) {\n _c = iterable_2_1.value;\n _d = false;\n const chunk = _c;\n yield yield __await(chunk);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_2.return)) yield __await(_b.call(iterable_2));\n }\n finally { if (e_2) throw e_2.error; }\n }\n const append = yield __await(provide());\n if (append !== undefined) {\n yield yield __await(append);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that prepends an element.\n *\n * The element to prepend is provided by a function. If the function returns\n * undefined, no element is appended.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformPrepend(provide) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_3, _b, _c;\n const prepend = yield __await(provide());\n if (prepend !== undefined) {\n yield yield __await(prepend);\n }\n try {\n for (var _d = true, iterable_3 = __asyncValues(iterable), iterable_3_1; iterable_3_1 = yield __await(iterable_3.next()), _a = iterable_3_1.done, !_a; _d = true) {\n _c = iterable_3_1.value;\n _d = false;\n const chunk = _c;\n yield yield __await(chunk);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_3.return)) yield __await(_b.call(iterable_3));\n }\n finally { if (e_3) throw e_3.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that reads all bytes from the input, and\n * concatenates them to a single Uint8Array.\n *\n * The iterable raises an error if the more than readMaxBytes are read.\n *\n * An optional length hint can be provided to optimize allocation and validation.\n * If more or less bytes are present in the source that the length hint indicates,\n * and error is raised.\n * If the length hint is larger than readMaxBytes, an error is raised.\n * If the length hint is not a positive integer, it is ignored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformReadAllBytes(readMaxBytes, lengthHint) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n yield yield __await(yield __await(readAllBytes(iterable, readMaxBytes, lengthHint)));\n });\n };\n}\nexport function transformSerializeEnvelope(serialization, endStreamFlag, endSerialization) {\n if (endStreamFlag === undefined || endSerialization === undefined) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_4, _b, _c;\n try {\n for (var _d = true, iterable_4 = __asyncValues(iterable), iterable_4_1; iterable_4_1 = yield __await(iterable_4.next()), _a = iterable_4_1.done, !_a; _d = true) {\n _c = iterable_4_1.value;\n _d = false;\n const chunk = _c;\n const data = serialization.serialize(chunk);\n yield yield __await({ flags: 0, data });\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_4.return)) yield __await(_b.call(iterable_4));\n }\n finally { if (e_4) throw e_4.error; }\n }\n });\n };\n }\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_5, _b, _c;\n try {\n for (var _d = true, iterable_5 = __asyncValues(iterable), iterable_5_1; iterable_5_1 = yield __await(iterable_5.next()), _a = iterable_5_1.done, !_a; _d = true) {\n _c = iterable_5_1.value;\n _d = false;\n const chunk = _c;\n let data;\n let flags = 0;\n if (chunk.end) {\n flags = flags | endStreamFlag;\n data = endSerialization.serialize(chunk.value);\n }\n else {\n data = serialization.serialize(chunk.value);\n }\n yield yield __await({ flags, data });\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_5.return)) yield __await(_b.call(iterable_5));\n }\n finally { if (e_5) throw e_5.error; }\n }\n });\n };\n}\nexport function transformParseEnvelope(serialization, endStreamFlag, endSerialization) {\n // code path always yields ParsedEnvelopedMessage\n if (endSerialization && endStreamFlag !== undefined) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_6, _b, _c;\n try {\n for (var _d = true, iterable_6 = __asyncValues(iterable), iterable_6_1; iterable_6_1 = yield __await(iterable_6.next()), _a = iterable_6_1.done, !_a; _d = true) {\n _c = iterable_6_1.value;\n _d = false;\n const { flags, data } = _c;\n if ((flags & endStreamFlag) === endStreamFlag) {\n yield yield __await({ value: endSerialization.parse(data), end: true });\n }\n else {\n yield yield __await({ value: serialization.parse(data), end: false });\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_6.return)) yield __await(_b.call(iterable_6));\n }\n finally { if (e_6) throw e_6.error; }\n }\n });\n };\n }\n // code path always yields T\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_7, _b, _c;\n try {\n for (var _d = true, iterable_7 = __asyncValues(iterable), iterable_7_1; iterable_7_1 = yield __await(iterable_7.next()), _a = iterable_7_1.done, !_a; _d = true) {\n _c = iterable_7_1.value;\n _d = false;\n const { flags, data } = _c;\n if (endStreamFlag !== undefined &&\n (flags & endStreamFlag) === endStreamFlag) {\n if (endSerialization === null) {\n throw new ConnectError(\"unexpected end flag\", Code.InvalidArgument);\n }\n // skips end-of-stream envelope\n continue;\n }\n yield yield __await(serialization.parse(data));\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_7.return)) yield __await(_b.call(iterable_7));\n }\n finally { if (e_7) throw e_7.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that takes enveloped messages as a source,\n * and compresses them if they are larger than compressMinBytes.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCompressEnvelope(compression, compressMinBytes) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_8, _b, _c;\n try {\n for (var _d = true, iterable_8 = __asyncValues(iterable), iterable_8_1; iterable_8_1 = yield __await(iterable_8.next()), _a = iterable_8_1.done, !_a; _d = true) {\n _c = iterable_8_1.value;\n _d = false;\n const env = _c;\n yield yield __await(yield __await(envelopeCompress(env, compression, compressMinBytes)));\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_8.return)) yield __await(_b.call(iterable_8));\n }\n finally { if (e_8) throw e_8.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that takes enveloped messages as a source,\n * and decompresses them using the given compression.\n *\n * The iterable raises an error if the decompressed payload of an enveloped\n * message is larger than readMaxBytes, or if no compression is provided.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformDecompressEnvelope(compression, readMaxBytes) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_9, _b, _c;\n try {\n for (var _d = true, iterable_9 = __asyncValues(iterable), iterable_9_1; iterable_9_1 = yield __await(iterable_9.next()), _a = iterable_9_1.done, !_a; _d = true) {\n _c = iterable_9_1.value;\n _d = false;\n const env = _c;\n yield yield __await(yield __await(envelopeDecompress(env, compression, readMaxBytes)));\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_9.return)) yield __await(_b.call(iterable_9));\n }\n finally { if (e_9) throw e_9.error; }\n }\n });\n };\n}\n/**\n * Create an AsyncIterableTransform that takes enveloped messages as a source,\n * and joins them into a stream of raw bytes.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformJoinEnvelopes() {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_10, _b, _c;\n try {\n for (var _d = true, iterable_10 = __asyncValues(iterable), iterable_10_1; iterable_10_1 = yield __await(iterable_10.next()), _a = iterable_10_1.done, !_a; _d = true) {\n _c = iterable_10_1.value;\n _d = false;\n const { flags, data } = _c;\n yield yield __await(encodeEnvelope(flags, data));\n }\n }\n catch (e_10_1) { e_10 = { error: e_10_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_10.return)) yield __await(_b.call(iterable_10));\n }\n finally { if (e_10) throw e_10.error; }\n }\n });\n };\n}\n/**\n * Create an AsyncIterableTransform that takes raw bytes as a source, and splits\n * them into enveloped messages.\n *\n * The iterable raises an error\n * - if the payload of an enveloped message is larger than readMaxBytes,\n * - if the stream ended before an enveloped message fully arrived,\n * - or if the stream ended with extraneous data.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformSplitEnvelope(readMaxBytes) {\n // append chunk to buffer, returning updated buffer\n function append(buffer, chunk) {\n const n = new Uint8Array(buffer.byteLength + chunk.byteLength);\n n.set(buffer);\n n.set(chunk, buffer.length);\n return n;\n }\n // tuple 0: envelope, or undefined if incomplete\n // tuple 1: remainder of the buffer\n function shiftEnvelope(buffer, header) {\n if (buffer.byteLength < 5 + header.length) {\n return [undefined, buffer];\n }\n return [\n { flags: header.flags, data: buffer.subarray(5, 5 + header.length) },\n buffer.subarray(5 + header.length),\n ];\n }\n // undefined: header is incomplete\n function peekHeader(buffer) {\n if (buffer.byteLength < 5) {\n return undefined;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const length = view.getUint32(1); // 4 bytes message length\n const flags = view.getUint8(0); // first byte is flags\n return { length, flags };\n }\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_11, _b, _c;\n let buffer = new Uint8Array(0);\n try {\n for (var _d = true, iterable_11 = __asyncValues(iterable), iterable_11_1; iterable_11_1 = yield __await(iterable_11.next()), _a = iterable_11_1.done, !_a; _d = true) {\n _c = iterable_11_1.value;\n _d = false;\n const chunk = _c;\n buffer = append(buffer, chunk);\n for (;;) {\n const header = peekHeader(buffer);\n if (!header) {\n break;\n }\n assertReadMaxBytes(readMaxBytes, header.length, true);\n let env;\n [env, buffer] = shiftEnvelope(buffer, header);\n if (!env) {\n break;\n }\n yield yield __await(env);\n }\n }\n }\n catch (e_11_1) { e_11 = { error: e_11_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_11.return)) yield __await(_b.call(iterable_11));\n }\n finally { if (e_11) throw e_11.error; }\n }\n if (buffer.byteLength > 0) {\n const header = peekHeader(buffer);\n let message = \"protocol error: incomplete envelope\";\n if (header) {\n message = `protocol error: promised ${header.length} bytes in enveloped message, got ${buffer.byteLength - 5} bytes`;\n }\n throw new ConnectError(message, Code.InvalidArgument);\n }\n });\n };\n}\n/**\n * Reads all bytes from the source, and concatenates them to a single Uint8Array.\n *\n * Raises an error if:\n * - more than readMaxBytes are read\n * - lengthHint is a positive integer, but larger than readMaxBytes\n * - lengthHint is a positive integer, and the source contains more or less bytes\n * than promised\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function readAllBytes(iterable, readMaxBytes, lengthHint) {\n var _a, e_12, _b, _c, _d, e_13, _e, _f;\n const [ok, hint] = parseLengthHint(lengthHint);\n if (ok) {\n if (hint > readMaxBytes) {\n assertReadMaxBytes(readMaxBytes, hint, true);\n }\n const buffer = new Uint8Array(hint);\n let offset = 0;\n try {\n for (var _g = true, iterable_12 = __asyncValues(iterable), iterable_12_1; iterable_12_1 = await iterable_12.next(), _a = iterable_12_1.done, !_a; _g = true) {\n _c = iterable_12_1.value;\n _g = false;\n const chunk = _c;\n if (offset + chunk.byteLength > hint) {\n throw new ConnectError(`protocol error: promised ${hint} bytes, received ${offset + chunk.byteLength}`, Code.InvalidArgument);\n }\n buffer.set(chunk, offset);\n offset += chunk.byteLength;\n }\n }\n catch (e_12_1) { e_12 = { error: e_12_1 }; }\n finally {\n try {\n if (!_g && !_a && (_b = iterable_12.return)) await _b.call(iterable_12);\n }\n finally { if (e_12) throw e_12.error; }\n }\n if (offset < hint) {\n throw new ConnectError(`protocol error: promised ${hint} bytes, received ${offset}`, Code.InvalidArgument);\n }\n return buffer;\n }\n const chunks = [];\n let count = 0;\n try {\n for (var _h = true, iterable_13 = __asyncValues(iterable), iterable_13_1; iterable_13_1 = await iterable_13.next(), _d = iterable_13_1.done, !_d; _h = true) {\n _f = iterable_13_1.value;\n _h = false;\n const chunk = _f;\n count += chunk.byteLength;\n assertReadMaxBytes(readMaxBytes, count);\n chunks.push(chunk);\n }\n }\n catch (e_13_1) { e_13 = { error: e_13_1 }; }\n finally {\n try {\n if (!_h && !_d && (_e = iterable_13.return)) await _e.call(iterable_13);\n }\n finally { if (e_13) throw e_13.error; }\n }\n const all = new Uint8Array(count);\n let offset = 0;\n for (let chunk = chunks.shift(); chunk; chunk = chunks.shift()) {\n all.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return all;\n}\n// parse the lengthHint argument of readAllBytes()\nfunction parseLengthHint(lengthHint) {\n if (lengthHint === undefined || lengthHint === null) {\n return [false, 0];\n }\n const n = typeof lengthHint == \"string\" ? parseInt(lengthHint, 10) : lengthHint;\n if (!Number.isSafeInteger(n) || n < 0) {\n return [false, n];\n }\n return [true, n];\n}\n/**\n * Wait for the first element of an iterable without modifying the iterable.\n * This consumes the first element, but pushes it back on the stack.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function untilFirst(iterable) {\n const it = iterable[Symbol.asyncIterator]();\n let first = await it.next();\n return {\n [Symbol.asyncIterator]() {\n const w = {\n async next() {\n if (first !== null) {\n const n = first;\n first = null;\n return n;\n }\n return await it.next();\n },\n };\n if (it.throw !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- can't handle mutated object sensibly\n w.throw = (e) => it.throw(e);\n }\n if (it.return !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion,@typescript-eslint/no-explicit-any -- can't handle mutated object sensibly\n w.return = (value) => it.return(value);\n }\n return w;\n },\n };\n}\n/**\n * Wrap the given iterable and return an iterable with an abort() method.\n *\n * This function exists purely for convenience. Where one would typically have\n * to access the iterator directly, advance through all elements, and call\n * AsyncIterator.throw() to notify the upstream iterable, this function allows\n * to use convenient for-await loops and still notify the upstream iterable:\n *\n * ```ts\n * const abortable = makeIterableAbortable(iterable);\n * for await (const ele of abortable) {\n * await abortable.abort(\"ERR\");\n * }\n * ```\n * There are a couple of limitations of this function:\n * - the given async iterable must implement throw\n * - the async iterable cannot be re-use\n * - if source catches errors and yields values for them, they are ignored, and\n * the source may still dangle\n *\n * There are four possible ways an async function* can handle yield errors:\n * 1. don't catch errors at all - Abortable.abort() will resolve \"rethrown\"\n * 2. catch errors and rethrow - Abortable.abort() will resolve \"rethrown\"\n * 3. catch errors and return - Abortable.abort() will resolve \"completed\"\n * 4. catch errors and yield a value - Abortable.abort() will resolve \"caught\"\n *\n * Note that catching errors and yielding a value is problematic, and it should\n * be documented that this may leave the source in a dangling state.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function makeIterableAbortable(iterable) {\n const innerCandidate = iterable[Symbol.asyncIterator]();\n if (innerCandidate.throw === undefined) {\n throw new Error(\"AsyncIterable does not implement throw\");\n }\n const inner = innerCandidate;\n let aborted;\n let resultPromise;\n let it = {\n next() {\n resultPromise = inner.next().finally(() => {\n resultPromise = undefined;\n });\n return resultPromise;\n },\n throw(e) {\n return inner.throw(e);\n },\n };\n if (innerCandidate.return !== undefined) {\n it = Object.assign(Object.assign({}, it), { return(value) {\n return inner.return(value);\n } });\n }\n let used = false;\n return {\n abort(reason) {\n if (aborted) {\n return aborted.state;\n }\n const f = () => {\n return inner.throw(reason).then((r) => (r.done === true ? \"completed\" : \"caught\"), () => \"rethrown\");\n };\n if (resultPromise) {\n aborted = { reason, state: resultPromise.then(f, f) };\n return aborted.state;\n }\n aborted = { reason, state: f() };\n return aborted.state;\n },\n [Symbol.asyncIterator]() {\n if (used) {\n throw new Error(\"AsyncIterable cannot be re-used\");\n }\n used = true;\n return it;\n },\n };\n}\n/**\n * Create a new WritableIterable.\n */\nexport function createWritableIterable() {\n // We start with two queues to capture the read and write attempts.\n //\n // The writes and reads each check of their counterpart is\n // already available and either interact/add themselves to the queue.\n const readQueue = [];\n const writeQueue = [];\n let err = undefined;\n let nextResolve;\n let nextReject;\n let nextPromise = new Promise((resolve, reject) => {\n nextResolve = resolve;\n nextReject = reject;\n });\n let closed = false;\n // drain the readQueue in case of error/writer is closed by sending a\n // done result.\n function drain() {\n for (const next of readQueue.splice(0, readQueue.length)) {\n next({ done: true, value: undefined });\n }\n }\n return {\n close() {\n closed = true;\n drain();\n },\n async write(payload) {\n if (closed) {\n throw err !== null && err !== void 0 ? err : new Error(\"cannot write, WritableIterable already closed\");\n }\n const read = readQueue.shift();\n if (read === undefined) {\n // We didn't find a pending read so we add the payload to the write queue.\n writeQueue.push(payload);\n }\n else {\n // We found a pending read so we respond with the payload.\n read({ done: false, value: payload });\n if (readQueue.length > 0) {\n // If there are more in the read queue we can mark the write as complete.\n // as the error reporting is not guaranteed to be sequential and therefore cannot\n // to linked to a specific write.\n return;\n }\n }\n // We await the next call for as many times as there are items in the queue + 1\n //\n // If there are no items in the write queue that means write happened and we just have\n // to wait for one more call likewise if we are the nth write in the queue we\n // have to wait for n writes to complete and one more.\n const limit = writeQueue.length + 1;\n for (let i = 0; i < limit; i++) {\n await nextPromise;\n }\n },\n [Symbol.asyncIterator]() {\n return {\n next() {\n // Resolve the nextPromise to indicate\n // pending writes that a read attempt has been made\n // after their write.\n //\n // We also need to reset the promise for future writes.\n nextResolve();\n nextPromise = new Promise((resolve, reject) => {\n nextResolve = resolve;\n nextReject = reject;\n });\n const write = writeQueue.shift();\n if (write !== undefined) {\n // We found a pending write so response with the payload.\n return Promise.resolve({ done: false, value: write });\n }\n if (closed) {\n return Promise.resolve({ done: true, value: undefined });\n }\n // We return a promise immediately that is either resolved/rejected\n // as writes happen.\n let readResolve;\n const readPromise = new Promise((resolve) => (readResolve = resolve));\n readQueue.push(readResolve); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n return readPromise;\n },\n throw(throwErr) {\n err = throwErr;\n closed = true;\n writeQueue.splice(0, writeQueue.length);\n nextPromise.catch(() => {\n // To make sure that the nextPromise is always resolved.\n });\n // This will reject all pending writes.\n nextReject(err);\n drain();\n return Promise.resolve({ done: true, value: undefined });\n },\n return() {\n closed = true;\n writeQueue.splice(0, writeQueue.length);\n // Resolve once for the write awaiting confirmation.\n nextResolve();\n // Reject all future writes.\n nextPromise = Promise.reject(new Error(\"cannot write, consumer called return\"));\n nextPromise.catch(() => {\n // To make sure that the nextPromise is always resolved.\n });\n drain();\n return Promise.resolve({ done: true, value: undefined });\n },\n };\n },\n };\n}\n/**\n * Create an asynchronous iterable from an array.\n *\n * @private Internal code, does not follow semantic versioning.\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nexport function createAsyncIterable(items) {\n return __asyncGenerator(this, arguments, function* createAsyncIterable_1() {\n yield __await(yield* __asyncDelegator(__asyncValues(items)));\n });\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n};\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { Message, MethodKind } from \"@bufbuild/protobuf\";\nimport { makeAnyClient } from \"./any-client.js\";\nimport { ConnectError } from \"./connect-error.js\";\nimport { Code } from \"./code.js\";\nimport { createAsyncIterable } from \"./protocol/async-iterable.js\";\n/**\n * Create a PromiseClient for the given service, invoking RPCs through the\n * given transport.\n */\nexport function createPromiseClient(service, transport) {\n return makeAnyClient(service, (method) => {\n switch (method.kind) {\n case MethodKind.Unary:\n return createUnaryFn(transport, service, method);\n case MethodKind.ServerStreaming:\n return createServerStreamingFn(transport, service, method);\n case MethodKind.ClientStreaming:\n return createClientStreamingFn(transport, service, method);\n case MethodKind.BiDiStreaming:\n return createBiDiStreamingFn(transport, service, method);\n default:\n return null;\n }\n });\n}\nexport function createUnaryFn(transport, service, method) {\n return async function (input, options) {\n var _a, _b;\n const response = await transport.unary(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, input, options === null || options === void 0 ? void 0 : options.contextValues);\n (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header);\n (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer);\n return response.message;\n };\n}\nexport function createServerStreamingFn(transport, service, method) {\n return function (input, options) {\n return handleStreamResponse(transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, createAsyncIterable([input]), options === null || options === void 0 ? void 0 : options.contextValues), options);\n };\n}\nexport function createClientStreamingFn(transport, service, method) {\n return async function (request, options) {\n var _a, e_1, _b, _c;\n var _d, _e;\n const response = await transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues);\n (_d = options === null || options === void 0 ? void 0 : options.onHeader) === null || _d === void 0 ? void 0 : _d.call(options, response.header);\n let singleMessage;\n try {\n for (var _f = true, _g = __asyncValues(response.message), _h; _h = await _g.next(), _a = _h.done, !_a; _f = true) {\n _c = _h.value;\n _f = false;\n const message = _c;\n singleMessage = message;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_f && !_a && (_b = _g.return)) await _b.call(_g);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!singleMessage) {\n throw new ConnectError(\"protocol error: missing response message\", Code.Internal);\n }\n (_e = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _e === void 0 ? void 0 : _e.call(options, response.trailer);\n return singleMessage;\n };\n}\nexport function createBiDiStreamingFn(transport, service, method) {\n return function (request, options) {\n return handleStreamResponse(transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues), options);\n };\n}\nfunction handleStreamResponse(stream, options) {\n const it = (function () {\n var _a, _b;\n return __asyncGenerator(this, arguments, function* () {\n const response = yield __await(stream);\n (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header);\n yield __await(yield* __asyncDelegator(__asyncValues(response.message)));\n (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer);\n });\n })()[Symbol.asyncIterator]();\n // Create a new iterable to omit throw/return.\n return {\n [Symbol.asyncIterator]: () => ({\n next: () => it.next(),\n }),\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * Create an AbortController that is automatically aborted if one of the given\n * signals is aborted.\n *\n * For convenience, the linked AbortSignals can be undefined.\n *\n * If the controller or any of the signals is aborted, all event listeners are\n * removed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createLinkedAbortController(...signals) {\n const controller = new AbortController();\n const sa = signals\n .filter((s) => s !== undefined)\n .concat(controller.signal);\n for (const signal of sa) {\n if (signal.aborted) {\n onAbort.apply(signal);\n break;\n }\n signal.addEventListener(\"abort\", onAbort);\n }\n function onAbort() {\n if (!controller.signal.aborted) {\n controller.abort(getAbortSignalReason(this));\n }\n for (const signal of sa) {\n signal.removeEventListener(\"abort\", onAbort);\n }\n }\n return controller;\n}\n/**\n * Create a deadline signal. The returned object contains an AbortSignal, but\n * also a cleanup function to stop the timer, which must be called once the\n * calling code is no longer interested in the signal.\n *\n * Ideally, we would simply use AbortSignal.timeout(), but it is not widely\n * available yet.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createDeadlineSignal(timeoutMs) {\n const controller = new AbortController();\n const listener = () => {\n controller.abort(new ConnectError(\"the operation timed out\", Code.DeadlineExceeded));\n };\n let timeoutId;\n if (timeoutMs !== undefined) {\n if (timeoutMs <= 0)\n listener();\n else\n timeoutId = setTimeout(listener, timeoutMs);\n }\n return {\n signal: controller.signal,\n cleanup: () => clearTimeout(timeoutId),\n };\n}\n/**\n * Returns the reason why an AbortSignal was aborted. Returns undefined if the\n * signal has not been aborted.\n *\n * The property AbortSignal.reason is not widely available. This function\n * returns an AbortError if the signal is aborted, but reason is undefined.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function getAbortSignalReason(signal) {\n if (!signal.aborted) {\n return undefined;\n }\n if (signal.reason !== undefined) {\n return signal.reason;\n }\n // AbortSignal.reason is available in Node.js v16, v18, and later,\n // and in all browsers since early 2022.\n const e = new Error(\"This operation was aborted\");\n e.name = \"AbortError\";\n return e;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * createContextValues creates a new ContextValues.\n */\nexport function createContextValues() {\n return {\n get(key) {\n return key.id in this ? this[key.id] : key.defaultValue;\n },\n set(key, value) {\n this[key.id] = value;\n return this;\n },\n delete(key) {\n delete this[key.id];\n return this;\n },\n };\n}\n/**\n * createContextKey creates a new ContextKey.\n */\nexport function createContextKey(defaultValue, options) {\n return { id: Symbol(options === null || options === void 0 ? void 0 : options.description), defaultValue };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Create a URL for the given RPC. This simply adds the qualified\n * service name, a slash, and the method name to the path of the given\n * baseUrl.\n *\n * For example, the baseUri https://example.com and method \"Say\" from\n * the service example.ElizaService results in:\n * https://example.com/example.ElizaService/Say\n *\n * This format is used by the protocols Connect, gRPC and Twirp.\n *\n * Note that this function also accepts a protocol-relative baseUrl.\n * If given an empty string or \"/\" as a baseUrl, it returns just the\n * path.\n */\nexport function createMethodUrl(baseUrl, service, method) {\n const s = typeof service == \"string\" ? service : service.typeName;\n const m = typeof method == \"string\" ? method : method.name;\n return baseUrl.toString().replace(/\\/?$/, `/${s}/${m}`);\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"@bufbuild/protobuf\";\n/**\n * Takes a partial protobuf messages of the\n * specified message type as input, and returns full instances.\n */\nexport function normalize(type, message) {\n return message instanceof type\n ? message\n : new type(message);\n}\n/**\n * Takes an AsyncIterable of partial protobuf messages of the\n * specified message type as input, and yields full instances.\n */\nexport function normalizeIterable(messageType, input) {\n function transform(result) {\n if (result.done === true) {\n return result;\n }\n return {\n done: result.done,\n value: normalize(messageType, result.value),\n };\n }\n return {\n [Symbol.asyncIterator]() {\n const it = input[Symbol.asyncIterator]();\n const res = {\n next: () => it.next().then(transform),\n };\n if (it.throw !== undefined) {\n res.throw = (e) => it.throw(e).then(transform); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n if (it.return !== undefined) {\n res.return = (v) => it.return(v).then(transform); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n return res;\n },\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\nimport { assertReadMaxBytes, assertWriteMaxBytes } from \"./limit-io.js\";\n/**\n * Sets default JSON serialization options for connect-es.\n *\n * With standard protobuf JSON serialization, unknown JSON fields are\n * rejected by default. In connect-es, unknown JSON fields are ignored\n * by default.\n */\nexport function getJsonOptions(options) {\n var _a;\n const o = Object.assign({}, options);\n (_a = o.ignoreUnknownFields) !== null && _a !== void 0 ? _a : (o.ignoreUnknownFields = true);\n return o;\n}\n/**\n * Create an object that provides convenient access to request and response\n * message serialization for a given method.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createMethodSerializationLookup(method, binaryOptions, jsonOptions, limitOptions) {\n const inputBinary = limitSerialization(createBinarySerialization(method.I, binaryOptions), limitOptions);\n const inputJson = limitSerialization(createJsonSerialization(method.I, jsonOptions), limitOptions);\n const outputBinary = limitSerialization(createBinarySerialization(method.O, binaryOptions), limitOptions);\n const outputJson = limitSerialization(createJsonSerialization(method.O, jsonOptions), limitOptions);\n return {\n getI(useBinaryFormat) {\n return useBinaryFormat ? inputBinary : inputJson;\n },\n getO(useBinaryFormat) {\n return useBinaryFormat ? outputBinary : outputJson;\n },\n };\n}\n/**\n * Returns functions to normalize and serialize the input message\n * of an RPC, and to parse the output message of an RPC.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createClientMethodSerializers(method, useBinaryFormat, jsonOptions, binaryOptions) {\n const input = useBinaryFormat\n ? createBinarySerialization(method.I, binaryOptions)\n : createJsonSerialization(method.I, jsonOptions);\n const output = useBinaryFormat\n ? createBinarySerialization(method.O, binaryOptions)\n : createJsonSerialization(method.O, jsonOptions);\n return { parse: output.parse, serialize: input.serialize };\n}\n/**\n * Apply I/O limits to a Serialization object, returning a new object.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function limitSerialization(serialization, limitOptions) {\n return {\n serialize(data) {\n const bytes = serialization.serialize(data);\n assertWriteMaxBytes(limitOptions.writeMaxBytes, bytes.byteLength);\n return bytes;\n },\n parse(data) {\n assertReadMaxBytes(limitOptions.readMaxBytes, data.byteLength, true);\n return serialization.parse(data);\n },\n };\n}\n/**\n * Creates a Serialization object for serializing the given protobuf message\n * with the protobuf binary format.\n */\nexport function createBinarySerialization(messageType, options) {\n return {\n parse(data) {\n try {\n return messageType.fromBinary(data, options);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`parse binary: ${m}`, Code.InvalidArgument);\n }\n },\n serialize(data) {\n try {\n return data.toBinary(options);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`serialize binary: ${m}`, Code.Internal);\n }\n },\n };\n}\n/**\n * Creates a Serialization object for serializing the given protobuf message\n * with the protobuf canonical JSON encoding.\n *\n * By default, unknown fields are ignored.\n */\nexport function createJsonSerialization(messageType, options) {\n var _a, _b;\n const textEncoder = (_a = options === null || options === void 0 ? void 0 : options.textEncoder) !== null && _a !== void 0 ? _a : new TextEncoder();\n const textDecoder = (_b = options === null || options === void 0 ? void 0 : options.textDecoder) !== null && _b !== void 0 ? _b : new TextDecoder();\n const o = getJsonOptions(options);\n return {\n parse(data) {\n try {\n const json = textDecoder.decode(data);\n return messageType.fromJsonString(json, o);\n }\n catch (e) {\n throw ConnectError.from(e, Code.InvalidArgument);\n }\n },\n serialize(data) {\n try {\n const json = data.toJsonString(o);\n return textEncoder.encode(json);\n }\n catch (e) {\n throw ConnectError.from(e, Code.Internal);\n }\n },\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Regular Expression that matches any valid Connect Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeRegExp = /^application\\/(connect\\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;\n/**\n * Regular Expression that matches a Connect unary Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeUnaryRegExp = /^application\\/(?:json(?:; ?charset=utf-?8)?|proto)$/i;\n/**\n * Regular Expression that matches a Connect streaming Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeStreamRegExp = /^application\\/connect\\+?(?:json(?:; ?charset=utf-?8)?|proto)$/i;\nexport const contentTypeUnaryProto = \"application/proto\";\nexport const contentTypeUnaryJson = \"application/json\";\nexport const contentTypeStreamProto = \"application/connect+proto\";\nexport const contentTypeStreamJson = \"application/connect+json\";\nconst encodingProto = \"proto\";\nconst encodingJson = \"json\";\n/**\n * Parse a Connect Content-Type header.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function parseContentType(contentType) {\n const match = contentType === null || contentType === void 0 ? void 0 : contentType.match(contentTypeRegExp);\n if (!match) {\n return undefined;\n }\n const stream = !!match[1];\n const binary = !!match[3];\n return { stream, binary };\n}\n/**\n * Parse a Connect Get encoding query parameter.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function parseEncodingQuery(encoding) {\n switch (encoding) {\n case encodingProto:\n return { stream: false, binary: true };\n case encodingJson:\n return { stream: false, binary: false };\n default:\n return undefined;\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Message, protoBase64 } from \"@bufbuild/protobuf\";\nimport { Code } from \"../code.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { codeFromString, codeToString } from \"./code-string.js\";\n/**\n * Parse a Connect error from a JSON value.\n * Will return a ConnectError, and throw the provided fallback if parsing failed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorFromJson(jsonValue, metadata, fallback) {\n if (metadata) {\n new Headers(metadata).forEach((value, key) => fallback.metadata.append(key, value));\n }\n if (typeof jsonValue !== \"object\" ||\n jsonValue == null ||\n Array.isArray(jsonValue) ||\n !(\"code\" in jsonValue) ||\n typeof jsonValue.code !== \"string\") {\n throw fallback;\n }\n const code = codeFromString(jsonValue.code);\n if (code === undefined) {\n throw fallback;\n }\n const message = jsonValue.message;\n if (message != null && typeof message !== \"string\") {\n throw fallback;\n }\n const error = new ConnectError(message !== null && message !== void 0 ? message : \"\", code, metadata);\n if (\"details\" in jsonValue && Array.isArray(jsonValue.details)) {\n for (const detail of jsonValue.details) {\n if (detail === null ||\n typeof detail != \"object\" ||\n Array.isArray(detail) ||\n typeof detail.type != \"string\" ||\n typeof detail.value != \"string\" ||\n (\"debug\" in detail && typeof detail.debug != \"object\")) {\n throw fallback;\n }\n try {\n error.details.push({\n type: detail.type,\n value: protoBase64.dec(detail.value),\n debug: detail.debug,\n });\n }\n catch (e) {\n throw fallback;\n }\n }\n }\n return error;\n}\n/**\n * Parse a Connect error from a serialized JSON value.\n * Will return a ConnectError, and throw the provided fallback if parsing failed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorFromJsonBytes(bytes, metadata, fallback) {\n let jsonValue;\n try {\n jsonValue = JSON.parse(new TextDecoder().decode(bytes));\n }\n catch (e) {\n throw fallback;\n }\n return errorFromJson(jsonValue, metadata, fallback);\n}\n/**\n * Serialize the given error to JSON.\n *\n * The JSON serialization options are required to produce the optional\n * human-readable representation in the \"debug\" key if the detail uses\n * google.protobuf.Any. If serialization of the \"debug\" value fails, it\n * is silently disregarded.\n *\n * See https://connectrpc.com/docs/protocol#error-end-stream\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorToJson(error, jsonWriteOptions) {\n const o = {\n code: codeToString(error.code),\n };\n if (error.rawMessage.length > 0) {\n o.message = error.rawMessage;\n }\n if (error.details.length > 0) {\n o.details = error.details\n .map((value) => {\n if (value instanceof Message) {\n const i = {\n type: value.getType().typeName,\n value: value.toBinary(),\n };\n try {\n i.debug = value.toJson(jsonWriteOptions);\n }\n catch (e) {\n // We deliberately ignore errors that may occur when serializing\n // a message to JSON (the message contains an Any).\n // The rationale is that we are only trying to provide optional\n // debug information.\n }\n return i;\n }\n return value;\n })\n .map((_a) => {\n var { value } = _a, rest = __rest(_a, [\"value\"]);\n return (Object.assign(Object.assign({}, rest), { value: protoBase64.enc(value) }));\n });\n }\n return o;\n}\n/**\n * Serialize the given error to JSON. This calls errorToJson(), but stringifies\n * the result, and converts it into a UInt8Array.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorToJsonBytes(error, jsonWriteOptions) {\n const textEncoder = new TextEncoder();\n try {\n const jsonObject = errorToJson(error, jsonWriteOptions);\n const jsonString = JSON.stringify(jsonObject);\n return textEncoder.encode(jsonString);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to serialize Connect Error: ${m}`, Code.Internal);\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { errorFromJson, errorToJson } from \"./error-json.js\";\nimport { appendHeaders } from \"../http-headers.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * endStreamFlag indicates that the data in a EnvelopedMessage\n * is a EndStreamResponse of the Connect protocol.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const endStreamFlag = 0b00000010;\n/**\n * Parse an EndStreamResponse of the Connect protocol.\n * Throws a ConnectError on malformed input.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function endStreamFromJson(data) {\n const parseErr = new ConnectError(\"invalid end stream\", Code.InvalidArgument);\n let jsonValue;\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n jsonValue = JSON.parse(typeof data == \"string\" ? data : new TextDecoder().decode(data));\n }\n catch (e) {\n throw parseErr;\n }\n if (typeof jsonValue != \"object\" ||\n jsonValue == null ||\n Array.isArray(jsonValue)) {\n throw parseErr;\n }\n const metadata = new Headers();\n if (\"metadata\" in jsonValue) {\n if (typeof jsonValue.metadata != \"object\" ||\n jsonValue.metadata == null ||\n Array.isArray(jsonValue.metadata)) {\n throw parseErr;\n }\n for (const [key, values] of Object.entries(jsonValue.metadata)) {\n if (!Array.isArray(values) ||\n values.some((value) => typeof value != \"string\")) {\n throw parseErr;\n }\n for (const value of values) {\n metadata.append(key, value);\n }\n }\n }\n const error = \"error\" in jsonValue\n ? errorFromJson(jsonValue.error, metadata, parseErr)\n : undefined;\n return { metadata, error };\n}\n/**\n * Serialize the given EndStreamResponse to JSON.\n *\n * The JSON serialization options are required to produce the optional\n * human-readable representation of error details if the detail uses\n * google.protobuf.Any.\n *\n * See https://connectrpc.com/docs/protocol#error-end-stream\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function endStreamToJson(metadata, error, jsonWriteOptions) {\n const es = {};\n if (error !== undefined) {\n es.error = errorToJson(error, jsonWriteOptions);\n metadata = appendHeaders(metadata, error.metadata);\n }\n let hasMetadata = false;\n const md = {};\n metadata.forEach((value, key) => {\n hasMetadata = true;\n md[key] = [value];\n });\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (hasMetadata) {\n es.metadata = md;\n }\n return es;\n}\n/**\n * Create a Serialization object that serializes a Connect EndStreamResponse.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createEndStreamSerialization(options) {\n const textEncoder = new TextEncoder();\n return {\n serialize(data) {\n try {\n const jsonObject = endStreamToJson(data.metadata, data.error, options);\n const jsonString = JSON.stringify(jsonObject);\n return textEncoder.encode(jsonString);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to serialize EndStreamResponse: ${m}`, Code.Internal);\n }\n },\n parse(data) {\n try {\n return endStreamFromJson(data);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to parse EndStreamResponse: ${m}`, Code.InvalidArgument);\n }\n },\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * @private Internal code, does not follow semantic versioning.\n */\nexport const headerContentType = \"Content-Type\";\nexport const headerUnaryContentLength = \"Content-Length\";\nexport const headerUnaryEncoding = \"Content-Encoding\";\nexport const headerStreamEncoding = \"Connect-Content-Encoding\";\nexport const headerUnaryAcceptEncoding = \"Accept-Encoding\";\nexport const headerStreamAcceptEncoding = \"Connect-Accept-Encoding\";\nexport const headerTimeout = \"Connect-Timeout-Ms\";\nexport const headerProtocolVersion = \"Connect-Protocol-Version\";\nexport const headerUserAgent = \"User-Agent\";\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"../code.js\";\n/**\n * Determine the Connect error code for the given HTTP status code.\n * See https://connectrpc.com/docs/protocol#error-codes\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeFromHttpStatus(httpStatus) {\n switch (httpStatus) {\n case 400: // Bad Request\n return Code.InvalidArgument;\n case 401: // Unauthorized\n return Code.Unauthenticated;\n case 403: // Forbidden\n return Code.PermissionDenied;\n case 404: // Not Found\n return Code.Unimplemented;\n case 408: // Request Timeout\n return Code.DeadlineExceeded;\n case 409: // Conflict\n return Code.Aborted;\n case 412: // Precondition Failed\n return Code.FailedPrecondition;\n case 413: // Payload Too Large\n return Code.ResourceExhausted;\n case 415: // Unsupported Media Type\n return Code.Internal;\n case 429: // Too Many Requests\n return Code.Unavailable;\n case 431: // Request Header Fields Too Large\n return Code.ResourceExhausted;\n case 502: // Bad Gateway\n return Code.Unavailable;\n case 503: // Service Unavailable\n return Code.Unavailable;\n case 504: // Gateway Timeout\n return Code.Unavailable;\n default:\n return Code.Unknown;\n }\n}\n/**\n * Returns a HTTP status code for the given Connect code.\n * See https://connectrpc.com/docs/protocol#error-codes\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeToHttpStatus(code) {\n switch (code) {\n case Code.Canceled:\n return 408; // Request Timeout\n case Code.Unknown:\n return 500; // Internal Server Error\n case Code.InvalidArgument:\n return 400; // Bad Request\n case Code.DeadlineExceeded:\n return 408; // Request Timeout\n case Code.NotFound:\n return 404; // Not Found\n case Code.AlreadyExists:\n return 409; // Conflict\n case Code.PermissionDenied:\n return 403; // Forbidden\n case Code.ResourceExhausted:\n return 429; // Too Many Requests\n case Code.FailedPrecondition:\n return 412; // Precondition Failed\n case Code.Aborted:\n return 409; // Conflict\n case Code.OutOfRange:\n return 400; // Bad Request\n case Code.Unimplemented:\n return 404; // Not Found\n case Code.Internal:\n return 500; // Internal Server Error\n case Code.Unavailable:\n return 503; // Service Unavailable\n case Code.DataLoss:\n return 500; // Internal Server Error\n case Code.Unauthenticated:\n return 401; // Unauthorized\n default:\n return 500; // same as CodeUnknown\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * In unary RPCs, Connect transports trailing metadata as response header\n * fields, prefixed with \"trailer-\".\n *\n * This function demuxes headers and trailers into two separate Headers\n * objects.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function trailerDemux(header) {\n const h = new Headers(), t = new Headers();\n header.forEach((value, key) => {\n if (key.toLowerCase().startsWith(\"trailer-\")) {\n t.set(key.substring(8), value);\n }\n else {\n h.set(key, value);\n }\n });\n return [h, t];\n}\n/**\n * In unary RPCs, Connect transports trailing metadata as response header\n * fields, prefixed with \"trailer-\".\n *\n * This function muxes a header and a trailer into a single Headers object.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function trailerMux(header, trailer) {\n const h = new Headers(header);\n trailer.forEach((value, key) => {\n h.set(`trailer-${key}`, value);\n });\n return h;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { headerProtocolVersion } from \"./headers.js\";\nimport { paramConnectVersion } from \"./query-params.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * The only know value for the header Connect-Protocol-Version.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const protocolVersion = \"1\";\n/**\n * Requires the Connect-Protocol-Version header to be present with the expected\n * value. Raises a ConnectError with Code.InvalidArgument otherwise.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requireProtocolVersionHeader(requestHeader) {\n const v = requestHeader.get(headerProtocolVersion);\n if (v === null) {\n throw new ConnectError(`missing required header: set ${headerProtocolVersion} to \"${protocolVersion}\"`, Code.InvalidArgument);\n }\n else if (v !== protocolVersion) {\n throw new ConnectError(`${headerProtocolVersion} must be \"${protocolVersion}\": got \"${v}\"`, Code.InvalidArgument);\n }\n}\n/**\n * Requires the connect query parameter to be present with the expected value.\n * Raises a ConnectError with Code.InvalidArgument otherwise.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requireProtocolVersionParam(queryParams) {\n const v = queryParams.get(paramConnectVersion);\n if (v === null) {\n throw new ConnectError(`missing required parameter: set ${paramConnectVersion} to \"v${protocolVersion}\"`, Code.InvalidArgument);\n }\n else if (v !== `v${protocolVersion}`) {\n throw new ConnectError(`${paramConnectVersion} must be \"v${protocolVersion}\": got \"${v}\"`, Code.InvalidArgument);\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { MethodKind } from \"@bufbuild/protobuf\";\nimport { headerContentType, headerStreamAcceptEncoding, headerStreamEncoding, headerUnaryAcceptEncoding, headerUnaryEncoding, headerTimeout, headerProtocolVersion, headerUserAgent, } from \"./headers.js\";\nimport { protocolVersion } from \"./version.js\";\nimport { contentTypeStreamJson, contentTypeStreamProto, contentTypeUnaryJson, contentTypeUnaryProto, } from \"./content-type.js\";\n/**\n * Creates headers for a Connect request.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requestHeader(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent) {\n const result = new Headers(userProvidedHeaders !== null && userProvidedHeaders !== void 0 ? userProvidedHeaders : {});\n if (timeoutMs !== undefined) {\n result.set(headerTimeout, `${timeoutMs}`);\n }\n result.set(headerContentType, methodKind == MethodKind.Unary\n ? useBinaryFormat\n ? contentTypeUnaryProto\n : contentTypeUnaryJson\n : useBinaryFormat\n ? contentTypeStreamProto\n : contentTypeStreamJson);\n result.set(headerProtocolVersion, protocolVersion);\n if (setUserAgent) {\n result.set(headerUserAgent, \"connect-es/1.3.0\");\n }\n return result;\n}\n/**\n * Creates headers for a Connect request with compression.\n *\n * Note that we always set the Content-Encoding header for unary methods.\n * It is up to the caller to decide whether to apply compression - and remove\n * the header if compression is not used, for example because the payload is\n * too small to make compression effective.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requestHeaderWithCompression(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, acceptCompression, sendCompression, setUserAgent) {\n const result = requestHeader(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent);\n if (sendCompression != null) {\n const name = methodKind == MethodKind.Unary\n ? headerUnaryEncoding\n : headerStreamEncoding;\n result.set(name, sendCompression.name);\n }\n if (acceptCompression.length > 0) {\n const name = methodKind == MethodKind.Unary\n ? headerUnaryAcceptEncoding\n : headerStreamAcceptEncoding;\n result.set(name, acceptCompression.map((c) => c.name).join(\",\"));\n }\n return result;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { MethodKind } from \"@bufbuild/protobuf\";\nimport { Code } from \"../code.js\";\nimport { codeFromHttpStatus } from \"./http-status.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { parseContentType } from \"./content-type.js\";\nimport { headerStreamEncoding, headerUnaryEncoding } from \"./headers.js\";\n/**\n * Validates response status and header for the Connect protocol.\n * Throws a ConnectError if the header indicates an error, or if\n * the content type is unexpected, with the following exception:\n * For unary RPCs with an HTTP error status, this returns an error\n * derived from the HTTP status instead of throwing it, giving an\n * implementation a chance to parse a Connect error from the wire.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function validateResponse(methodKind, status, headers) {\n const mimeType = headers.get(\"Content-Type\");\n const parsedType = parseContentType(mimeType);\n if (status !== 200) {\n const errorFromStatus = new ConnectError(`HTTP ${status}`, codeFromHttpStatus(status), headers);\n // If parsedType is defined and it is not binary, then this is a unary JSON response\n if (methodKind == MethodKind.Unary && parsedType && !parsedType.binary) {\n return { isUnaryError: true, unaryError: errorFromStatus };\n }\n throw errorFromStatus;\n }\n return { isUnaryError: false };\n}\n/**\n * Validates response status and header for the Connect protocol.\n * This function is identical to validateResponse(), but also verifies\n * that a given encoding header is acceptable.\n *\n * @private\n */\nexport function validateResponseWithCompression(methodKind, acceptCompression, status, headers) {\n let compression;\n const encoding = headers.get(methodKind == MethodKind.Unary ? headerUnaryEncoding : headerStreamEncoding);\n if (encoding != null && encoding.toLowerCase() !== \"identity\") {\n compression = acceptCompression.find((c) => c.name === encoding);\n if (!compression) {\n throw new ConnectError(`unsupported response encoding \"${encoding}\"`, Code.InvalidArgument, headers);\n }\n }\n return Object.assign({ compression }, validateResponse(methodKind, status, headers));\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message, protoBase64 } from \"@bufbuild/protobuf\";\nimport { headerContentType, headerProtocolVersion, headerUnaryAcceptEncoding, headerUnaryContentLength, headerUnaryEncoding, } from \"./headers.js\";\nimport { protocolVersion } from \"./version.js\";\nconst contentTypePrefix = \"application/\";\nfunction encodeMessageForUrl(message, useBase64) {\n if (useBase64) {\n // TODO(jchadwick-buf): Three regex replaces seems excessive.\n // Can we make protoBase64.enc more flexible?\n return protoBase64\n .enc(message)\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\");\n }\n else {\n return encodeURIComponent(new TextDecoder().decode(message));\n }\n}\n/**\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformConnectPostToGetRequest(request, message, useBase64) {\n let query = `?connect=v${protocolVersion}`;\n const contentType = request.header.get(headerContentType);\n if ((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(contentTypePrefix)) === 0) {\n query +=\n \"&encoding=\" +\n encodeURIComponent(contentType.slice(contentTypePrefix.length));\n }\n const compression = request.header.get(headerUnaryEncoding);\n if (compression !== null && compression !== \"identity\") {\n query += \"&compression=\" + encodeURIComponent(compression);\n // Force base64 for compressed payloads.\n useBase64 = true;\n }\n if (useBase64) {\n query += \"&base64=1\";\n }\n query += \"&message=\" + encodeMessageForUrl(message, useBase64);\n const url = request.url + query;\n // Omit headers that are not used for unary GET requests.\n const header = new Headers(request.header);\n [\n headerProtocolVersion,\n headerContentType,\n headerUnaryContentLength,\n headerUnaryEncoding,\n headerUnaryAcceptEncoding,\n ].forEach((h) => header.delete(h));\n return Object.assign(Object.assign({}, request), { init: Object.assign(Object.assign({}, request.init), { method: \"GET\" }), url,\n header });\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { createDeadlineSignal, createLinkedAbortController, getAbortSignalReason, } from \"./signals.js\";\nimport { normalize, normalizeIterable } from \"./normalize.js\";\n/**\n * Runs a unary method with the given interceptors. Note that this function\n * is only used when implementing a Transport.\n */\nexport function runUnaryCall(opt) {\n const next = applyInterceptors(opt.next, opt.interceptors);\n const [signal, abort, done] = setupSignal(opt);\n const req = Object.assign(Object.assign({}, opt.req), { message: normalize(opt.req.method.I, opt.req.message), signal });\n return next(req).then((res) => {\n done();\n return res;\n }, abort);\n}\n/**\n * Runs a server-streaming method with the given interceptors. Note that this\n * function is only used when implementing a Transport.\n */\nexport function runStreamingCall(opt) {\n const next = applyInterceptors(opt.next, opt.interceptors);\n const [signal, abort, done] = setupSignal(opt);\n const req = Object.assign(Object.assign({}, opt.req), { message: normalizeIterable(opt.req.method.I, opt.req.message), signal });\n let doneCalled = false;\n // Call return on the request iterable to indicate\n // that we will no longer consume it and it should\n // cleanup any allocated resources.\n signal.addEventListener(\"abort\", function () {\n var _a, _b;\n const it = opt.req.message[Symbol.asyncIterator]();\n // If the signal is aborted due to an error, we want to throw\n // the error to the request iterator.\n if (!doneCalled) {\n (_a = it.throw) === null || _a === void 0 ? void 0 : _a.call(it, this.reason).catch(() => {\n // throw returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n }\n (_b = it.return) === null || _b === void 0 ? void 0 : _b.call(it).catch(() => {\n // return returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n });\n return next(req).then((res) => {\n return Object.assign(Object.assign({}, res), { message: {\n [Symbol.asyncIterator]() {\n const it = res.message[Symbol.asyncIterator]();\n return {\n next() {\n return it.next().then((r) => {\n if (r.done == true) {\n doneCalled = true;\n done();\n }\n return r;\n }, abort);\n },\n // We deliberately omit throw/return.\n };\n },\n } });\n }, abort);\n}\n/**\n * Create an AbortSignal for Transport implementations. The signal is available\n * in UnaryRequest and StreamingRequest, and is triggered when the call is\n * aborted (via a timeout or explicit cancellation), errored (e.g. when reading\n * an error from the server from the wire), or finished successfully.\n *\n * Transport implementations can pass the signal to HTTP clients to ensure that\n * there are no unused connections leak.\n *\n * Returns a tuple:\n * [0]: The signal, which is also aborted if the optional deadline is reached.\n * [1]: Function to call if the Transport encountered an error.\n * [2]: Function to call if the Transport finished without an error.\n */\nfunction setupSignal(opt) {\n const { signal, cleanup } = createDeadlineSignal(opt.timeoutMs);\n const controller = createLinkedAbortController(opt.signal, signal);\n return [\n controller.signal,\n function abort(reason) {\n // We peek at the deadline signal because fetch() will throw an error on\n // abort that discards the signal reason.\n const e = ConnectError.from(signal.aborted ? getAbortSignalReason(signal) : reason);\n controller.abort(e);\n cleanup();\n return Promise.reject(e);\n },\n function done() {\n cleanup();\n controller.abort();\n },\n ];\n}\n/**\n * applyInterceptors takes the given UnaryFn or ServerStreamingFn, and wraps\n * it with each of the given interceptors, returning a new UnaryFn or\n * ServerStreamingFn.\n */\nfunction applyInterceptors(next, interceptors) {\n var _a;\n return ((_a = interceptors === null || interceptors === void 0 ? void 0 : interceptors.concat().reverse().reduce(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n (n, i) => i(n), next)) !== null && _a !== void 0 ? _a : next);\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Asserts that the fetch API is available.\n */\nexport function assertFetchApi() {\n try {\n new Headers();\n }\n catch (_) {\n throw new Error(\"connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.\");\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { Message, MethodIdempotency, MethodKind } from \"@bufbuild/protobuf\";\nimport { appendHeaders, createContextValues } from \"@connectrpc/connect\";\nimport { createClientMethodSerializers, createEnvelopeReadableStream, createMethodUrl, getJsonOptions, encodeEnvelope, runStreamingCall, runUnaryCall, } from \"@connectrpc/connect/protocol\";\nimport { endStreamFlag, endStreamFromJson, errorFromJson, requestHeader, trailerDemux, transformConnectPostToGetRequest, validateResponse, } from \"@connectrpc/connect/protocol-connect\";\nimport { assertFetchApi } from \"./assert-fetch-api.js\";\n/**\n * Create a Transport for the Connect protocol, which makes unary and\n * server-streaming methods available to web browsers. It uses the fetch\n * API to make HTTP requests.\n */\nexport function createConnectTransport(options) {\n var _a;\n assertFetchApi();\n const useBinaryFormat = (_a = options.useBinaryFormat) !== null && _a !== void 0 ? _a : false;\n return {\n async unary(service, method, signal, timeoutMs, header, message, contextValues) {\n var _a;\n const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);\n timeoutMs =\n timeoutMs === undefined\n ? options.defaultTimeoutMs\n : timeoutMs <= 0\n ? undefined\n : timeoutMs;\n return await runUnaryCall({\n interceptors: options.interceptors,\n signal,\n timeoutMs,\n req: {\n stream: false,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: \"POST\",\n credentials: (_a = options.credentials) !== null && _a !== void 0 ? _a : \"same-origin\",\n redirect: \"error\",\n mode: \"cors\",\n },\n header: requestHeader(method.kind, useBinaryFormat, timeoutMs, header, false),\n contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),\n message,\n },\n next: async (req) => {\n var _a;\n const useGet = options.useHttpGet === true &&\n method.idempotency === MethodIdempotency.NoSideEffects;\n let body = null;\n if (useGet) {\n req = transformConnectPostToGetRequest(req, serialize(req.message), useBinaryFormat);\n }\n else {\n body = serialize(req.message);\n }\n const fetch = (_a = options.fetch) !== null && _a !== void 0 ? _a : globalThis.fetch;\n const response = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body }));\n const { isUnaryError, unaryError } = validateResponse(method.kind, response.status, response.headers);\n if (isUnaryError) {\n throw errorFromJson((await response.json()), appendHeaders(...trailerDemux(response.headers)), unaryError);\n }\n const [demuxedHeader, demuxedTrailer] = trailerDemux(response.headers);\n return {\n stream: false,\n service,\n method,\n header: demuxedHeader,\n message: useBinaryFormat\n ? parse(new Uint8Array(await response.arrayBuffer()))\n : method.O.fromJson((await response.json()), getJsonOptions(options.jsonOptions)),\n trailer: demuxedTrailer,\n };\n },\n });\n },\n async stream(service, method, signal, timeoutMs, header, input, contextValues) {\n var _a;\n const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);\n function parseResponseBody(body, trailerTarget, header) {\n return __asyncGenerator(this, arguments, function* parseResponseBody_1() {\n const reader = createEnvelopeReadableStream(body).getReader();\n let endStreamReceived = false;\n for (;;) {\n const result = yield __await(reader.read());\n if (result.done) {\n break;\n }\n const { flags, data } = result.value;\n if ((flags & endStreamFlag) === endStreamFlag) {\n endStreamReceived = true;\n const endStream = endStreamFromJson(data);\n if (endStream.error) {\n const error = endStream.error;\n header.forEach((value, key) => {\n error.metadata.append(key, value);\n });\n throw error;\n }\n endStream.metadata.forEach((value, key) => trailerTarget.set(key, value));\n continue;\n }\n yield yield __await(parse(data));\n }\n if (!endStreamReceived) {\n throw \"missing EndStreamResponse\";\n }\n });\n }\n async function createRequestBody(input) {\n if (method.kind != MethodKind.ServerStreaming) {\n throw \"The fetch API does not support streaming request bodies\";\n }\n const r = await input[Symbol.asyncIterator]().next();\n if (r.done == true) {\n throw \"missing request message\";\n }\n return encodeEnvelope(0, serialize(r.value));\n }\n timeoutMs =\n timeoutMs === undefined\n ? options.defaultTimeoutMs\n : timeoutMs <= 0\n ? undefined\n : timeoutMs;\n return await runStreamingCall({\n interceptors: options.interceptors,\n timeoutMs,\n signal,\n req: {\n stream: true,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: \"POST\",\n credentials: (_a = options.credentials) !== null && _a !== void 0 ? _a : \"same-origin\",\n redirect: \"error\",\n mode: \"cors\",\n },\n header: requestHeader(method.kind, useBinaryFormat, timeoutMs, header, false),\n contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),\n message: input,\n },\n next: async (req) => {\n var _a;\n const fetch = (_a = options.fetch) !== null && _a !== void 0 ? _a : globalThis.fetch;\n const fRes = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body: await createRequestBody(req.message) }));\n validateResponse(method.kind, fRes.status, fRes.headers);\n if (fRes.body === null) {\n throw \"missing response body\";\n }\n const trailer = new Headers();\n const res = Object.assign(Object.assign({}, req), { header: fRes.headers, trailer, message: parseResponseBody(fRes.body, trailer, fRes.headers) });\n return res;\n },\n });\n },\n };\n}\n", "import { ProtoflowService } from \"@/rpc/protoflow_connect\";\nimport { ContentService } from \"@/rpc/content/content_connect\";\nimport { UserService } from \"@/rpc/user/user_connect\";\nimport {ChatService} from \"@/rpc/chat/chat_connect\";\nimport {EventService} from \"@/rpc/event/event_connect\";\nimport {createConnectTransport} from \"@connectrpc/connect-web\";\nimport {createPromiseClient} from \"@connectrpc/connect\";\n\nexport const baseURL = process.env.BASE_URL;\n\nexport const transport = createConnectTransport({\n baseUrl: `${baseURL}/api` || 'error',\n // credentials: \"include\",\n});\n\nexport const projectService = createPromiseClient(ProtoflowService, transport);\nexport const contentService = createPromiseClient(ContentService, transport);\nexport const userService = createPromiseClient(UserService, transport);\nexport const chatService = createPromiseClient(ChatService, transport);\nexport const eventService = createPromiseClient(EventService, transport);", "import {Content, Data, Post,} from \"@/rpc/content/content_pb\";\n\nconst ITEMS_PER_PAGE = 100; // Adjust as required\n\nexport function siteContent(): Content {\n return new Content({\n tags: [],\n type: {\n case: 'site',\n value: {\n sections: [],\n }\n }\n });\n}\n\nexport function postContent(text: string): Content {\n return new Content({\n tags: [],\n type: {\n case: 'post',\n value: new Post({\n content: text,\n })\n }\n });\n}\n\nexport function textContent(text: string, tags: string[]): Content {\n return new Content({\n tags: tags,\n type: {\n case: 'data',\n value: new Data({\n type: {\n case: 'text',\n value: {\n data: text,\n }\n }\n })\n }\n })\n}\n\nexport function uuidv4(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 | 0,\n v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n}\n\nexport function urlContent(url: string, tags: string[]): Content {\n return new Content({\n id: uuidv4(),\n tags: tags,\n type: {\n case: 'data',\n value: new Data({\n type: {\n case: 'url',\n value: {\n url,\n }\n }\n })\n }\n })\n}\n\nexport function getHistoryPage(page: number, callback: (results: chrome.history.HistoryItem[]) => void): void {\n if (!chrome.history) {\n console.error(\"Chrome History API is not available\");\n return;\n }\n\n let endTime = Date.now(); // Default for first page\n let startTime = endTime - (ITEMS_PER_PAGE * 24 * 60 * 60 * 1000); // A rough estimate\n\n // If it's not the first page, adjust the endTime and startTime based on previous results\n if (page > 1) {\n chrome.history.search({\n text: '',\n startTime: 0,\n endTime: Date.now(),\n maxResults: (page - 1) * ITEMS_PER_PAGE\n }, (previousResults) => {\n const oldestItem = previousResults[previousResults.length - 1];\n if (!oldestItem.lastVisitTime) {\n return;\n }\n endTime = oldestItem.lastVisitTime;\n startTime = endTime - (ITEMS_PER_PAGE * 24 * 60 * 60 * 1000); // Adjust based on your needs\n\n fetchHistory(startTime, endTime, callback);\n });\n } else {\n fetchHistory(startTime, endTime, callback);\n }\n}\n\nfunction fetchHistory(startTime: number, endTime: number, callback: (results: chrome.history.HistoryItem[]) => void): void {\n chrome.history.search({\n text: '',\n startTime: startTime,\n endTime: endTime,\n maxResults: ITEMS_PER_PAGE\n }, (results) => {\n callback(results);\n });\n}\n", "let keyCount = 0;\nfunction atom(read, write) {\n const key = `atom${++keyCount}`;\n const config = {\n toString: () => key\n };\n if (typeof read === \"function\") {\n config.read = read;\n } else {\n config.init = read;\n config.read = function(get) {\n return get(this);\n };\n config.write = function(get, set, arg) {\n return set(\n this,\n typeof arg === \"function\" ? arg(get(this)) : arg\n );\n };\n }\n if (write) {\n config.write = write;\n }\n return config;\n}\n\nconst hasInitialValue = (atom) => \"init\" in atom;\nconst isActuallyWritableAtom = (atom) => !!atom.write;\nconst cancelPromiseMap = /* @__PURE__ */ new WeakMap();\nconst registerCancelPromise = (promise, cancel) => {\n cancelPromiseMap.set(promise, cancel);\n promise.catch(() => {\n }).finally(() => cancelPromiseMap.delete(promise));\n};\nconst cancelPromise = (promise, next) => {\n const cancel = cancelPromiseMap.get(promise);\n if (cancel) {\n cancelPromiseMap.delete(promise);\n cancel(next);\n }\n};\nconst resolvePromise = (promise, value) => {\n promise.status = \"fulfilled\";\n promise.value = value;\n};\nconst rejectPromise = (promise, e) => {\n promise.status = \"rejected\";\n promise.reason = e;\n};\nconst isPromiseLike = (x) => typeof (x == null ? void 0 : x.then) === \"function\";\nconst isEqualAtomValue = (a, b) => !!a && \"v\" in a && \"v\" in b && Object.is(a.v, b.v);\nconst isEqualAtomError = (a, b) => !!a && \"e\" in a && \"e\" in b && Object.is(a.e, b.e);\nconst hasPromiseAtomValue = (a) => !!a && \"v\" in a && a.v instanceof Promise;\nconst isEqualPromiseAtomValue = (a, b) => \"v\" in a && \"v\" in b && a.v.orig && a.v.orig === b.v.orig;\nconst returnAtomValue = (atomState) => {\n if (\"e\" in atomState) {\n throw atomState.e;\n }\n return atomState.v;\n};\nconst createStore = () => {\n const atomStateMap = /* @__PURE__ */ new WeakMap();\n const mountedMap = /* @__PURE__ */ new WeakMap();\n const pendingMap = /* @__PURE__ */ new Map();\n let storeListenersRev2;\n let mountedAtoms;\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n storeListenersRev2 = /* @__PURE__ */ new Set();\n mountedAtoms = /* @__PURE__ */ new Set();\n }\n const getAtomState = (atom) => atomStateMap.get(atom);\n const setAtomState = (atom, atomState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n Object.freeze(atomState);\n }\n const prevAtomState = atomStateMap.get(atom);\n atomStateMap.set(atom, atomState);\n if (!pendingMap.has(atom)) {\n pendingMap.set(atom, prevAtomState);\n }\n if (hasPromiseAtomValue(prevAtomState)) {\n const next = \"v\" in atomState ? atomState.v instanceof Promise ? atomState.v : Promise.resolve(atomState.v) : Promise.reject(atomState.e);\n if (prevAtomState.v !== next) {\n cancelPromise(prevAtomState.v, next);\n }\n }\n };\n const updateDependencies = (atom, nextAtomState, nextDependencies) => {\n const dependencies = /* @__PURE__ */ new Map();\n let changed = false;\n nextDependencies.forEach((aState, a) => {\n if (!aState && a === atom) {\n aState = nextAtomState;\n }\n if (aState) {\n dependencies.set(a, aState);\n if (nextAtomState.d.get(a) !== aState) {\n changed = true;\n }\n } else if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\"[Bug] atom state not found\");\n }\n });\n if (changed || nextAtomState.d.size !== dependencies.size) {\n nextAtomState.d = dependencies;\n }\n };\n const setAtomValue = (atom, value, nextDependencies) => {\n const prevAtomState = getAtomState(atom);\n const nextAtomState = {\n d: (prevAtomState == null ? void 0 : prevAtomState.d) || /* @__PURE__ */ new Map(),\n v: value\n };\n if (nextDependencies) {\n updateDependencies(atom, nextAtomState, nextDependencies);\n }\n if (isEqualAtomValue(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n }\n if (hasPromiseAtomValue(prevAtomState) && hasPromiseAtomValue(nextAtomState) && isEqualPromiseAtomValue(prevAtomState, nextAtomState)) {\n if (prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n } else {\n nextAtomState.v = prevAtomState.v;\n }\n }\n setAtomState(atom, nextAtomState);\n return nextAtomState;\n };\n const setAtomValueOrPromise = (atom, valueOrPromise, nextDependencies, abortPromise) => {\n if (isPromiseLike(valueOrPromise)) {\n let continuePromise;\n const updatePromiseDependencies = () => {\n const prevAtomState = getAtomState(atom);\n if (!hasPromiseAtomValue(prevAtomState) || prevAtomState.v !== promise) {\n return;\n }\n const nextAtomState = setAtomValue(\n atom,\n promise,\n nextDependencies\n );\n if (mountedMap.has(atom) && prevAtomState.d !== nextAtomState.d) {\n mountDependencies(atom, nextAtomState, prevAtomState.d);\n }\n };\n const promise = new Promise((resolve, reject) => {\n let settled = false;\n valueOrPromise.then(\n (v) => {\n if (!settled) {\n settled = true;\n resolvePromise(promise, v);\n resolve(v);\n updatePromiseDependencies();\n }\n },\n (e) => {\n if (!settled) {\n settled = true;\n rejectPromise(promise, e);\n reject(e);\n updatePromiseDependencies();\n }\n }\n );\n continuePromise = (next) => {\n if (!settled) {\n settled = true;\n next.then(\n (v) => resolvePromise(promise, v),\n (e) => rejectPromise(promise, e)\n );\n resolve(next);\n }\n };\n });\n promise.orig = valueOrPromise;\n promise.status = \"pending\";\n registerCancelPromise(promise, (next) => {\n if (next) {\n continuePromise(next);\n }\n abortPromise == null ? void 0 : abortPromise();\n });\n return setAtomValue(atom, promise, nextDependencies);\n }\n return setAtomValue(atom, valueOrPromise, nextDependencies);\n };\n const setAtomError = (atom, error, nextDependencies) => {\n const prevAtomState = getAtomState(atom);\n const nextAtomState = {\n d: (prevAtomState == null ? void 0 : prevAtomState.d) || /* @__PURE__ */ new Map(),\n e: error\n };\n if (nextDependencies) {\n updateDependencies(atom, nextAtomState, nextDependencies);\n }\n if (isEqualAtomError(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n }\n setAtomState(atom, nextAtomState);\n return nextAtomState;\n };\n const readAtomState = (atom, force) => {\n const atomState = getAtomState(atom);\n if (!force && atomState) {\n if (mountedMap.has(atom)) {\n return atomState;\n }\n if (Array.from(atomState.d).every(([a, s]) => {\n if (a === atom) {\n return true;\n }\n const aState = readAtomState(a);\n return aState === s || isEqualAtomValue(aState, s);\n })) {\n return atomState;\n }\n }\n const nextDependencies = /* @__PURE__ */ new Map();\n let isSync = true;\n const getter = (a) => {\n if (a === atom) {\n const aState2 = getAtomState(a);\n if (aState2) {\n nextDependencies.set(a, aState2);\n return returnAtomValue(aState2);\n }\n if (hasInitialValue(a)) {\n nextDependencies.set(a, void 0);\n return a.init;\n }\n throw new Error(\"no atom init\");\n }\n const aState = readAtomState(a);\n nextDependencies.set(a, aState);\n return returnAtomValue(aState);\n };\n let controller;\n let setSelf;\n const options = {\n get signal() {\n if (!controller) {\n controller = new AbortController();\n }\n return controller.signal;\n },\n get setSelf() {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !isActuallyWritableAtom(atom)) {\n console.warn(\"setSelf function cannot be used with read-only atom\");\n }\n if (!setSelf && isActuallyWritableAtom(atom)) {\n setSelf = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && isSync) {\n console.warn(\"setSelf function cannot be called in sync\");\n }\n if (!isSync) {\n return writeAtom(atom, ...args);\n }\n };\n }\n return setSelf;\n }\n };\n try {\n const valueOrPromise = atom.read(getter, options);\n return setAtomValueOrPromise(\n atom,\n valueOrPromise,\n nextDependencies,\n () => controller == null ? void 0 : controller.abort()\n );\n } catch (error) {\n return setAtomError(atom, error, nextDependencies);\n } finally {\n isSync = false;\n }\n };\n const readAtom = (atom) => returnAtomValue(readAtomState(atom));\n const addAtom = (atom) => {\n let mounted = mountedMap.get(atom);\n if (!mounted) {\n mounted = mountAtom(atom);\n }\n return mounted;\n };\n const canUnmountAtom = (atom, mounted) => !mounted.l.size && (!mounted.t.size || mounted.t.size === 1 && mounted.t.has(atom));\n const delAtom = (atom) => {\n const mounted = mountedMap.get(atom);\n if (mounted && canUnmountAtom(atom, mounted)) {\n unmountAtom(atom);\n }\n };\n const recomputeDependents = (atom) => {\n const dependencyMap = /* @__PURE__ */ new Map();\n const dirtyMap = /* @__PURE__ */ new WeakMap();\n const getDependents = (a) => {\n var _a;\n const dependents = new Set((_a = mountedMap.get(a)) == null ? void 0 : _a.t);\n pendingMap.forEach((_, pendingAtom) => {\n var _a2;\n if ((_a2 = getAtomState(pendingAtom)) == null ? void 0 : _a2.d.has(a)) {\n dependents.add(pendingAtom);\n }\n });\n return dependents;\n };\n const loop1 = (a) => {\n getDependents(a).forEach((dependent) => {\n if (dependent !== a) {\n dependencyMap.set(\n dependent,\n (dependencyMap.get(dependent) || /* @__PURE__ */ new Set()).add(a)\n );\n dirtyMap.set(dependent, (dirtyMap.get(dependent) || 0) + 1);\n loop1(dependent);\n }\n });\n };\n loop1(atom);\n const loop2 = (a) => {\n getDependents(a).forEach((dependent) => {\n var _a;\n if (dependent !== a) {\n let dirtyCount = dirtyMap.get(dependent);\n if (dirtyCount) {\n dirtyMap.set(dependent, --dirtyCount);\n }\n if (!dirtyCount) {\n let isChanged = !!((_a = dependencyMap.get(dependent)) == null ? void 0 : _a.size);\n if (isChanged) {\n const prevAtomState = getAtomState(dependent);\n const nextAtomState = readAtomState(dependent, true);\n isChanged = !isEqualAtomValue(prevAtomState, nextAtomState);\n }\n if (!isChanged) {\n dependencyMap.forEach((s) => s.delete(dependent));\n }\n }\n loop2(dependent);\n }\n });\n };\n loop2(atom);\n };\n const writeAtomState = (atom, ...args) => {\n let isSync = true;\n const getter = (a) => returnAtomValue(readAtomState(a));\n const setter = (a, ...args2) => {\n let r;\n if (a === atom) {\n if (!hasInitialValue(a)) {\n throw new Error(\"atom not writable\");\n }\n const prevAtomState = getAtomState(a);\n const nextAtomState = setAtomValueOrPromise(a, args2[0]);\n if (!isEqualAtomValue(prevAtomState, nextAtomState)) {\n recomputeDependents(a);\n }\n } else {\n r = writeAtomState(a, ...args2);\n }\n if (!isSync) {\n const flushed = flushPending();\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n storeListenersRev2.forEach(\n (l) => l({ type: \"async-write\", flushed })\n );\n }\n }\n return r;\n };\n const result = atom.write(getter, setter, ...args);\n isSync = false;\n return result;\n };\n const writeAtom = (atom, ...args) => {\n const result = writeAtomState(atom, ...args);\n const flushed = flushPending();\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n storeListenersRev2.forEach(\n (l) => l({ type: \"write\", flushed })\n );\n }\n return result;\n };\n const mountAtom = (atom, initialDependent, onMountQueue) => {\n var _a;\n const queue = onMountQueue || [];\n (_a = getAtomState(atom)) == null ? void 0 : _a.d.forEach((_, a) => {\n const aMounted = mountedMap.get(a);\n if (aMounted) {\n aMounted.t.add(atom);\n } else {\n if (a !== atom) {\n mountAtom(a, atom, queue);\n }\n }\n });\n readAtomState(atom);\n const mounted = {\n t: new Set(initialDependent && [initialDependent]),\n l: /* @__PURE__ */ new Set()\n };\n mountedMap.set(atom, mounted);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n mountedAtoms.add(atom);\n }\n if (isActuallyWritableAtom(atom) && atom.onMount) {\n const { onMount } = atom;\n queue.push(() => {\n const onUnmount = onMount((...args) => writeAtom(atom, ...args));\n if (onUnmount) {\n mounted.u = onUnmount;\n }\n });\n }\n if (!onMountQueue) {\n queue.forEach((f) => f());\n }\n return mounted;\n };\n const unmountAtom = (atom) => {\n var _a;\n const onUnmount = (_a = mountedMap.get(atom)) == null ? void 0 : _a.u;\n if (onUnmount) {\n onUnmount();\n }\n mountedMap.delete(atom);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n mountedAtoms.delete(atom);\n }\n const atomState = getAtomState(atom);\n if (atomState) {\n if (hasPromiseAtomValue(atomState)) {\n cancelPromise(atomState.v);\n }\n atomState.d.forEach((_, a) => {\n if (a !== atom) {\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n }\n });\n } else if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\"[Bug] could not find atom state to unmount\", atom);\n }\n };\n const mountDependencies = (atom, atomState, prevDependencies) => {\n const depSet = new Set(atomState.d.keys());\n prevDependencies == null ? void 0 : prevDependencies.forEach((_, a) => {\n if (depSet.has(a)) {\n depSet.delete(a);\n return;\n }\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n });\n depSet.forEach((a) => {\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.add(atom);\n } else if (mountedMap.has(atom)) {\n mountAtom(a, atom);\n }\n });\n };\n const flushPending = () => {\n let flushed;\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n flushed = /* @__PURE__ */ new Set();\n }\n while (pendingMap.size) {\n const pending = Array.from(pendingMap);\n pendingMap.clear();\n pending.forEach(([atom, prevAtomState]) => {\n const atomState = getAtomState(atom);\n if (atomState) {\n const mounted = mountedMap.get(atom);\n if (mounted && atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {\n mountDependencies(atom, atomState, prevAtomState == null ? void 0 : prevAtomState.d);\n }\n if (mounted && !// TODO This seems pretty hacky. Hope to fix it.\n // Maybe we could `mountDependencies` in `setAtomState`?\n (!hasPromiseAtomValue(prevAtomState) && (isEqualAtomValue(prevAtomState, atomState) || isEqualAtomError(prevAtomState, atomState)))) {\n mounted.l.forEach((listener) => listener());\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n flushed.add(atom);\n }\n }\n } else if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\"[Bug] no atom state to flush\");\n }\n });\n }\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n return flushed;\n }\n };\n const subscribeAtom = (atom, listener) => {\n const mounted = addAtom(atom);\n const flushed = flushPending();\n const listeners = mounted.l;\n listeners.add(listener);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n storeListenersRev2.forEach(\n (l) => l({ type: \"sub\", flushed })\n );\n }\n return () => {\n listeners.delete(listener);\n delAtom(atom);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n storeListenersRev2.forEach((l) => l({ type: \"unsub\" }));\n }\n };\n };\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n return {\n get: readAtom,\n set: writeAtom,\n sub: subscribeAtom,\n // store dev methods (these are tentative and subject to change without notice)\n dev_subscribe_store: (l, rev) => {\n if (rev !== 2) {\n throw new Error(\"The current StoreListener revision is 2.\");\n }\n storeListenersRev2.add(l);\n return () => {\n storeListenersRev2.delete(l);\n };\n },\n dev_get_mounted_atoms: () => mountedAtoms.values(),\n dev_get_atom_state: (a) => atomStateMap.get(a),\n dev_get_mounted: (a) => mountedMap.get(a),\n dev_restore_atoms: (values) => {\n for (const [atom, valueOrPromise] of values) {\n if (hasInitialValue(atom)) {\n setAtomValueOrPromise(atom, valueOrPromise);\n recomputeDependents(atom);\n }\n }\n const flushed = flushPending();\n storeListenersRev2.forEach(\n (l) => l({ type: \"restore\", flushed })\n );\n }\n };\n }\n return {\n get: readAtom,\n set: writeAtom,\n sub: subscribeAtom\n };\n};\nlet defaultStore;\nif ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n if (typeof globalThis.__NUMBER_OF_JOTAI_INSTANCES__ === \"number\") {\n ++globalThis.__NUMBER_OF_JOTAI_INSTANCES__;\n } else {\n globalThis.__NUMBER_OF_JOTAI_INSTANCES__ = 1;\n }\n}\nconst getDefaultStore = () => {\n if (!defaultStore) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && globalThis.__NUMBER_OF_JOTAI_INSTANCES__ !== 1) {\n console.warn(\n \"Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044\"\n );\n }\n defaultStore = createStore();\n }\n return defaultStore;\n};\n\nexport { atom, createStore, getDefaultStore };\n", "'use client';\nimport ReactExports, { createContext, useContext, useRef, createElement, useReducer, useEffect, useDebugValue, useCallback } from 'react';\nimport { getDefaultStore, createStore } from 'jotai/vanilla';\n\nconst StoreContext = createContext(void 0);\nconst useStore = (options) => {\n const store = useContext(StoreContext);\n return (options == null ? void 0 : options.store) || store || getDefaultStore();\n};\nconst Provider = ({\n children,\n store\n}) => {\n const storeRef = useRef();\n if (!store && !storeRef.current) {\n storeRef.current = createStore();\n }\n return createElement(\n StoreContext.Provider,\n {\n value: store || storeRef.current\n },\n children\n );\n};\n\nconst isPromiseLike = (x) => typeof (x == null ? void 0 : x.then) === \"function\";\nconst use = ReactExports.use || ((promise) => {\n if (promise.status === \"pending\") {\n throw promise;\n } else if (promise.status === \"fulfilled\") {\n return promise.value;\n } else if (promise.status === \"rejected\") {\n throw promise.reason;\n } else {\n promise.status = \"pending\";\n promise.then(\n (v) => {\n promise.status = \"fulfilled\";\n promise.value = v;\n },\n (e) => {\n promise.status = \"rejected\";\n promise.reason = e;\n }\n );\n throw promise;\n }\n});\nfunction useAtomValue(atom, options) {\n const store = useStore(options);\n const [[valueFromReducer, storeFromReducer, atomFromReducer], rerender] = useReducer(\n (prev) => {\n const nextValue = store.get(atom);\n if (Object.is(prev[0], nextValue) && prev[1] === store && prev[2] === atom) {\n return prev;\n }\n return [nextValue, store, atom];\n },\n void 0,\n () => [store.get(atom), store, atom]\n );\n let value = valueFromReducer;\n if (storeFromReducer !== store || atomFromReducer !== atom) {\n rerender();\n value = store.get(atom);\n }\n const delay = options == null ? void 0 : options.delay;\n useEffect(() => {\n const unsub = store.sub(atom, () => {\n if (typeof delay === \"number\") {\n setTimeout(rerender, delay);\n return;\n }\n rerender();\n });\n rerender();\n return unsub;\n }, [store, atom, delay]);\n useDebugValue(value);\n return isPromiseLike(value) ? use(value) : value;\n}\n\nfunction useSetAtom(atom, options) {\n const store = useStore(options);\n const setAtom = useCallback(\n (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !(\"write\" in atom)) {\n throw new Error(\"not writable atom\");\n }\n return store.set(atom, ...args);\n },\n [store, atom]\n );\n return setAtom;\n}\n\nfunction useAtom(atom, options) {\n return [\n useAtomValue(atom, options),\n // We do wrong type assertion here, which results in throwing an error.\n useSetAtom(atom, options)\n ];\n}\n\nexport { Provider, useAtom, useAtomValue, useSetAtom, useStore };\n"], "mappings": "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", "names": ["require_react_production_min", "__commonJSMin", "exports", "l", "n", "p", "q", "r", "t", "u", "v", "w", "x", "y", "z", "A", "a", "B", "C", "D", "E", "b", "e", "F", "G", "H", "I", "J", "K", "L", "M", "d", "c", "k", "h", "g", "f", "m", "N", "O", "escape", "P", "Q", "R", "S", "T", "U", "V", "W", "require_react", "__commonJSMin", "exports", "module", "require_scheduler_production_min", "__commonJSMin", "exports", "f", "a", "b", "c", "d", "e", "g", "h", "k", "w", "m", "C", "n", "x", "l", "p", "q", "r", "t", "u", "v", "y", "z", "A", "B", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "require_scheduler", "__commonJSMin", "exports", "module", "require_react_dom_production_min", "__commonJSMin", "exports", "aa", "ca", "p", "a", "b", "c", "da", "ea", "fa", "ha", "ia", "ja", "ka", "la", "ma", "oa", "pa", "d", "qa", "v", "e", "f", "g", "z", "ra", "sa", "ta", "ua", "va", "wa", "ya", "za", "Aa", "Ba", "Ca", "Da", "Ea", "Fa", "Ga", "Ha", "Ia", "Ja", "Ka", "A", "La", "Ma", "Na", "Oa", "l", "h", "k", "Pa", "Qa", "Ra", "Sa", "Ta", "Ua", "Va", "Wa", "Xa", "Ya", "Za", "ab", "bb", "cb", "db", "eb", "fb", "gb", "hb", "ib", "jb", "kb", "lb", "mb", "nb", "ob", "pb", "qb", "rb", "sb", "tb", "ub", "vb", "wb", "xb", "yb", "zb", "Ab", "Bb", "Cb", "Db", "Eb", "Fb", "Gb", "Hb", "Ib", "Jb", "Kb", "Lb", "Mb", "Nb", "m", "Ob", "Pb", "Qb", "Rb", "Sb", "Tb", "Ub", "Vb", "Wb", "Xb", "Yb", "Zb", "$b", "ac", "bc", "cc", "dc", "B", "ec", "fc", "gc", "hc", "ic", "jc", "kc", "lc", "mc", "oc", "nc", "pc", "qc", "rc", "sc", "tc", "uc", "vc", "wc", "xc", "yc", "zc", "Ac", "Bc", "Cc", "C", "Dc", "Ec", "Fc", "Gc", "Hc", "Ic", "Jc", "Kc", "Lc", "Mc", "Nc", "Oc", "Pc", "Qc", "Rc", "Sc", "Tc", "Uc", "Vc", "Wc", "Xc", "Yc", "Zc", "$c", "ad", "bd", "cd", "dd", "ed", "fd", "gd", "hd", "id", "jd", "kd", "ld", "md", "nd", "od", "pd", "qd", "rd", "sd", "td", "ud", "vd", "wd", "xd", "yd", "Ad", "zd", "Bd", "Cd", "Dd", "Ed", "Fd", "Gd", "Hd", "Id", "Jd", "Kd", "Ld", "Md", "Nd", "Od", "Pd", "Qd", "Rd", "Sd", "Td", "Ud", "Vd", "Wd", "Xd", "Yd", "Zd", "$d", "ae", "be", "ce", "de", "ee", "fe", "ge", "he", "ie", "je", "ke", "le", "me", "ne", "oe", "pe", "qe", "re", "se", "te", "ue", "ve", "we", "ye", "ze", "xe", "Ae", "Be", "Ce", "De", "Ee", "Fe", "Ge", "He", "Ie", "Je", "Ke", "Le", "Me", "Ne", "Oe", "Pe", "Qe", "Re", "Se", "Te", "Ue", "Ve", "We", "Xe", "Ye", "Ze", "$e", "af", "bf", "cf", "df", "ef", "ff", "gf", "hf", "jf", "kf", "lf", "mf", "nf", "D", "of", "pf", "qf", "rf", "sf", "n", "t", "J", "x", "w", "u", "F", "tf", "uf", "vf", "wf", "na", "xa", "$a", "ba", "xf", "yf", "zf", "Af", "Bf", "Cf", "Df", "Ef", "Ff", "Gf", "Hf", "Jf", "If", "Kf", "Lf", "Mf", "Nf", "Of", "Pf", "Qf", "Rf", "Sf", "Tf", "Uf", "E", "G", "Vf", "H", "Wf", "Xf", "Yf", "Zf", "$f", "ag", "bg", "cg", "dg", "eg", "fg", "gg", "hg", "ig", "jg", "kg", "lg", "mg", "ng", "og", "pg", "qg", "rg", "sg", "tg", "ug", "vg", "wg", "xg", "yg", "I", "zg", "Ag", "Bg", "Cg", "Dg", "Eg", "Fg", "Gg", "Hg", "Ig", "Jg", "Kg", "Lg", "Mg", "Ng", "Og", "Pg", "Qg", "Rg", "Sg", "Tg", "Ug", "Vg", "Wg", "Xg", "Yg", "Zg", "$g", "ah", "bh", "ch", "dh", "K", "eh", "fh", "gh", "q", "r", "y", "hh", "ih", "jh", "kh", "nh", "L", "lh", "mh", "oh", "ph", "qh", "rh", "sh", "th", "uh", "vh", "wh", "xh", "yh", "zh", "Ah", "Bh", "Ch", "Dh", "Eh", "Fh", "Gh", "Hh", "Ih", "Jh", "Kh", "Lh", "M", "Mh", "Nh", "Oh", "Ph", "Qh", "Rh", "N", "O", "P", "Sh", "Th", "Uh", "Vh", "Q", "Wh", "Xh", "Yh", "Zh", "$h", "ai", "bi", "ci", "di", "ei", "fi", "gi", "hi", "ii", "ji", "ki", "li", "mi", "R", "ni", "oi", "pi", "qi", "ri", "si", "ti", "ui", "vi", "wi", "xi", "yi", "zi", "Ai", "Bi", "Ci", "Di", "Ei", "Fi", "Gi", "Hi", "Ii", "Ji", "Ki", "Li", "Mi", "Ni", "Oi", "Pi", "Qi", "Ri", "Si", "Ti", "Ui", "Vi", "Wi", "Xi", "Yi", "Zi", "$i", "aj", "bj", "cj", "dj", "ej", "fj", "gj", "hj", "ij", "jj", "kj", "lj", "mj", "nj", "oj", "pj", "qj", "rj", "sj", "tj", "uj", "vj", "wj", "xj", "yj", "zj", "Aj", "Bj", "Cj", "Dj", "Ej", "S", "Fj", "Gj", "T", "Hj", "Ij", "Jj", "Kj", "U", "Lj", "V", "Mj", "W", "Nj", "Oj", "Pj", "Qj", "Rj", "Sj", "Tj", "Uj", "Vj", "Wj", "Xj", "X", "Yj", "Zj", "ak", "bk", "ck", "dk", "ek", "fk", "gk", "hk", "ik", "jk", "kk", "lk", "mk", "nk", "ok", "pk", "Y", "Z", "qk", "rk", "sk", "tk", "uk", "vk", "wk", "xk", "yk", "zk", "Ak", "Bk", "Ck", "Dk", "Ek", "Fk", "Gk", "Hk", "Ik", "Jk", "Kk", "Lk", "Mk", "Nk", "Ok", "Pk", "Qk", "Rk", "Sk", "Tk", "Uk", "Vk", "Wk", "Xk", "Yk", "Zk", "$k", "al", "bl", "cl", "dl", "el", "fl", "gl", "hl", "il", "jl", "kl", "ll", "ml", "nl", "ol", "pl", "ql", "rl", "sl", "tl", "ul", "vl", "wl", "require_react_dom", "__commonJSMin", "exports", "module", "checkDCE", "err", "require_client", "__commonJSMin", "exports", "m", "i", "require_base64", "__commonJSMin", "exports", "intToCharMap", "number", "charCode", "bigA", "bigZ", "littleA", "littleZ", "zero", "nine", "plus", "slash", "littleOffset", "numberOffset", "require_base64_vlq", "__commonJSMin", "exports", "base64", "VLQ_BASE_SHIFT", "VLQ_BASE", "VLQ_BASE_MASK", "VLQ_CONTINUATION_BIT", "toVLQSigned", "aValue", "fromVLQSigned", "isNegative", "shifted", "encoded", "digit", "vlq", "aStr", "aIndex", "aOutParam", "strLen", "result", "shift", "continuation", "require_util", "__commonJSMin", "exports", "getArg", "aArgs", "aName", "aDefaultValue", "urlRegexp", "dataUrlRegexp", "urlParse", "aUrl", "match", "urlGenerate", "aParsedUrl", "url", "normalize", "aPath", "path", "isAbsolute", "parts", "part", "up", "i", "join", "aRoot", "aPathUrl", "aRootUrl", "joined", "relative", "level", "index", "supportsNullProto", "obj", "identity", "s", "toSetString", "aStr", "isProtoString", "fromSetString", "length", "compareByOriginalPositions", "mappingA", "mappingB", "onlyCompareOriginal", "cmp", "strcmp", "compareByGeneratedPositionsDeflated", "onlyCompareGenerated", "aStr1", "aStr2", "compareByGeneratedPositionsInflated", "parseSourceMapInput", "str", "computeSourceURL", "sourceRoot", "sourceURL", "sourceMapURL", "parsed", "require_array_set", "__commonJSMin", "exports", "util", "has", "hasNativeMap", "ArraySet", "aArray", "aAllowDuplicates", "set", "i", "len", "aStr", "sStr", "isDuplicate", "idx", "aIdx", "require_mapping_list", "__commonJSMin", "exports", "util", "generatedPositionAfter", "mappingA", "mappingB", "lineA", "lineB", "columnA", "columnB", "MappingList", "aCallback", "aThisArg", "aMapping", "require_source_map_generator", "__commonJSMin", "exports", "base64VLQ", "util", "ArraySet", "MappingList", "SourceMapGenerator", "aArgs", "aSourceMapConsumer", "sourceRoot", "generator", "mapping", "newMapping", "sourceFile", "sourceRelative", "content", "generated", "original", "source", "name", "aSourceFile", "aSourceContent", "aSourceMapPath", "newSources", "newNames", "aGenerated", "aOriginal", "aSource", "aName", "previousGeneratedColumn", "previousGeneratedLine", "previousOriginalColumn", "previousOriginalLine", "previousName", "previousSource", "result", "next", "nameIdx", "sourceIdx", "mappings", "i", "len", "aSources", "aSourceRoot", "key", "map", "require_binary_search", "__commonJSMin", "exports", "recursiveSearch", "aLow", "aHigh", "aNeedle", "aHaystack", "aCompare", "aBias", "mid", "cmp", "index", "require_quick_sort", "__commonJSMin", "exports", "swap", "ary", "x", "y", "temp", "randomIntInRange", "low", "high", "doQuickSort", "comparator", "p", "pivotIndex", "pivot", "j", "q", "require_source_map_consumer", "__commonJSMin", "exports", "util", "binarySearch", "ArraySet", "base64VLQ", "quickSort", "SourceMapConsumer", "aSourceMap", "aSourceMapURL", "sourceMap", "IndexedSourceMapConsumer", "BasicSourceMapConsumer", "aStr", "index", "c", "aSourceRoot", "aCallback", "aContext", "aOrder", "context", "order", "mappings", "sourceRoot", "mapping", "source", "aArgs", "line", "needle", "originalLine", "originalColumn", "version", "sources", "names", "sourcesContent", "file", "s", "aSource", "relativeSource", "i", "smc", "generatedMappings", "destGeneratedMappings", "destOriginalMappings", "length", "srcMapping", "destMapping", "Mapping", "generatedLine", "previousGeneratedColumn", "previousOriginalLine", "previousOriginalColumn", "previousSource", "previousName", "cachedSegments", "temp", "originalMappings", "str", "segment", "end", "value", "aNeedle", "aMappings", "aLineName", "aColumnName", "aComparator", "aBias", "nextMapping", "name", "sc", "nullOnMissing", "url", "fileUriAbsPath", "sections", "lastOffset", "offset", "offsetLine", "offsetColumn", "j", "sectionIndex", "section", "cmp", "content", "generatedPosition", "ret", "sectionMappings", "adjustedMapping", "require_source_node", "__commonJSMin", "exports", "SourceMapGenerator", "util", "REGEX_NEWLINE", "NEWLINE_CODE", "isSourceNode", "SourceNode", "aLine", "aColumn", "aSource", "aChunks", "aName", "aGeneratedCode", "aSourceMapConsumer", "aRelativePath", "node", "remainingLines", "remainingLinesIndex", "shiftNextLine", "lineContents", "getNextLine", "newLine", "lastGeneratedLine", "lastGeneratedColumn", "lastMapping", "mapping", "addMappingWithCode", "nextLine", "code", "sourceFile", "content", "source", "aChunk", "chunk", "i", "aFn", "len", "aSep", "newChildren", "aPattern", "aReplacement", "lastChild", "aSourceFile", "aSourceContent", "sources", "str", "aArgs", "generated", "map", "sourceMappingActive", "lastOriginalSource", "lastOriginalLine", "lastOriginalColumn", "lastOriginalName", "original", "idx", "length", "sourceContent", "require_source_map", "__commonJSMin", "exports", "path_exports", "__export", "basename", "path_default", "delimiter", "dirname", "extname", "isAbsolute", "join", "normalize", "relative", "resolve", "sep", "normalizeArray", "parts", "allowAboveRoot", "up", "i", "last", "resolvedPath", "resolvedAbsolute", "path", "filter", "p", "isPathAbsolute", "trailingSlash", "substr", "paths", "index", "from", "to", "trim", "arr", "start", "end", "fromParts", "toParts", "length", "samePartsLength", "outputParts", "result", "splitPath", "root", "dir", "ext", "f", "xs", "res", "splitPathRe", "init_path", "__esmMin", "filename", "str", "len", "require_path", "__commonJSMin", "exports", "module", "polyfill", "k", "fs_exports", "__export", "fs_default", "init_fs", "__esmMin", "require_fs", "__commonJSMin", "exports", "module", "polyfill", "k", "require_buffer_from", "__commonJSMin", "exports", "module", "toString", "isModern", "isArrayBuffer", "input", "fromArrayBuffer", "obj", "byteOffset", "length", "maxLength", "fromString", "string", "encoding", "bufferFrom", "value", "encodingOrOffset", "require_source_map_support", "__commonJSMin", "exports", "module", "SourceMapConsumer", "path", "fs", "bufferFrom", "dynamicRequire", "mod", "request", "errorFormatterInstalled", "uncaughtShimInstalled", "emptyCacheBetweenOperations", "environment", "fileContentsCache", "sourceMapCache", "reSourceMap", "retrieveFileHandlers", "retrieveMapHandlers", "isInBrowser", "hasGlobalProcessEventEmitter", "globalProcessVersion", "globalProcessStderr", "globalProcessExit", "code", "handlerExec", "list", "arg", "i", "ret", "retrieveFile", "protocol", "drive", "contents", "xhr", "supportRelativeURL", "file", "url", "dir", "match", "startPath", "retrieveSourceMapURL", "source", "fileData", "sourceMapHeader", "re", "lastMatch", "retrieveSourceMap", "sourceMappingURL", "sourceMapData", "rawData", "mapSourcePosition", "position", "sourceMap", "urlAndMap", "originalPosition", "mapEvalOrigin", "origin", "CallSiteToString", "fileName", "fileLocation", "lineNumber", "columnNumber", "line", "functionName", "addSuffix", "isConstructor", "isMethodCall", "typeName", "methodName", "cloneCallSite", "frame", "object", "name", "wrapCallSite", "state", "column", "noHeader", "headerLength", "originalFunctionName", "prepareStackTrace", "error", "stack", "message", "errorString", "processedStack", "getErrorSource", "printErrorAndExit", "stderr", "shimEmitUncaughtException", "origEmit", "type", "hasStack", "hasListeners", "originalRetrieveFileHandlers", "originalRetrieveMapHandlers", "options", "Module", "$compile", "content", "filename", "installHandler", "worker_threads", "require_react_jsx_runtime_production_min", "__commonJSMin", "exports", "f", "k", "l", "m", "n", "p", "q", "c", "a", "g", "b", "d", "e", "h", "require_jsx_runtime", "__commonJSMin", "exports", "module", "import_react", "import_client", "import_react", "contentGet", "contentSave", "import_react", "assert", "condition", "msg", "FLOAT32_MAX", "FLOAT32_MIN", "UINT32_MAX", "INT32_MAX", "INT32_MIN", "assertInt32", "arg", "assertUInt32", "assertFloat32", "enumTypeSymbol", "getEnumType", "enumObject", "t", "assert", "setEnumType", "typeName", "values", "opt", "makeEnumType", "v", "_opt", "names", "numbers", "normalValues", "value", "n", "normalizeEnumValue", "name", "no", "makeEnum", "Message", "other", "bytes", "options", "type", "format", "opt", "jsonValue", "jsonString", "json", "e", "bin", "writer", "_a", "value", "makeMessageType", "runtime", "typeName", "fields", "opt", "_a", "localName", "type", "data", "Message", "bytes", "options", "jsonValue", "jsonString", "b", "makeProtoRuntime", "syntax", "json", "bin", "util", "typeName", "fields", "opt", "makeMessageType", "makeEnum", "makeEnumType", "getEnumType", "ScalarType", "LongType", "varint64read", "lowBits", "highBits", "shift", "b", "middleByte", "varint64write", "lo", "hi", "bytes", "hasNext", "byte", "splitBits", "hasMoreBits", "TWO_PWR_32_DBL", "int64FromString", "dec", "minus", "base", "add1e6digit", "begin", "end", "digit1e6", "negate", "newBits", "int64ToString", "bits", "negative", "result", "uInt64ToString", "toUnsigned", "low", "mid", "high", "digitA", "digitB", "digitC", "decimalFrom1e7WithLeadingZeros", "digit1e7", "partial", "varint32write", "value", "i", "varint32read", "readBytes", "makeInt64Support", "dv", "MIN", "MAX", "UMIN", "UMAX", "value", "bi", "lo", "hi", "assertInt64String", "assert", "assertUInt64String", "int64FromString", "int64ToString", "uInt64ToString", "protoInt64", "WireType", "BinaryWriter", "textEncoder", "len", "i", "bytes", "offset", "chunk", "prev", "fieldNo", "type", "value", "assertUInt32", "assertInt32", "varint32write", "assertFloat32", "view", "tc", "protoInt64", "varint64write", "sign", "lo", "hi", "BinaryReader", "buf", "textDecoder", "varint64read", "varint32read", "tag", "wireType", "start", "t", "zze", "s", "wrapField", "type", "value", "Message", "wktWrapperToScalarType", "ScalarType", "scalarEquals", "type", "a", "b", "ScalarType", "i", "scalarDefaultValue", "longType", "protoInt64", "scalarTypeInfo", "value", "isUndefined", "wireType", "WireType", "isIntrinsicDefault", "method", "unknownFieldsSymbol", "readDefaults", "bytes", "BinaryReader", "writeDefaults", "BinaryWriter", "makeReadOptions", "options", "makeWriteOptions", "makeBinaryFormatCommon", "message", "_a", "writer", "c", "f", "no", "wireType", "data", "m", "reader", "lengthOrEndTagFieldNo", "delimitedMessageEncoding", "type", "end", "fieldNo", "WireType", "field", "target", "repeated", "localName", "scalarType", "ScalarType", "read", "readScalar", "readScalarLTString", "arr", "e", "messageType", "readMessageField", "Message", "mapKey", "mapVal", "readMapEntry", "format", "delimited", "length", "key", "val", "keyRaw", "scalarDefaultValue", "LongType", "v", "writeMapEntry", "value", "keyValue", "assert", "writeScalar", "writeMessageField", "wrapField", "emitIntrinsicDefault", "method", "isIntrinsicDefault", "scalarTypeInfo", "writePacked", "makeBinaryFormatProto3", "makeBinaryFormatCommon", "message", "writer", "options", "type", "field", "value", "repeated", "localName", "oneof", "scalarType", "ScalarType", "writePacked", "item", "writeScalar", "writeMessageField", "key", "val", "writeMapEntry", "encTable", "decTable", "i", "protoBase64", "base64Str", "es", "bytes", "bytePos", "groupPos", "b", "p", "base64", "jsonReadDefaults", "jsonWriteDefaults", "makeReadOptions", "options", "makeWriteOptions", "makeJsonFormatCommon", "makeWriteField", "writeField", "writeEnum", "writeScalar", "type", "json", "message", "oneofSeen", "jsonKey", "jsonValue", "field", "localName", "target", "seen", "targetArray", "jsonItem", "val", "readEnum", "readScalar", "e", "m", "targetMap", "jsonMapKey", "jsonMapValue", "LongType", "ScalarType", "messageType", "Message", "enumValue", "member", "oneof", "r", "debugJsonValue", "longType", "float", "assertFloat32", "int32", "assertUInt32", "assertInt32", "protoInt64", "long", "uLong", "protoBase64", "ignoreUnknownFields", "value", "emitIntrinsicDefault", "enumAsInteger", "_a", "assert", "makeJsonFormatProto3", "makeJsonFormatCommon", "writeEnum", "writeScalar", "field", "value", "options", "jsonObj", "entryKey", "entryValue", "val", "assert", "enumType", "jsonArr", "i", "wrapField", "makeUtilCommon", "setEnumType", "source", "target", "type", "member", "localName", "t", "sk", "sourceField", "val", "ScalarType", "toU8Arr", "copy", "k", "v", "messageType", "mt", "a", "b", "m", "va", "vb", "i", "scalarEquals", "keys", "scalarType", "message", "any", "cloneSingularField", "key", "value", "Message", "c", "input", "InternalFieldList", "fields", "normalizer", "jsonName", "t", "f", "fieldNo", "a", "b", "o", "localFieldName", "protoName", "inOneof", "name", "protoCamelCase", "safeObjectProperty", "safeMessageProperty", "localOneofName", "fieldJsonName", "protoCamelCase", "snakeCase", "capNext", "b", "i", "c", "reservedObjectProperties", "reservedMessageProperties", "fallback", "name", "safeMessageProperty", "safeObjectProperty", "InternalOneofInfo", "name", "localOneofName", "field", "assert", "localName", "i", "proto3", "makeProtoRuntime", "makeJsonFormatProto3", "makeBinaryFormatProto3", "makeUtilCommon", "fields", "InternalFieldList", "normalizeFieldInfosProto3", "target", "member", "name", "t", "scalarDefaultValue", "fieldInfos", "_a", "_b", "_c", "_d", "r", "o", "field", "f", "localFieldName", "fieldJsonName", "LongType", "ooname", "InternalOneofInfo", "ScalarType", "makeBinaryFormatProto2", "makeBinaryFormatCommon", "message", "writer", "options", "type", "field", "value", "repeated", "localName", "oneof", "scalarType", "ScalarType", "writePacked", "item", "writeScalar", "writeMessageField", "key", "val", "writeMapEntry", "e", "m", "r", "makeJsonFormatProto2", "makeJsonFormatCommon", "writeEnum", "writeScalar", "field", "value", "options", "jsonObj", "entryKey", "entryValue", "val", "assert", "enumType", "jsonArr", "i", "wrapField", "proto2", "makeProtoRuntime", "makeJsonFormatProto2", "makeBinaryFormatProto2", "makeUtilCommon", "fields", "InternalFieldList", "normalizeFieldInfosProto2", "target", "member", "name", "t", "fieldInfos", "_a", "_b", "_c", "_d", "_e", "r", "o", "field", "f", "localFieldName", "fieldJsonName", "LongType", "ooname", "InternalOneofInfo", "MethodKind", "MethodIdempotency", "Edition", "proto2", "FileDescriptorSet", "_FileDescriptorSet", "Message", "data", "bytes", "options", "jsonValue", "jsonString", "a", "b", "FileDescriptorProto", "_FileDescriptorProto", "DescriptorProto", "EnumDescriptorProto", "ServiceDescriptorProto", "FieldDescriptorProto", "FileOptions", "SourceCodeInfo", "_DescriptorProto", "DescriptorProto_ExtensionRange", "OneofDescriptorProto", "MessageOptions", "DescriptorProto_ReservedRange", "_DescriptorProto_ExtensionRange", "ExtensionRangeOptions", "_DescriptorProto_ReservedRange", "_ExtensionRangeOptions", "UninterpretedOption", "ExtensionRangeOptions_Declaration", "FeatureSet", "ExtensionRangeOptions_VerificationState", "_ExtensionRangeOptions_Declaration", "_FieldDescriptorProto", "FieldDescriptorProto_Label", "FieldDescriptorProto_Type", "FieldOptions", "_OneofDescriptorProto", "OneofOptions", "_EnumDescriptorProto", "EnumValueDescriptorProto", "EnumOptions", "EnumDescriptorProto_EnumReservedRange", "_EnumDescriptorProto_EnumReservedRange", "_EnumValueDescriptorProto", "EnumValueOptions", "_ServiceDescriptorProto", "MethodDescriptorProto", "ServiceOptions", "_MethodDescriptorProto", "MethodOptions", "_FileOptions", "FileOptions_OptimizeMode", "_MessageOptions", "_FieldOptions", "FieldOptions_CType", "FieldOptions_JSType", "FieldOptions_OptionRetention", "FieldOptions_OptionTargetType", "FieldOptions_EditionDefault", "_FieldOptions_EditionDefault", "_OneofOptions", "_EnumOptions", "_EnumValueOptions", "_ServiceOptions", "_MethodOptions", "MethodOptions_IdempotencyLevel", "_UninterpretedOption", "UninterpretedOption_NamePart", "_UninterpretedOption_NamePart", "_FeatureSet", "FeatureSet_FieldPresence", "FeatureSet_EnumType", "FeatureSet_RepeatedFieldEncoding", "FeatureSet_Utf8Validation", "FeatureSet_MessageEncoding", "FeatureSet_JsonFormat", "FeatureSetDefaults", "_FeatureSetDefaults", "FeatureSetDefaults_FeatureSetEditionDefault", "_FeatureSetDefaults_FeatureSetEditionDefault", "_SourceCodeInfo", "SourceCodeInfo_Location", "_SourceCodeInfo_Location", "GeneratedCodeInfo", "_GeneratedCodeInfo", "GeneratedCodeInfo_Annotation", "_GeneratedCodeInfo_Annotation", "GeneratedCodeInfo_Annotation_Semantic", "Empty", "_Empty", "Message", "data", "proto3", "bytes", "options", "jsonValue", "jsonString", "a", "b", "VerifyUserRequest", "_VerifyUserRequest", "Message", "data", "proto3", "bytes", "options", "jsonValue", "jsonString", "a", "b", "GroupInfoRequest", "_GroupInfoRequest", "GroupID", "_GroupID", "ShareRequest", "_ShareRequest", "GroupInvite", "_GroupInvite", "Groups", "_Groups", "Group", "AnalyzeConversationRequest", "_AnalyzeConversationRequest", "User", "_User", "Config", "_Group", "_Config", "LoginResponse", "_LoginResponse", "Conversation", "_Conversation", "Message", "data", "proto3", "Node", "bytes", "options", "jsonValue", "jsonString", "a", "b", "_Node", "_Message", "Author", "Content", "MessageMetadata", "_MessageMetadata", "_Author", "AuthorMetadata", "_Content", "ImageAsset", "_ImageAsset", "protoInt64", "Metadata", "_Metadata", "DalleMetadata", "_DalleMetadata", "_AuthorMetadata", "Attachment", "_Attachment", "History", "_History", "Message", "data", "proto3", "Node", "Edge", "bytes", "options", "jsonValue", "jsonString", "a", "b", "_Node", "_Edge", "HugoConfig", "_HugoConfig", "Message", "data", "proto3", "MinifyConfig", "LanguageConfig", "RepeatedString", "ParamsConfig", "MarkupConfig", "ServicesConfig", "bytes", "options", "jsonValue", "jsonString", "a", "b", "_MinifyConfig", "_LanguageConfig", "RepeatedMenuItem", "MenuItem", "_MenuItem", "EditPostConfig", "_EditPostConfig", "AssetsConfig", "_AssetsConfig", "_MarkupConfig", "GoldmarkConfig", "HighlightConfig", "_GoldmarkConfig", "RendererConfig", "_RendererConfig", "_HighlightConfig", "_ServicesConfig", "ServiceConfig", "_ServiceConfig", "_RepeatedString", "_RepeatedMenuItem", "_ParamsConfig", "ProfileModeConfig", "HomeInfoParamsConfig", "SocialIconConfig", "_ProfileModeConfig", "ButtonConfig", "_ButtonConfig", "_HomeInfoParamsConfig", "_SocialIconConfig", "InferRequest", "_InferRequest", "Message", "data", "proto3", "bytes", "options", "jsonValue", "jsonString", "a", "b", "InferResponse", "_InferResponse", "TypesResponse", "_TypesResponse", "GRPCTypeInfo", "GetSourcesRequest", "_GetSourcesRequest", "VoiceInputRequest", "_VoiceInputRequest", "VoiceInputResponse", "_VoiceInputResponse", "Segment", "RelateRequest", "_RelateRequest", "Sources", "_Sources", "EnumeratedSource", "_EnumeratedSource", "Source", "DisplayContent", "_DisplayContent", "Content", "_Source", "Server", "Folder", "_Server", "_Folder", "SetTagsRequest", "_SetTagsRequest", "TagRequest", "_TagRequest", "Tags", "_Tags", "Tag", "_Tag", "ContentIDs", "_ContentIDs", "Contents", "_Contents", "Query", "_Query", "Results", "_Results", "StoredContent", "_StoredContent", "User", "Edge", "_Edge", "_Content", "Data", "Normalized", "Transformed", "Post", "Site", "Conversation", "History", "_Post", "GitRepo", "_GitRepo", "_Data", "Text", "File", "URL", "_Normalized", "Article", "HTML", "Transcript", "ReadMe", "_Transformed", "Summary", "Categories", "_Article", "_HTML", "_ReadMe", "_Summary", "_Categories", "_File", "_Text", "_URL", "Token", "_Token", "protoInt64", "_Segment", "_Transcript", "_GRPCTypeInfo", "DescriptorProto", "EnumDescriptorProto", "_Site", "Section", "HugoConfig", "_Section", "MenuItem", "AnalyzeConversationRequest", "_AnalyzeConversationRequest", "Message", "data", "proto3", "bytes", "options", "jsonValue", "jsonString", "a", "b", "GenerateImagesRequest", "_GenerateImagesRequest", "GenerateImagesResponse", "_GenerateImagesResponse", "DeleteSessionRequest", "_DeleteSessionRequest", "Prompt", "_Prompt", "GetPromptsRequest", "_GetPromptsRequest", "GetPromptsResponse", "_GetPromptsResponse", "InferRequest", "_InferRequest", "InferResponse", "_InferResponse", "UploadContentRequest", "_UploadContentRequest", "Content", "UploadContentResponse", "_UploadContentResponse", "GetSessionRequest", "_GetSessionRequest", "GetSessionResponse", "_GetSessionResponse", "Session", "GetSessionsRequest", "_GetSessionsRequest", "protoInt64", "GetSessionsResponse", "_GetSessionsResponse", "Token", "_Token", "Segment", "_Segment", "_Session", "TranscriptionRequest", "_TranscriptionRequest", "RegisterFlags", "_RegisterFlags", "OCRText", "_OCRText", "Image", "_Image", "ConvertFileRequest", "_ConvertFileRequest", "ChatRequest", "_ChatRequest", "ChatResponse", "_ChatResponse", "YouTubeVideo", "_YouTubeVideo", "FilePath", "_FilePath", "YouTubeVideoResponse", "_YouTubeVideoResponse", "AnalyzeConversationResponse", "_AnalyzeConversationResponse", "Message", "data", "proto3", "bytes", "options", "jsonValue", "jsonString", "a", "b", "AnalyzeContent", "_AnalyzeContent", "ProtoflowService", "YouTubeVideo", "YouTubeVideoResponse", "MethodKind", "GetSessionsRequest", "GetSessionsResponse", "GetSessionRequest", "GetSessionResponse", "DeleteSessionRequest", "Empty", "GetPromptsRequest", "GetPromptsResponse", "Prompt", "UploadContentRequest", "ChatResponse", "InferRequest", "InferResponse", "ChatRequest", "ConvertFileRequest", "FilePath", "GenerateImagesRequest", "GenerateImagesResponse", "AnalyzeConversationRequest", "AnalyzeConversationResponse", "ContentService", "Contents", "ContentIDs", "MethodKind", "Query", "Results", "RelateRequest", "Empty", "Content", "TagRequest", "Tags", "SetTagsRequest", "GetSourcesRequest", "Sources", "InferRequest", "InferResponse", "TypesResponse", "VoiceInputRequest", "VoiceInputResponse", "UserService", "User", "MethodKind", "LoginResponse", "Empty", "VerifyUserRequest", "Config", "GroupID", "GroupInvite", "Group", "GroupInfoRequest", "Groups", "ShareRequest", "BanUserRequest", "_BanUserRequest", "Message", "data", "proto3", "bytes", "options", "jsonValue", "jsonString", "a", "b", "BanUserResponse", "_BanUserResponse", "SendMessageRequest", "_SendMessageRequest", "SendMessageResponse", "_SendMessageResponse", "ReceiveMessagesRequest", "_ReceiveMessagesRequest", "_Message", "protoInt64", "ChatService", "SendMessageRequest", "SendMessageResponse", "MethodKind", "ReceiveMessagesRequest", "Message", "BanUserRequest", "BanUserResponse", "Metric", "_Metric", "Message", "data", "proto3", "HTTPRequest", "RRWeb", "bytes", "options", "jsonValue", "jsonString", "a", "b", "_HTTPRequest", "_RRWeb", "SendResponse", "_SendResponse", "EventService", "Metric", "SendResponse", "MethodKind", "Code", "codeToString", "value", "name", "Code", "c", "stringToCode", "codeFromString", "ConnectError", "_ConnectError", "message", "code", "Code", "metadata", "outgoingDetails", "cause", "createMessage", "reason", "v", "typeOrRegistry", "registry", "typeName", "details", "data", "Message", "type", "codeToString", "appendHeaders", "headers", "h", "e", "value", "key", "makeAnyClient", "service", "createMethod", "client", "localName", "methodInfo", "method", "createEnvelopeReadableStream", "stream", "reader", "buffer", "append", "chunk", "n", "controller", "header", "length", "i", "result", "ConnectError", "Code", "data", "encodeEnvelope", "flags", "data", "bytes", "v", "__asyncValues", "o", "m", "i", "verb", "n", "v", "resolve", "reject", "settle", "d", "__await", "__asyncGenerator", "thisArg", "_arguments", "generator", "g", "q", "awaitReturn", "f", "a", "b", "resume", "step", "e", "r", "fulfill", "value", "__asyncDelegator", "p", "createAsyncIterable", "items", "__asyncGenerator", "__await", "__asyncDelegator", "__asyncValues", "__asyncValues", "o", "m", "i", "verb", "n", "v", "resolve", "reject", "settle", "d", "__await", "__asyncDelegator", "p", "e", "f", "__asyncGenerator", "thisArg", "_arguments", "generator", "g", "q", "awaitReturn", "a", "b", "resume", "step", "r", "fulfill", "value", "createPromiseClient", "service", "transport", "makeAnyClient", "method", "MethodKind", "createUnaryFn", "createServerStreamingFn", "createClientStreamingFn", "createBiDiStreamingFn", "input", "options", "_a", "_b", "response", "handleStreamResponse", "createAsyncIterable", "request", "e_1", "_c", "_d", "_e", "singleMessage", "_f", "_g", "_h", "e_1_1", "ConnectError", "Code", "stream", "it", "createLinkedAbortController", "signals", "controller", "sa", "s", "signal", "onAbort", "getAbortSignalReason", "createDeadlineSignal", "timeoutMs", "listener", "ConnectError", "Code", "timeoutId", "createContextValues", "key", "value", "createMethodUrl", "baseUrl", "service", "method", "s", "m", "normalize", "type", "message", "normalizeIterable", "messageType", "input", "transform", "result", "it", "res", "e", "v", "getJsonOptions", "options", "_a", "o", "createClientMethodSerializers", "method", "useBinaryFormat", "jsonOptions", "binaryOptions", "input", "createBinarySerialization", "createJsonSerialization", "createBinarySerialization", "messageType", "options", "data", "e", "m", "ConnectError", "Code", "createJsonSerialization", "_a", "_b", "textEncoder", "textDecoder", "o", "getJsonOptions", "json", "contentTypeRegExp", "contentTypeUnaryProto", "contentTypeUnaryJson", "contentTypeStreamProto", "contentTypeStreamJson", "parseContentType", "contentType", "match", "contentTypeRegExp", "stream", "binary", "errorFromJson", "jsonValue", "metadata", "fallback", "value", "key", "code", "codeFromString", "message", "error", "ConnectError", "detail", "protoBase64", "endStreamFlag", "endStreamFromJson", "data", "parseErr", "ConnectError", "Code", "jsonValue", "metadata", "key", "values", "value", "error", "errorFromJson", "headerContentType", "headerUnaryContentLength", "headerUnaryEncoding", "headerUnaryAcceptEncoding", "headerTimeout", "headerProtocolVersion", "headerUserAgent", "codeFromHttpStatus", "httpStatus", "Code", "trailerDemux", "header", "h", "t", "value", "key", "protocolVersion", "requestHeader", "methodKind", "useBinaryFormat", "timeoutMs", "userProvidedHeaders", "setUserAgent", "result", "headerTimeout", "headerContentType", "MethodKind", "contentTypeUnaryProto", "contentTypeUnaryJson", "contentTypeStreamProto", "contentTypeStreamJson", "headerProtocolVersion", "protocolVersion", "headerUserAgent", "validateResponse", "methodKind", "status", "headers", "mimeType", "parsedType", "parseContentType", "errorFromStatus", "ConnectError", "codeFromHttpStatus", "MethodKind", "contentTypePrefix", "encodeMessageForUrl", "message", "useBase64", "protoBase64", "transformConnectPostToGetRequest", "request", "query", "protocolVersion", "contentType", "headerContentType", "compression", "headerUnaryEncoding", "url", "header", "headerProtocolVersion", "headerUnaryContentLength", "headerUnaryAcceptEncoding", "h", "runUnaryCall", "opt", "next", "applyInterceptors", "signal", "abort", "done", "setupSignal", "req", "normalize", "res", "runStreamingCall", "normalizeIterable", "doneCalled", "_a", "_b", "it", "r", "cleanup", "createDeadlineSignal", "controller", "createLinkedAbortController", "reason", "e", "ConnectError", "getAbortSignalReason", "interceptors", "n", "i", "assertFetchApi", "__await", "v", "__asyncGenerator", "thisArg", "_arguments", "generator", "g", "i", "q", "verb", "awaitReturn", "f", "reject", "n", "a", "b", "resume", "step", "e", "settle", "r", "fulfill", "value", "createConnectTransport", "options", "_a", "assertFetchApi", "useBinaryFormat", "service", "method", "signal", "timeoutMs", "header", "message", "contextValues", "serialize", "parse", "createClientMethodSerializers", "runUnaryCall", "createMethodUrl", "requestHeader", "createContextValues", "req", "useGet", "MethodIdempotency", "body", "transformConnectPostToGetRequest", "response", "isUnaryError", "unaryError", "validateResponse", "errorFromJson", "appendHeaders", "trailerDemux", "demuxedHeader", "demuxedTrailer", "getJsonOptions", "input", "parseResponseBody", "trailerTarget", "reader", "createEnvelopeReadableStream", "endStreamReceived", "result", "flags", "data", "endStreamFlag", "endStream", "endStreamFromJson", "error", "key", "createRequestBody", "MethodKind", "encodeEnvelope", "runStreamingCall", "fRes", "trailer", "baseURL", "transport", "createConnectTransport", "projectService", "createPromiseClient", "ProtoflowService", "contentService", "ContentService", "userService", "UserService", "chatService", "ChatService", "eventService", "EventService", "uuidv4", "c", "r", "v", "urlContent", "url", "tags", "Content", "Data", "import_jsx_runtime", "NewSaveWizard", "error", "setError", "title", "setTitle", "tag", "setTag", "tags", "setTags", "url", "setUrl", "annotation", "setAnnotation", "annotations", "setAnnotations", "selectedValue", "setSelectedValue", "analysis", "setAnalysis", "handleKeyDown", "event", "handleTextHighlight", "highlightedText", "handleAddTag", "addTag", "handleAddAnnotation", "analyze", "res", "contentService", "urlContent", "e", "handleSave", "content", "contentSave", "response", "handleRemove", "id", "idx", "handleRemoveTag", "t", "import_meta", "keyCount", "atom", "read", "write", "key", "config", "get", "set", "arg", "hasInitialValue", "isActuallyWritableAtom", "cancelPromiseMap", "registerCancelPromise", "promise", "cancel", "cancelPromise", "next", "resolvePromise", "value", "rejectPromise", "isPromiseLike", "x", "isEqualAtomValue", "a", "b", "isEqualAtomError", "hasPromiseAtomValue", "isEqualPromiseAtomValue", "returnAtomValue", "atomState", "createStore", "atomStateMap", "mountedMap", "pendingMap", "storeListenersRev2", "mountedAtoms", "getAtomState", "setAtomState", "prevAtomState", "updateDependencies", "nextAtomState", "nextDependencies", "dependencies", "changed", "aState", "setAtomValue", "setAtomValueOrPromise", "valueOrPromise", "abortPromise", "continuePromise", "updatePromiseDependencies", "mountDependencies", "resolve", "reject", "settled", "v", "e", "setAtomError", "error", "readAtomState", "force", "s", "isSync", "getter", "aState2", "controller", "setSelf", "options", "args", "writeAtom", "readAtom", "addAtom", "mounted", "mountAtom", "canUnmountAtom", "delAtom", "unmountAtom", "recomputeDependents", "dependencyMap", "dirtyMap", "getDependents", "_a", "dependents", "_", "pendingAtom", "_a2", "loop1", "dependent", "loop2", "dirtyCount", "isChanged", "writeAtomState", "setter", "args2", "r", "flushed", "flushPending", "l", "result", "initialDependent", "onMountQueue", "queue", "aMounted", "onMount", "onUnmount", "f", "prevDependencies", "depSet", "pending", "listener", "subscribeAtom", "listeners", "rev", "values", "defaultStore", "getDefaultStore", "import_react", "import_meta", "StoreContext", "useStore", "options", "store", "getDefaultStore", "isPromiseLike", "x", "use", "ReactExports", "promise", "v", "useAtomValue", "atom", "options", "store", "useStore", "valueFromReducer", "storeFromReducer", "atomFromReducer", "rerender", "prev", "nextValue", "value", "delay", "unsub", "useSetAtom", "args", "import_meta", "useAtom", "import_jsx_runtime", "contentAtom", "atom", "floatingPanelStyle", "getContent", "content", "d", "FloatingPanel", "visible", "setVisible", "tabContent", "setTabContent", "setContent", "useAtom", "listener", "event", "contentGet", "response", "saveContent", "u", "urlContent", "contentSave", "dontSave", "c", "prev", "x", "NewSaveWizard", "import_jsx_runtime", "rootElem", "e", "data", "msgStr", "formatted", "msg", "root", "ReactDOM", "rootElem", "React", "FloatingPanel"] } diff --git a/js/dist/extension/manifest.json b/js/dist/extension/manifest.json index bf29a088..3d800c1a 100644 --- a/js/dist/extension/manifest.json +++ b/js/dist/extension/manifest.json @@ -1,5 +1,5 @@ { - "name": "LunaBrain", + "name": "justshare", "version": "1.0", "manifest_version": 3, "description": "Save yo shit.", diff --git a/js/dist/extension/options.html b/js/dist/extension/options.html index 190df620..ca6e8865 100644 --- a/js/dist/extension/options.html +++ b/js/dist/extension/options.html @@ -4,7 +4,7 @@ - LunaBrain + justshare diff --git a/js/dist/extension/options.js b/js/dist/extension/options.js index 50b7600c..3492f0e5 100644 --- a/js/dist/extension/options.js +++ b/js/dist/extension/options.js @@ -6,7 +6,7 @@ `).replace(F0,"")}function yo(t,e,n){if(e=Qf(e),Qf(t)!==e&&n)throw Error(R(425))}function Vo(){}var du=null,fu=null;function mu(t,e){return t==="textarea"||t==="noscript"||typeof e.children=="string"||typeof e.children=="number"||typeof e.dangerouslySetInnerHTML=="object"&&e.dangerouslySetInnerHTML!==null&&e.dangerouslySetInnerHTML.__html!=null}var pu=typeof setTimeout=="function"?setTimeout:void 0,U0=typeof clearTimeout=="function"?clearTimeout:void 0,Xf=typeof Promise=="function"?Promise:void 0,A0=typeof queueMicrotask=="function"?queueMicrotask:typeof Xf<"u"?function(t){return Xf.resolve(null).then(t).catch(q0)}:pu;function q0(t){setTimeout(function(){throw t})}function Bl(t,e){var n=e,r=0;do{var i=n.nextSibling;if(t.removeChild(n),i&&i.nodeType===8)if(n=i.data,n==="/$"){if(r===0){t.removeChild(i),ri(e);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=i}while(n);ri(e)}function Ut(t){for(;t!=null;t=t.nextSibling){var e=t.nodeType;if(e===1||e===3)break;if(e===8){if(e=t.data,e==="$"||e==="$!"||e==="$?")break;if(e==="/$")return null}}return t}function Zf(t){t=t.previousSibling;for(var e=0;t;){if(t.nodeType===8){var n=t.data;if(n==="$"||n==="$!"||n==="$?"){if(e===0)return t;e--}else n==="/$"&&e++}t=t.previousSibling}return null}var Wn=Math.random().toString(36).slice(2),et="__reactFiber$"+Wn,li="__reactProps$"+Wn,pt="__reactContainer$"+Wn,gu="__reactEvents$"+Wn,D0="__reactListeners$"+Wn,V0="__reactHandles$"+Wn;function nn(t){var e=t[et];if(e)return e;for(var n=t.parentNode;n;){if(e=n[pt]||n[et]){if(n=e.alternate,e.child!==null||n!==null&&n.child!==null)for(t=Zf(t);t!==null;){if(n=t[et])return n;t=Zf(t)}return e}t=n,n=t.parentNode}return null}function hi(t){return t=t[et]||t[pt],!t||t.tag!==5&&t.tag!==6&&t.tag!==13&&t.tag!==3?null:t}function En(t){if(t.tag===5||t.tag===6)return t.stateNode;throw Error(R(33))}function aa(t){return t[li]||null}var yu=[],Nn=-1;function jt(t){return{current:t}}function z(t){0>Nn||(t.current=yu[Nn],yu[Nn]=null,Nn--)}function V(t,e){Nn++,yu[Nn]=t.current,t.current=e}var zt={},de=jt(zt),ve=jt(!1),ln=zt;function bn(t,e){var n=t.type.contextTypes;if(!n)return zt;var r=t.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===e)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=e[o];return r&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=i),i}function Te(t){return t=t.childContextTypes,t!=null}function bo(){z(ve),z(de)}function em(t,e,n){if(de.current!==zt)throw Error(R(168));V(de,e),V(ve,n)}function Rp(t,e,n){var r=t.stateNode;if(e=e.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in e))throw Error(R(108,Jh(t)||"Unknown",i));return W({},n,r)}function zo(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||zt,ln=de.current,V(de,t),V(ve,ve.current),!0}function tm(t,e,n){var r=t.stateNode;if(!r)throw Error(R(169));n?(t=Rp(t,e,ln),r.__reactInternalMemoizedMergedChildContext=t,z(ve),z(de),V(de,t)):z(ve),V(ve,n)}var ut=null,sa=!1,Fl=!1;function xp(t){ut===null?ut=[t]:ut.push(t)}function b0(t){sa=!0,xp(t)}function $t(){if(!Fl&&ut!==null){Fl=!0;var t=0,e=A;try{var n=ut;for(A=1;t>=a,i-=a,ct=1<<32-He(e)+i|n<M?($=I,I=null):$=I.sibling;var B=y(g,I,w[M],k);if(B===null){I===null&&(I=$);break}t&&I&&B.alternate===null&&e(g,I),d=o(B,d,M),N===null?J=B:N.sibling=B,N=B,I=$}if(M===w.length)return n(g,I),G&&en(g,M),J;if(I===null){for(;MM?($=I,I=null):$=I.sibling;var Ke=y(g,I,B.value,k);if(Ke===null){I===null&&(I=$);break}t&&I&&Ke.alternate===null&&e(g,I),d=o(Ke,d,M),N===null?J=Ke:N.sibling=Ke,N=Ke,I=$}if(B.done)return n(g,I),G&&en(g,M),J;if(I===null){for(;!B.done;M++,B=w.next())B=v(g,B.value,k),B!==null&&(d=o(B,d,M),N===null?J=B:N.sibling=B,N=B);return G&&en(g,M),J}for(I=r(g,I);!B.done;M++,B=w.next())B=m(I,g,M,B.value,k),B!==null&&(t&&B.alternate!==null&&I.delete(B.key===null?M:B.key),d=o(B,d,M),N===null?J=B:N.sibling=B,N=B);return t&&I.forEach(function(Xy){return e(g,Xy)}),G&&en(g,M),J}function O(g,d,w,k){if(typeof w=="object"&&w!==null&&w.type===kn&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case no:e:{for(var J=w.key,N=d;N!==null;){if(N.key===J){if(J=w.type,J===kn){if(N.tag===7){n(g,N.sibling),d=i(N,w.props.children),d.return=g,g=d;break e}}else if(N.elementType===J||typeof J=="object"&&J!==null&&J.$$typeof===Et&&lm(J)===N.type){n(g,N.sibling),d=i(N,w.props),d.ref=Fr(g,N,w),d.return=g,g=d;break e}n(g,N);break}else e(g,N);N=N.sibling}w.type===kn?(d=sn(w.props.children,g.mode,k,w.key),d.return=g,g=d):(k=Mo(w.type,w.key,w.props,null,g.mode,k),k.ref=Fr(g,d,w),k.return=g,g=k)}return a(g);case Sn:e:{for(N=w.key;d!==null;){if(d.key===N)if(d.tag===4&&d.stateNode.containerInfo===w.containerInfo&&d.stateNode.implementation===w.implementation){n(g,d.sibling),d=i(d,w.children||[]),d.return=g,g=d;break e}else{n(g,d);break}else e(g,d);d=d.sibling}d=Gl(w,g.mode,k),d.return=g,g=d}return a(g);case Et:return N=w._init,O(g,d,N(w._payload),k)}if(Vr(w))return T(g,d,w,k);if(Mr(w))return S(g,d,w,k);wo(g,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,d!==null&&d.tag===6?(n(g,d.sibling),d=i(d,w),d.return=g,g=d):(n(g,d),d=zl(w,g.mode,k),d.return=g,g=d),a(g)):n(g,d)}return O}var Gn=Lp(!0),Bp=Lp(!1),wi={},nt=jt(wi),ui=jt(wi),ci=jt(wi);function on(t){if(t===wi)throw Error(R(174));return t}function ac(t,e){switch(V(ci,e),V(ui,t),V(nt,wi),t=e.nodeType,t){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:Zl(null,"");break;default:t=t===8?e.parentNode:e,e=t.namespaceURI||null,t=t.tagName,e=Zl(e,t)}z(nt),V(nt,e)}function jn(){z(nt),z(ui),z(ci)}function Fp(t){on(ci.current);var e=on(nt.current),n=Zl(e,t.type);e!==n&&(V(ui,t),V(nt,n))}function sc(t){ui.current===t&&(z(nt),z(ui))}var H=jt(0);function Wo(t){for(var e=t;e!==null;){if(e.tag===13){var n=e.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var Ul=[];function lc(){for(var t=0;tn?n:4,t(!0);var r=Al.transition;Al.transition={};try{t(!1),e()}finally{A=n,Al.transition=r}}function Qp(){return De().memoizedState}function $0(t,e,n){var r=Dt(t);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Xp(t))Zp(e,n);else if(n=Op(t,e,n,r),n!==null){var i=pe();Ye(n,t,r,i),eg(n,e,r)}}function H0(t,e,n){var r=Dt(t),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Xp(t))Zp(e,i);else{var o=t.alternate;if(t.lanes===0&&(o===null||o.lanes===0)&&(o=e.lastRenderedReducer,o!==null))try{var a=e.lastRenderedState,l=o(a,n);if(i.hasEagerState=!0,i.eagerState=l,We(l,a)){var u=e.interleaved;u===null?(i.next=i,ic(e)):(i.next=u.next,u.next=i),e.interleaved=i;return}}catch{}finally{}n=Op(t,e,i,r),n!==null&&(i=pe(),Ye(n,t,r,i),eg(n,e,r))}}function Xp(t){var e=t.alternate;return t===Y||e!==null&&e===Y}function Zp(t,e){Wr=_o=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function eg(t,e,n){if(n&4194240){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,ju(t,n)}}var Ko={readContext:qe,useCallback:le,useContext:le,useEffect:le,useImperativeHandle:le,useInsertionEffect:le,useLayoutEffect:le,useMemo:le,useReducer:le,useRef:le,useState:le,useDebugValue:le,useDeferredValue:le,useTransition:le,useMutableSource:le,useSyncExternalStore:le,useId:le,unstable_isNewReconciler:!1},Y0={readContext:qe,useCallback:function(t,e){return Ze().memoizedState=[t,e===void 0?null:e],t},useContext:qe,useEffect:cm,useImperativeHandle:function(t,e,n){return n=n!=null?n.concat([t]):null,Eo(4194308,4,Hp.bind(null,e,t),n)},useLayoutEffect:function(t,e){return Eo(4194308,4,t,e)},useInsertionEffect:function(t,e){return Eo(4,2,t,e)},useMemo:function(t,e){var n=Ze();return e=e===void 0?null:e,t=t(),n.memoizedState=[t,e],t},useReducer:function(t,e,n){var r=Ze();return e=n!==void 0?n(e):e,r.memoizedState=r.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},r.queue=t,t=t.dispatch=$0.bind(null,Y,t),[r.memoizedState,t]},useRef:function(t){var e=Ze();return t={current:t},e.memoizedState=t},useState:um,useDebugValue:mc,useDeferredValue:function(t){return Ze().memoizedState=t},useTransition:function(){var t=um(!1),e=t[0];return t=j0.bind(null,t[1]),Ze().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,n){var r=Y,i=Ze();if(G){if(n===void 0)throw Error(R(407));n=n()}else{if(n=e(),re===null)throw Error(R(349));cn&30||qp(r,e,n)}i.memoizedState=n;var o={value:n,getSnapshot:e};return i.queue=o,cm(Vp.bind(null,r,o,t),[t]),r.flags|=2048,mi(9,Dp.bind(null,r,o,n,e),void 0,null),n},useId:function(){var t=Ze(),e=re.identifierPrefix;if(G){var n=dt,r=ct;n=(r&~(1<<32-He(r)-1)).toString(32)+n,e=":"+e+"R"+n,n=di++,0<\/script>",t=t.removeChild(t.firstChild)):typeof r.is=="string"?t=a.createElement(n,{is:r.is}):(t=a.createElement(n),n==="select"&&(a=t,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):t=a.createElementNS(t,n),t[et]=e,t[li]=r,ug(t,e,!1,!1),e.stateNode=t;e:{switch(a=tu(n,r),n){case"dialog":b("cancel",t),b("close",t),i=r;break;case"iframe":case"object":case"embed":b("load",t),i=r;break;case"video":case"audio":for(i=0;iHn&&(e.flags|=128,r=!0,Ur(o,!1),e.lanes=4194304)}else{if(!r)if(t=Wo(a),t!==null){if(e.flags|=128,r=!0,n=t.updateQueue,n!==null&&(e.updateQueue=n,e.flags|=4),Ur(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!G)return ue(e),null}else 2*K()-o.renderingStartTime>Hn&&n!==1073741824&&(e.flags|=128,r=!0,Ur(o,!1),e.lanes=4194304);o.isBackwards?(a.sibling=e.child,e.child=a):(n=o.last,n!==null?n.sibling=a:e.child=a,o.last=a)}return o.tail!==null?(e=o.tail,o.rendering=e,o.tail=e.sibling,o.renderingStartTime=K(),e.sibling=null,n=H.current,V(H,r?n&1|2:n&1),e):(ue(e),null);case 22:case 23:return vc(),r=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==r&&(e.flags|=8192),r&&e.mode&1?Re&1073741824&&(ue(e),e.subtreeFlags&6&&(e.flags|=8192)):ue(e),null;case 24:return null;case 25:return null}throw Error(R(156,e.tag))}function tw(t,e){switch(Zu(e),e.tag){case 1:return Te(e.type)&&bo(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return jn(),z(ve),z(de),lc(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return sc(e),null;case 13:if(z(H),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(R(340));zn()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return z(H),null;case 4:return jn(),null;case 10:return rc(e.type._context),null;case 22:case 23:return vc(),null;case 24:return null;default:return null}}var To=!1,ce=!1,nw=typeof WeakSet=="function"?WeakSet:Set,x=null;function Cn(t,e){var n=t.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){_(t,e,r)}else n.current=null}function Nu(t,e,n){try{n()}catch(r){_(t,e,r)}}var vm=!1;function rw(t,e){if(du=Ao,t=gp(),Qu(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var a=0,l=-1,u=-1,c=0,f=0,v=t,y=null;t:for(;;){for(var m;v!==n||i!==0&&v.nodeType!==3||(l=a+i),v!==o||r!==0&&v.nodeType!==3||(u=a+r),v.nodeType===3&&(a+=v.nodeValue.length),(m=v.firstChild)!==null;)y=v,v=m;for(;;){if(v===t)break t;if(y===n&&++c===i&&(l=a),y===o&&++f===r&&(u=a),(m=v.nextSibling)!==null)break;v=y,y=v.parentNode}v=m}n=l===-1||u===-1?null:{start:l,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(fu={focusedElem:t,selectionRange:n},Ao=!1,x=e;x!==null;)if(e=x,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,x=t;else for(;x!==null;){e=x;try{var T=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(T!==null){var S=T.memoizedProps,O=T.memoizedState,g=e.stateNode,d=g.getSnapshotBeforeUpdate(e.elementType===e.type?S:Ge(e.type,S),O);g.__reactInternalSnapshotBeforeUpdate=d}break;case 3:var w=e.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(R(163))}}catch(k){_(e,e.return,k)}if(t=e.sibling,t!==null){t.return=e.return,x=t;break}x=e.return}return T=vm,vm=!1,T}function _r(t,e,n){var r=e.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&t)===t){var o=i.destroy;i.destroy=void 0,o!==void 0&&Nu(e,n,o)}i=i.next}while(i!==r)}}function ca(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var n=e=e.next;do{if((n.tag&t)===t){var r=n.create;n.destroy=r()}n=n.next}while(n!==e)}}function Ou(t){var e=t.ref;if(e!==null){var n=t.stateNode;switch(t.tag){case 5:t=n;break;default:t=n}typeof e=="function"?e(t):e.current=t}}function fg(t){var e=t.alternate;e!==null&&(t.alternate=null,fg(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[et],delete e[li],delete e[gu],delete e[D0],delete e[V0])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function mg(t){return t.tag===5||t.tag===3||t.tag===4}function Tm(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||mg(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Iu(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.nodeType===8?n.parentNode.insertBefore(t,e):n.insertBefore(t,e):(n.nodeType===8?(e=n.parentNode,e.insertBefore(t,n)):(e=n,e.appendChild(t)),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=Vo));else if(r!==4&&(t=t.child,t!==null))for(Iu(t,e,n),t=t.sibling;t!==null;)Iu(t,e,n),t=t.sibling}function Mu(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(r!==4&&(t=t.child,t!==null))for(Mu(t,e,n),t=t.sibling;t!==null;)Mu(t,e,n),t=t.sibling}var ie=null,je=!1;function Jt(t,e,n){for(n=n.child;n!==null;)pg(t,e,n),n=n.sibling}function pg(t,e,n){if(tt&&typeof tt.onCommitFiberUnmount=="function")try{tt.onCommitFiberUnmount(na,n)}catch{}switch(n.tag){case 5:ce||Cn(n,e);case 6:var r=ie,i=je;ie=null,Jt(t,e,n),ie=r,je=i,ie!==null&&(je?(t=ie,n=n.stateNode,t.nodeType===8?t.parentNode.removeChild(n):t.removeChild(n)):ie.removeChild(n.stateNode));break;case 18:ie!==null&&(je?(t=ie,n=n.stateNode,t.nodeType===8?Bl(t.parentNode,n):t.nodeType===1&&Bl(t,n),ri(t)):Bl(ie,n.stateNode));break;case 4:r=ie,i=je,ie=n.stateNode.containerInfo,je=!0,Jt(t,e,n),ie=r,je=i;break;case 0:case 11:case 14:case 15:if(!ce&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&(o&2||o&4)&&Nu(n,e,a),i=i.next}while(i!==r)}Jt(t,e,n);break;case 1:if(!ce&&(Cn(n,e),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){_(n,e,l)}Jt(t,e,n);break;case 21:Jt(t,e,n);break;case 22:n.mode&1?(ce=(r=ce)||n.memoizedState!==null,Jt(t,e,n),ce=r):Jt(t,e,n);break;default:Jt(t,e,n)}}function Pm(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var n=t.stateNode;n===null&&(n=t.stateNode=new nw),e.forEach(function(r){var i=fw.bind(null,t,r);n.has(r)||(n.add(r),r.then(i,i))})}}function ze(t,e){var n=e.deletions;if(n!==null)for(var r=0;ri&&(i=a),r&=~o}if(r=i,r=K()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ow(r/1960))-r,10t?16:t,Ct===null)var r=!1;else{if(t=Ct,Ct=null,Zo=0,U&6)throw Error(R(331));var i=U;for(U|=4,x=t.current;x!==null;){var o=x,a=o.child;if(x.flags&16){var l=o.deletions;if(l!==null){for(var u=0;uK()-hc?an(t,0):yc|=n),Pe(t,e)}function Sg(t,e){e===0&&(t.mode&1?(e=ao,ao<<=1,!(ao&130023424)&&(ao=4194304)):e=1);var n=pe();t=gt(t,e),t!==null&&(gi(t,e,n),Pe(t,n))}function dw(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),Sg(t,n)}function fw(t,e){var n=0;switch(t.tag){case 13:var r=t.stateNode,i=t.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=t.stateNode;break;default:throw Error(R(314))}r!==null&&r.delete(e),Sg(t,n)}var kg;kg=function(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps||ve.current)we=!0;else{if(!(t.lanes&n)&&!(e.flags&128))return we=!1,Z0(t,e,n);we=!!(t.flags&131072)}else we=!1,G&&e.flags&1048576&&Jp(e,jo,e.index);switch(e.lanes=0,e.tag){case 2:var r=e.type;No(t,e),t=e.pendingProps;var i=bn(e,de.current);qn(e,n),i=cc(null,e,r,t,i,n);var o=dc();return e.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,Te(r)?(o=!0,zo(e)):o=!1,e.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,oc(e),i.updater=la,e.stateNode=i,i._reactInternals=e,Pu(e,r,t,n),e=Ru(null,e,r,!0,o,n)):(e.tag=0,G&&o&&Xu(e),me(null,e,i,n),e=e.child),e;case 16:r=e.elementType;e:{switch(No(t,e),t=e.pendingProps,i=r._init,r=i(r._payload),e.type=r,i=e.tag=pw(r),t=Ge(r,t),i){case 0:e=ku(null,e,r,t,n);break e;case 1:e=ym(null,e,r,t,n);break e;case 11:e=pm(null,e,r,t,n);break e;case 14:e=gm(null,e,r,Ge(r.type,t),n);break e}throw Error(R(306,r,""))}return e;case 0:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Ge(r,i),ku(t,e,r,i,n);case 1:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Ge(r,i),ym(t,e,r,i,n);case 3:e:{if(ag(e),t===null)throw Error(R(387));r=e.pendingProps,o=e.memoizedState,i=o.element,Ip(t,e),Yo(e,r,null,n);var a=e.memoizedState;if(r=a.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},e.updateQueue.baseState=o,e.memoizedState=o,e.flags&256){i=$n(Error(R(423)),e),e=hm(t,e,r,n,i);break e}else if(r!==i){i=$n(Error(R(424)),e),e=hm(t,e,r,n,i);break e}else for(xe=Ut(e.stateNode.containerInfo.firstChild),Je=e,G=!0,$e=null,n=Bp(e,null,r,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(zn(),r===i){e=yt(t,e,n);break e}me(t,e,r,n)}e=e.child}return e;case 5:return Fp(e),t===null&&wu(e),r=e.type,i=e.pendingProps,o=t!==null?t.memoizedProps:null,a=i.children,mu(r,i)?a=null:o!==null&&mu(r,o)&&(e.flags|=32),og(t,e),me(t,e,a,n),e.child;case 6:return t===null&&wu(e),null;case 13:return sg(t,e,n);case 4:return ac(e,e.stateNode.containerInfo),r=e.pendingProps,t===null?e.child=Gn(e,null,r,n):me(t,e,r,n),e.child;case 11:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Ge(r,i),pm(t,e,r,i,n);case 7:return me(t,e,e.pendingProps,n),e.child;case 8:return me(t,e,e.pendingProps.children,n),e.child;case 12:return me(t,e,e.pendingProps.children,n),e.child;case 10:e:{if(r=e.type._context,i=e.pendingProps,o=e.memoizedProps,a=i.value,V($o,r._currentValue),r._currentValue=a,o!==null)if(We(o.value,a)){if(o.children===i.children&&!ve.current){e=yt(t,e,n);break e}}else for(o=e.child,o!==null&&(o.return=e);o!==null;){var l=o.dependencies;if(l!==null){a=o.child;for(var u=l.firstContext;u!==null;){if(u.context===r){if(o.tag===1){u=ft(-1,n&-n),u.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var f=c.pending;f===null?u.next=u:(u.next=f.next,f.next=u),c.pending=u}}o.lanes|=n,u=o.alternate,u!==null&&(u.lanes|=n),vu(o.return,n,e),l.lanes|=n;break}u=u.next}}else if(o.tag===10)a=o.type===e.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(R(341));a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),vu(a,n,e),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===e){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}me(t,e,i.children,n),e=e.child}return e;case 9:return i=e.type,r=e.pendingProps.children,qn(e,n),i=qe(i),r=r(i),e.flags|=1,me(t,e,r,n),e.child;case 14:return r=e.type,i=Ge(r,e.pendingProps),i=Ge(r.type,i),gm(t,e,r,i,n);case 15:return rg(t,e,e.type,e.pendingProps,n);case 17:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Ge(r,i),No(t,e),e.tag=1,Te(r)?(t=!0,zo(e)):t=!1,qn(e,n),Cp(e,r,i),Pu(e,r,i,n),Ru(null,e,r,!0,t,n);case 19:return lg(t,e,n);case 22:return ig(t,e,n)}throw Error(R(156,e.tag))};function Rg(t,e){return Km(t,e)}function mw(t,e,n,r){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ue(t,e,n,r){return new mw(t,e,n,r)}function Pc(t){return t=t.prototype,!(!t||!t.isReactComponent)}function pw(t){if(typeof t=="function")return Pc(t)?1:0;if(t!=null){if(t=t.$$typeof,t===Vu)return 11;if(t===bu)return 14}return 2}function Vt(t,e){var n=t.alternate;return n===null?(n=Ue(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&14680064,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n}function Mo(t,e,n,r,i,o){var a=2;if(r=t,typeof t=="function")Pc(t)&&(a=1);else if(typeof t=="string")a=5;else e:switch(t){case kn:return sn(n.children,i,o,e);case Du:a=8,i|=8;break;case $l:return t=Ue(12,n,e,i|2),t.elementType=$l,t.lanes=o,t;case Hl:return t=Ue(13,n,e,i),t.elementType=Hl,t.lanes=o,t;case Yl:return t=Ue(19,n,e,i),t.elementType=Yl,t.lanes=o,t;case Lm:return fa(n,i,o,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case Mm:a=10;break e;case Cm:a=9;break e;case Vu:a=11;break e;case bu:a=14;break e;case Et:a=16,r=null;break e}throw Error(R(130,t==null?t:typeof t,""))}return e=Ue(a,n,e,i),e.elementType=t,e.type=r,e.lanes=o,e}function sn(t,e,n,r){return t=Ue(7,t,r,e),t.lanes=n,t}function fa(t,e,n,r){return t=Ue(22,t,r,e),t.elementType=Lm,t.lanes=n,t.stateNode={isHidden:!1},t}function zl(t,e,n){return t=Ue(6,t,null,e),t.lanes=n,t}function Gl(t,e,n){return e=Ue(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function gw(t,e,n,r,i){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Jl(0),this.expirationTimes=Jl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Jl(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Sc(t,e,n,r,i,o,a,l,u){return t=new gw(t,e,n,l,u),e===1?(e=1,o===!0&&(e|=8)):e=0,o=Ue(3,null,null,e),t.current=o,o.stateNode=t,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},oc(o),t}function yw(t,e,n){var r=3{"use strict";function Og(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Og)}catch(t){console.error(t)}}Og(),Ig.exports=Ng()});var Lg=ot(Jc=>{"use strict";var Cg=Mg();Jc.createRoot=Cg.createRoot,Jc.hydrateRoot=Cg.hydrateRoot;var oT});var Wy=ot(sl=>{"use strict";var jv=st(),$v=Symbol.for("react.element"),Hv=Symbol.for("react.fragment"),Yv=Object.prototype.hasOwnProperty,Wv=jv.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,_v={key:!0,ref:!0,__self:!0,__source:!0};function Yy(t,e,n){var r,i={},o=null,a=null;n!==void 0&&(o=""+n),e.key!==void 0&&(o=""+e.key),e.ref!==void 0&&(a=e.ref);for(r in e)Yv.call(e,r)&&!_v.hasOwnProperty(r)&&(i[r]=e[r]);if(t&&t.defaultProps)for(r in e=t.defaultProps,e)i[r]===void 0&&(i[r]=e[r]);return{$$typeof:$v,type:t,key:o,ref:a,props:i,_owner:Wv.current}}sl.Fragment=Hv;sl.jsx=Yy;sl.jsxs=Yy});var Kd=ot((mR,_y)=>{"use strict";_y.exports=Wy()});var Xt=at(st(),1),Ky=at(Lg(),1);function j(t,e){if(!t)throw new Error(e)}var Pw=34028234663852886e22,Sw=-34028234663852886e22,kw=4294967295,Rw=2147483647,xw=-2147483648;function _n(t){if(typeof t!="number")throw new Error("invalid int 32: "+typeof t);if(!Number.isInteger(t)||t>Rw||tkw||t<0)throw new Error("invalid uint 32: "+t)}function ha(t){if(typeof t!="number")throw new Error("invalid float 32: "+typeof t);if(Number.isFinite(t)&&(t>Pw||t({no:i.no,name:i.name,localName:t[i.no]})),r)}function Nc(t,e,n){let r=Object.create(null),i=Object.create(null),o=[];for(let a of e){let l=Ag(a);o.push(l),r[a.name]=l,i[a.no]=l}return{typeName:t,values:o,findName(a){return r[a]},findNumber(a){return i[a]}}}function Ug(t,e,n){let r={};for(let i of e){let o=Ag(i);r[o.localName]=o.no,r[o.no]=o.localName}return Ec(r,t,e,n),r}function Ag(t){return"localName"in t?t:Object.assign(Object.assign({},t),{localName:t.name})}var p=class{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,n){let r=this.getType(),i=r.runtime.bin,o=i.makeReadOptions(n);return i.readMessage(this,o.readerFactory(e),e.byteLength,o),this}fromJson(e,n){let r=this.getType(),i=r.runtime.json,o=i.makeReadOptions(n);return i.readMessage(r,e,o,this),this}fromJsonString(e,n){let r;try{r=JSON.parse(e)}catch(i){throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${i instanceof Error?i.message:String(i)}`)}return this.fromJson(r,n)}toBinary(e){let n=this.getType(),r=n.runtime.bin,i=r.makeWriteOptions(e),o=i.writerFactory();return r.writeMessage(this,o,i),o.finish()}toJson(e){let n=this.getType(),r=n.runtime.json,i=r.makeWriteOptions(e);return r.writeMessage(this,i)}toJsonString(e){var n;let r=this.toJson(e);return JSON.stringify(r,null,(n=e?.prettySpaces)!==null&&n!==void 0?n:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}};function qg(t,e,n,r){var i;let o=(i=r?.localName)!==null&&i!==void 0?i:e.substring(e.lastIndexOf(".")+1),a={[o]:function(l){t.util.initFields(this),t.util.initPartial(l,this)}}[o];return Object.setPrototypeOf(a.prototype,new p),Object.assign(a,{runtime:t,typeName:e,fields:t.util.newFieldList(n),fromBinary(l,u){return new a().fromBinary(l,u)},fromJson(l,u){return new a().fromJson(l,u)},fromJsonString(l,u){return new a().fromJsonString(l,u)},equals(l,u){return t.util.equals(a,l,u)}}),a}function wa(t,e,n,r){return{syntax:t,json:e,bin:n,util:r,makeMessageType(i,o,a){return qg(this,i,o,a)},makeEnum:Ug,makeEnumType:Nc,getEnumType:Fg}}var P;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(P||(P={}));var Ve;(function(t){t[t.BIGINT=0]="BIGINT",t[t.STRING=1]="STRING"})(Ve||(Ve={}));function Vg(){let t=0,e=0;for(let r=0;r<28;r+=7){let i=this.buf[this.pos++];if(t|=(i&127)<>4,!(n&128))return this.assertBounds(),[t,e];for(let r=3;r<=31;r+=7){let i=this.buf[this.pos++];if(e|=(i&127)<>>o,l=!(!(a>>>7)&&e==0),u=(l?a|128:a)&255;if(n.push(u),!l)return}let r=t>>>28&15|(e&7)<<4,i=!!(e>>3);if(n.push((i?r|128:r)&255),!!i){for(let o=3;o<31;o=o+7){let a=e>>>o,l=!!(a>>>7),u=(l?a|128:a)&255;if(n.push(u),!l)return}n.push(e>>>31&1)}}var va=4294967296;function Oc(t){let e=t[0]==="-";e&&(t=t.slice(1));let n=1e6,r=0,i=0;function o(a,l){let u=Number(t.slice(a,l));i*=n,r=r*n+u,r>=va&&(i=i+(r/va|0),r=r%va)}return o(-24,-18),o(-18,-12),o(-12,-6),o(-6),e?zg(r,i):Mc(r,i)}function bg(t,e){let n=Mc(t,e),r=n.hi&2147483648;r&&(n=zg(n.lo,n.hi));let i=Ic(n.lo,n.hi);return r?"-"+i:i}function Ic(t,e){if({lo:t,hi:e}=Jw(t,e),e<=2097151)return String(va*e+t);let n=t&16777215,r=(t>>>24|e<<8)&16777215,i=e>>16&65535,o=n+r*6777216+i*6710656,a=r+i*8147497,l=i*2,u=1e7;return o>=u&&(a+=Math.floor(o/u),o%=u),a>=u&&(l+=Math.floor(a/u),a%=u),l.toString()+Dg(a)+Dg(o)}function Jw(t,e){return{lo:t>>>0,hi:e>>>0}}function Mc(t,e){return{lo:t|0,hi:e|0}}function zg(t,e){return e=~e,t?t=~t+1:e+=1,Mc(t,e)}var Dg=t=>{let e=String(t);return"0000000".slice(e.length)+e};function Cc(t,e){if(t>=0){for(;t>127;)e.push(t&127|128),t=t>>>7;e.push(t)}else{for(let n=0;n<9;n++)e.push(t&127|128),t=t>>7;e.push(1)}}function Gg(){let t=this.buf[this.pos++],e=t&127;if(!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<7,!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<14,!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<21,!(t&128))return this.assertBounds(),e;t=this.buf[this.pos++],e|=(t&15)<<28;for(let n=5;t&128&&n<10;n++)t=this.buf[this.pos++];if(t&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function Ew(){let t=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){let i=BigInt("-9223372036854775808"),o=BigInt("9223372036854775807"),a=BigInt("0"),l=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(u){let c=typeof u=="bigint"?u:BigInt(u);if(c>o||cl||cj(/^-?[0-9]+$/.test(i),`int64 invalid: ${i}`),r=i=>j(/^[0-9]+$/.test(i),`uint64 invalid: ${i}`);return{zero:"0",supported:!1,parse(i){return typeof i!="string"&&(i=i.toString()),n(i),i},uParse(i){return typeof i!="string"&&(i=i.toString()),r(i),i},enc(i){return typeof i!="string"&&(i=i.toString()),n(i),Oc(i)},uEnc(i){return typeof i!="string"&&(i=i.toString()),r(i),Oc(i)},dec(i,o){return bg(i,o)},uDec(i,o){return Ic(i,o)}}}var L=Ew();var q;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(q||(q={}));var Pa=class{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let i=0;i>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(vi(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return _n(e),Cc(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let n=this.textEncoder.encode(e);return this.uint32(n.byteLength),this.raw(n)}float(e){ha(e);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,e,!0),this.raw(n)}double(e){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,e,!0),this.raw(n)}fixed32(e){vi(e);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,e,!0),this.raw(n)}sfixed32(e){_n(e);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,e,!0),this.raw(n)}sint32(e){return _n(e),e=(e<<1^e>>31)>>>0,Cc(e,this.buf),this}sfixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),i=L.enc(e);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(n)}fixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),i=L.uEnc(e);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(n)}int64(e){let n=L.enc(e);return Ta(n.lo,n.hi,this.buf),this}sint64(e){let n=L.enc(e),r=n.hi>>31,i=n.lo<<1^r,o=(n.hi<<1|n.lo>>>31)^r;return Ta(i,o,this.buf),this}uint64(e){let n=L.uEnc(e);return Ta(n.lo,n.hi,this.buf),this}},Sa=class{constructor(e,n){this.varint64=Vg,this.uint32=Gg,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=n??new TextDecoder}tag(){let e=this.uint32(),n=e>>>3,r=e&7;if(n<=0||r<0||r>5)throw new Error("illegal tag: field no "+n+" wire type "+r);return[n,r]}skip(e){let n=this.pos;switch(e){case q.Varint:for(;this.buf[this.pos++]&128;);break;case q.Bit64:this.pos+=4;case q.Bit32:this.pos+=4;break;case q.LengthDelimited:let r=this.uint32();this.pos+=r;break;case q.StartGroup:let i;for(;(i=this.tag()[1])!==q.EndGroup;)this.skip(i);break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return L.dec(...this.varint64())}uint64(){return L.uDec(...this.varint64())}sint64(){let[e,n]=this.varint64(),r=-(e&1);return e=(e>>>1|(n&1)<<31)^r,n=n>>>1^r,L.dec(e,n)}bool(){let[e,n]=this.varint64();return e!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return L.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return L.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),n=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(n,n+e)}string(){return this.textDecoder.decode(this.bytes())}};function gn(t,e){return e instanceof p||!t.fieldWrapper?e:t.fieldWrapper.wrapField(e)}var ET={"google.protobuf.DoubleValue":P.DOUBLE,"google.protobuf.FloatValue":P.FLOAT,"google.protobuf.Int64Value":P.INT64,"google.protobuf.UInt64Value":P.UINT64,"google.protobuf.Int32Value":P.INT32,"google.protobuf.UInt32Value":P.UINT32,"google.protobuf.BoolValue":P.BOOL,"google.protobuf.StringValue":P.STRING,"google.protobuf.BytesValue":P.BYTES};function wt(t,e,n){if(e===n)return!0;if(t==P.BYTES){if(!(e instanceof Uint8Array)||!(n instanceof Uint8Array)||e.length!==n.length)return!1;for(let r=0;rnew Sa(t)},$g={writeUnknownFields:!0,writerFactory:()=>new Pa};function Nw(t){return t?Object.assign(Object.assign({},jg),t):jg}function Ow(t){return t?Object.assign(Object.assign({},$g),t):$g}function xa(){return{makeReadOptions:Nw,makeWriteOptions:Ow,listUnknownFields(t){var e;return(e=t[Kn])!==null&&e!==void 0?e:[]},discardUnknownFields(t){delete t[Kn]},writeUnknownFields(t,e){let r=t[Kn];if(r)for(let i of r)e.tag(i.no,i.wireType).raw(i.data)},onUnknownField(t,e,n,r){let i=t;Array.isArray(i[Kn])||(i[Kn]=[]),i[Kn].push({no:e,wireType:n,data:r})},readMessage(t,e,n,r,i){let o=t.getType(),a=i?e.len:e.pos+n,l,u;for(;e.pos0&&(T=Mw),v){let d=f[y];if(u==q.LengthDelimited&&m!=P.STRING&&m!=P.BYTES){let w=e.uint32()+e.pos;for(;e.pos>4,a=o,i=2;break;case 2:n[r++]=(a&15)<<4|(o&60)>>2,a=o,i=3;break;case 3:n[r++]=(a&3)<<6|o,i=0;break}}if(i==1)throw Error("invalid base64 string.");return n.subarray(0,r)},enc(t){let e="",n=0,r,i=0;for(let o=0;o>2],i=(r&3)<<4,n=1;break;case 1:e+=Tt[i|r>>4],i=(r&15)<<2,n=2;break;case 2:e+=Tt[i|r>>6],e+=Tt[r&63],n=0;break}return n&&(e+=Tt[i],e+="=",n==1&&(e+="=")),e}};var Yg={ignoreUnknownFields:!1},Wg={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function Cw(t){return t?Object.assign(Object.assign({},Yg),t):Yg}function Lw(t){return t?Object.assign(Object.assign({},Wg),t):Wg}function Oa(t){let e=t(Bw,_g);return{makeReadOptions:Cw,makeWriteOptions:Lw,readMessage(n,r,i,o){if(r==null||Array.isArray(r)||typeof r!="object")throw new Error(`cannot decode message ${n.typeName} from JSON: ${this.debug(r)}`);o=o??new n;let a={};for(let[l,u]of Object.entries(r)){let c=n.fields.findJsonName(l);if(!c){if(!i.ignoreUnknownFields)throw new Error(`cannot decode message ${n.typeName} from JSON: key "${l}" is unknown`);continue}let f=c.localName,v=o;if(c.oneof){if(u===null&&c.kind=="scalar")continue;let y=a[c.oneof.localName];if(y)throw new Error(`cannot decode message ${n.typeName} from JSON: multiple keys for oneof "${c.oneof.name}" present: "${y}", "${l}"`);a[c.oneof.localName]=l,v=v[c.oneof.localName]={case:f},f="value"}if(c.repeated){if(u===null)continue;if(!Array.isArray(u))throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`);let y=v[f];for(let m of u){if(m===null)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(m)}`);let T;switch(c.kind){case"message":T=c.T.fromJson(m,i);break;case"enum":if(T=Bc(c.T,m,i.ignoreUnknownFields),T===void 0)continue;break;case"scalar":try{T=Pi(c.T,m,c.L)}catch(S){let O=`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(m)}`;throw S instanceof Error&&S.message.length>0&&(O+=`: ${S.message}`),new Error(O)}break}y.push(T)}}else if(c.kind=="map"){if(u===null)continue;if(Array.isArray(u)||typeof u!="object")throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`);let y=v[f];for(let[m,T]of Object.entries(u)){if(T===null)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: map value null`);let S;switch(c.V.kind){case"message":S=c.V.T.fromJson(T,i);break;case"enum":if(S=Bc(c.V.T,T,i.ignoreUnknownFields),S===void 0)continue;break;case"scalar":try{S=Pi(c.V.T,T,Ve.BIGINT)}catch(O){let g=`cannot decode map value for field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`;throw O instanceof Error&&O.message.length>0&&(g+=`: ${O.message}`),new Error(g)}break}try{y[Pi(c.K,c.K==P.BOOL?m=="true"?!0:m=="false"?!1:m:m,Ve.BIGINT).toString()]=S}catch(O){let g=`cannot decode map key for field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`;throw O instanceof Error&&O.message.length>0&&(g+=`: ${O.message}`),new Error(g)}}}else switch(c.kind){case"message":let y=c.T;if(u===null&&y.typeName!="google.protobuf.Value"){if(c.oneof)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: null is invalid for oneof field "${l}"`);continue}v[f]instanceof p?v[f].fromJson(u,i):(v[f]=y.fromJson(u,i),y.fieldWrapper&&!c.oneof&&(v[f]=y.fieldWrapper.unwrapField(v[f])));break;case"enum":let m=Bc(c.T,u,i.ignoreUnknownFields);m!==void 0&&(v[f]=m);break;case"scalar":try{v[f]=Pi(c.T,u,c.L)}catch(T){let S=`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`;throw T instanceof Error&&T.message.length>0&&(S+=`: ${T.message}`),new Error(S)}break}}return o},writeMessage(n,r){let i=n.getType(),o={},a;try{for(let l of i.fields.byMember()){let u;if(l.kind=="oneof"){let c=n[l.localName];if(c.value===void 0)continue;if(a=l.findField(c.case),!a)throw"oneof case not found: "+c.case;u=e(a,c.value,r)}else a=l,u=e(a,n[a.localName],r);u!==void 0&&(o[r.useProtoFieldName?a.name:a.jsonName]=u)}}catch(l){let u=a?`cannot encode field ${i.typeName}.${a.name} to JSON`:`cannot encode message ${i.typeName} to JSON`,c=l instanceof Error?l.message:String(l);throw new Error(u+(c.length>0?`: ${c}`:""))}return o},readScalar:Pi,writeScalar:_g,debug:Kg}}function Kg(t){if(t===null)return"null";switch(typeof t){case"object":return Array.isArray(t)?"array":"object";case"string":return t.length>100?"string":`"${t.split('"').join('\\"')}"`;default:return String(t)}}function Pi(t,e,n){switch(t){case P.DOUBLE:case P.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""||typeof e=="string"&&e.trim().length!==e.length||typeof e!="string"&&typeof e!="number")break;let r=Number(e);if(Number.isNaN(r)||!Number.isFinite(r))break;return t==P.FLOAT&&ha(r),r;case P.INT32:case P.FIXED32:case P.SFIXED32:case P.SINT32:case P.UINT32:if(e===null)return 0;let i;if(typeof e=="number"?i=e:typeof e=="string"&&e.length>0&&e.trim().length===e.length&&(i=Number(e)),i===void 0)break;return t==P.UINT32?vi(i):_n(i),i;case P.INT64:case P.SFIXED64:case P.SINT64:if(e===null)return L.zero;if(typeof e!="number"&&typeof e!="string")break;let o=L.parse(e);return n?o.toString():o;case P.FIXED64:case P.UINT64:if(e===null)return L.zero;if(typeof e!="number"&&typeof e!="string")break;let a=L.uParse(e);return n?a.toString():a;case P.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case P.STRING:if(e===null)return"";if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case P.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return Ht.dec(e)}throw new Error}function Bc(t,e,n){if(e===null)return 0;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":let r=t.findName(e);if(r||n)return r?.no;break}throw new Error(`cannot decode enum ${t.typeName} from JSON: ${Kg(e)}`)}function Bw(t,e,n,r){var i;if(e===void 0)return e;if(e===0&&!n)return;if(r)return e;if(t.typeName=="google.protobuf.NullValue")return null;let o=t.findNumber(e);return(i=o?.name)!==null&&i!==void 0?i:e}function _g(t,e,n){if(e!==void 0)switch(t){case P.INT32:case P.SFIXED32:case P.SINT32:case P.FIXED32:case P.UINT32:return j(typeof e=="number"),e!=0||n?e:void 0;case P.FLOAT:case P.DOUBLE:return j(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e!==0||n?e:void 0;case P.STRING:return j(typeof e=="string"),e.length>0||n?e:void 0;case P.BOOL:return j(typeof e=="boolean"),e||n?e:void 0;case P.UINT64:case P.FIXED64:case P.INT64:case P.SFIXED64:case P.SINT64:return j(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),n||e!=0?e.toString(10):void 0;case P.BYTES:return j(e instanceof Uint8Array),n||e.byteLength>0?Ht.enc(e):void 0}}function Qg(){return Oa((t,e)=>function(r,i,o){if(r.kind=="map"){let a={};switch(r.V.kind){case"scalar":for(let[u,c]of Object.entries(i)){let f=e(r.V.T,c,!0);j(f!==void 0),a[u.toString()]=f}break;case"message":for(let[u,c]of Object.entries(i))a[u.toString()]=c.toJson(o);break;case"enum":let l=r.V.T;for(let[u,c]of Object.entries(i)){j(c===void 0||typeof c=="number");let f=t(l,c,!0,o.enumAsInteger);j(f!==void 0),a[u.toString()]=f}break}return o.emitDefaultValues||Object.keys(a).length>0?a:void 0}else if(r.repeated){let a=[];switch(r.kind){case"scalar":for(let l=0;l0?a:void 0}else switch(r.kind){case"scalar":return e(r.T,i,!!r.oneof||r.opt||o.emitDefaultValues);case"enum":return t(r.T,i,!!r.oneof||r.opt||o.emitDefaultValues,o.enumAsInteger);case"message":return i!==void 0?gn(r.T,i).toJson(o):void 0}})}function Ma(){return{setEnumType:Ec,initPartial(t,e){if(t===void 0)return;let n=e.getType();for(let r of n.fields.byMember()){let i=r.localName,o=e,a=t;if(a[i]!==void 0)switch(r.kind){case"oneof":let l=a[i].case;if(l===void 0)continue;let u=r.findField(l),c=a[i].value;u&&u.kind=="message"&&!(c instanceof u.T)?c=new u.T(c):u&&u.kind==="scalar"&&u.T===P.BYTES&&(c=Si(c)),o[i]={case:l,value:c};break;case"scalar":case"enum":let f=a[i];r.T===P.BYTES&&(f=r.repeated?f.map(Si):Si(f)),o[i]=f;break;case"map":switch(r.V.kind){case"scalar":case"enum":if(r.V.T===P.BYTES)for(let[m,T]of Object.entries(a[i]))o[i][m]=Si(T);else Object.assign(o[i],a[i]);break;case"message":let y=r.V.T;for(let m of Object.keys(a[i])){let T=a[i][m];y.fieldWrapper||(T=new y(T)),o[i][m]=T}break}break;case"message":let v=r.T;if(r.repeated)o[i]=a[i].map(y=>y instanceof v?y:new v(y));else if(a[i]!==void 0){let y=a[i];v.fieldWrapper?v.typeName==="google.protobuf.BytesValue"?o[i]=Si(y):o[i]=y:o[i]=y instanceof v?y:new v(y)}break}}},equals(t,e,n){return e===n?!0:!e||!n?!1:t.fields.byMember().every(r=>{let i=e[r.localName],o=n[r.localName];if(r.repeated){if(i.length!==o.length)return!1;switch(r.kind){case"message":return i.every((a,l)=>r.T.equals(a,o[l]));case"scalar":return i.every((a,l)=>wt(r.T,a,o[l]));case"enum":return i.every((a,l)=>wt(P.INT32,a,o[l]))}throw new Error(`repeated cannot contain ${r.kind}`)}switch(r.kind){case"message":return r.T.equals(i,o);case"enum":return wt(P.INT32,i,o);case"scalar":return wt(r.T,i,o);case"oneof":if(i.case!==o.case)return!1;let a=r.findField(i.case);if(a===void 0)return!0;switch(a.kind){case"message":return a.T.equals(i.value,o.value);case"enum":return wt(P.INT32,i.value,o.value);case"scalar":return wt(a.T,i.value,o.value)}throw new Error(`oneof cannot contain ${a.kind}`);case"map":let l=Object.keys(i).concat(Object.keys(o));switch(r.V.kind){case"message":let u=r.V.T;return l.every(f=>u.equals(i[f],o[f]));case"enum":return l.every(f=>wt(P.INT32,i[f],o[f]));case"scalar":let c=r.V.T;return l.every(f=>wt(c,i[f],o[f]))}break}})},clone(t){let e=t.getType(),n=new e,r=n;for(let i of e.fields.byMember()){let o=t[i.localName],a;if(i.repeated)a=o.map(Ia);else if(i.kind=="map"){a=r[i.localName];for(let[l,u]of Object.entries(o))a[l]=Ia(u)}else i.kind=="oneof"?a=i.findField(o.case)?{case:o.case,value:Ia(o.value)}:{case:void 0}:a=Ia(o);r[i.localName]=a}return n}}}function Ia(t){if(t===void 0)return t;if(t instanceof p)return t.clone();if(t instanceof Uint8Array){let e=new Uint8Array(t.byteLength);return e.set(t),e}return t}function Si(t){return t instanceof Uint8Array?t:new Uint8Array(t)}var Xn=class{constructor(e,n){this._fields=e,this._normalizer=n}findJsonName(e){if(!this.jsonNames){let n={};for(let r of this.list())n[r.jsonName]=n[r.name]=r;this.jsonNames=n}return this.jsonNames[e]}find(e){if(!this.numbers){let n={};for(let r of this.list())n[r.no]=r;this.numbers=n}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,n)=>e.no-n.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];let e=this.members,n;for(let r of this.list())r.oneof?r.oneof!==n&&(n=r.oneof,e.push(n)):e.push(r)}return this.members}};function ki(t,e){let n=Zg(t);return e?n:qw(Aw(n))}function Xg(t){return ki(t,!1)}var Ca=Zg;function Zg(t){let e=!1,n=[];for(let r=0;r`${t}$`,Aw=t=>Uw.has(t)?ey(t):t,qw=t=>Fw.has(t)?ey(t):t;var Zn=class{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=Xg(e)}addField(e){j(e.oneof===this,`field ${e.name} not one of ${this.name}`),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let n=0;n0?`: ${l}`:""))}return n.writeUnknownFields&&this.writeUnknownFields(t,e),e}})}function ny(){return Oa((t,e)=>function(r,i,o){if(r.kind=="map"){let a={};switch(r.V.kind){case"scalar":for(let[u,c]of Object.entries(i)){let f=e(r.V.T,c,!0);j(f!==void 0),a[u.toString()]=f}break;case"message":for(let[u,c]of Object.entries(i))a[u.toString()]=c.toJson(o);break;case"enum":let l=r.V.T;for(let[u,c]of Object.entries(i)){j(c===void 0||typeof c=="number");let f=t(l,c,!0,o.enumAsInteger);j(f!==void 0),a[u.toString()]=f}break}return o.emitDefaultValues||Object.keys(a).length>0?a:void 0}else if(r.repeated){let a=[];switch(r.kind){case"scalar":for(let l=0;l0?a:void 0}else{if(i===void 0){if(!r.oneof&&!r.opt)throw"required field not set";return}switch(r.kind){case"scalar":return e(r.T,i,!0);case"enum":return t(r.T,i,!0,o.enumAsInteger);case"message":return gn(r.T,i).toJson(o)}}})}var h=wa("proto2",ny(),ty(),Object.assign(Object.assign({},Ma()),{newFieldList(t){return new Xn(t,Vw)},initFields(t){for(let e of t.getType().fields.byMember()){let n=e.localName,r=t;if(e.repeated){r[n]=[];continue}switch(e.kind){case"oneof":r[n]={case:void 0};break;case"map":r[n]={};break;case"scalar":case"enum":case"message":break}}}}));function Vw(t){var e,n,r,i,o;let a=[],l;for(let u of typeof t=="function"?t():t){let c=u;if(c.localName=ki(u.name,u.oneof!==void 0),c.jsonName=(e=u.jsonName)!==null&&e!==void 0?e:Ca(u.name),c.repeated=(n=u.repeated)!==null&&n!==void 0?n:!1,u.kind=="scalar"&&(c.L=(r=u.L)!==null&&r!==void 0?r:Ve.BIGINT),u.oneof!==void 0){let f=typeof u.oneof=="string"?u.oneof:u.oneof.name;(!l||l.name!=f)&&(l=new Zn(f)),c.oneof=l,l.addField(c)}u.kind=="message"&&(c.delimited=(i=u.delimited)!==null&&i!==void 0?i:!1),c.packed=(o=u.packed)!==null&&o!==void 0?o:!1,a.push(c)}return a}var E;(function(t){t[t.Unary=0]="Unary",t[t.ServerStreaming=1]="ServerStreaming",t[t.ClientStreaming=2]="ClientStreaming",t[t.BiDiStreaming=3]="BiDiStreaming"})(E||(E={}));var Ri;(function(t){t[t.NoSideEffects=1]="NoSideEffects",t[t.Idempotent=2]="Idempotent"})(Ri||(Ri={}));var Yt;(function(t){t[t.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",t[t.EDITION_PROTO2=998]="EDITION_PROTO2",t[t.EDITION_PROTO3=999]="EDITION_PROTO3",t[t.EDITION_2023=1e3]="EDITION_2023",t[t.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",t[t.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",t[t.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",t[t.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",t[t.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY"})(Yt||(Yt={}));h.util.setEnumType(Yt,"google.protobuf.Edition",[{no:0,name:"EDITION_UNKNOWN"},{no:998,name:"EDITION_PROTO2"},{no:999,name:"EDITION_PROTO3"},{no:1e3,name:"EDITION_2023"},{no:1,name:"EDITION_1_TEST_ONLY"},{no:2,name:"EDITION_2_TEST_ONLY"},{no:99997,name:"EDITION_99997_TEST_ONLY"},{no:99998,name:"EDITION_99998_TEST_ONLY"},{no:99999,name:"EDITION_99999_TEST_ONLY"}]);var xi=class t extends p{constructor(e){super(),this.file=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};xi.runtime=h;xi.typeName="google.protobuf.FileDescriptorSet";xi.fields=h.util.newFieldList(()=>[{no:1,name:"file",kind:"message",T:er,repeated:!0}]);var er=class t extends p{constructor(e){super(),this.dependency=[],this.publicDependency=[],this.weakDependency=[],this.messageType=[],this.enumType=[],this.service=[],this.extension=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};er.runtime=h;er.typeName="google.protobuf.FileDescriptorProto";er.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"package",kind:"scalar",T:9,opt:!0},{no:3,name:"dependency",kind:"scalar",T:9,repeated:!0},{no:10,name:"public_dependency",kind:"scalar",T:5,repeated:!0},{no:11,name:"weak_dependency",kind:"scalar",T:5,repeated:!0},{no:4,name:"message_type",kind:"message",T:rt,repeated:!0},{no:5,name:"enum_type",kind:"message",T:Pt,repeated:!0},{no:6,name:"service",kind:"message",T:lr,repeated:!0},{no:7,name:"extension",kind:"message",T:Wt,repeated:!0},{no:8,name:"options",kind:"message",T:cr,opt:!0},{no:9,name:"source_code_info",kind:"message",T:Pr,opt:!0},{no:12,name:"syntax",kind:"scalar",T:9,opt:!0},{no:14,name:"edition",kind:"enum",T:h.getEnumType(Yt),opt:!0}]);var rt=class t extends p{constructor(e){super(),this.field=[],this.extension=[],this.nestedType=[],this.enumType=[],this.extensionRange=[],this.oneofDecl=[],this.reservedRange=[],this.reservedName=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};rt.runtime=h;rt.typeName="google.protobuf.DescriptorProto";rt.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"field",kind:"message",T:Wt,repeated:!0},{no:6,name:"extension",kind:"message",T:Wt,repeated:!0},{no:3,name:"nested_type",kind:"message",T:rt,repeated:!0},{no:4,name:"enum_type",kind:"message",T:Pt,repeated:!0},{no:5,name:"extension_range",kind:"message",T:tr,repeated:!0},{no:8,name:"oneof_decl",kind:"message",T:or,repeated:!0},{no:7,name:"options",kind:"message",T:dr,opt:!0},{no:9,name:"reserved_range",kind:"message",T:nr,repeated:!0},{no:10,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var tr=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};tr.runtime=h;tr.typeName="google.protobuf.DescriptorProto.ExtensionRange";tr.fields=h.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:rr,opt:!0}]);var nr=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};nr.runtime=h;nr.typeName="google.protobuf.DescriptorProto.ReservedRange";nr.fields=h.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var rr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],this.declaration=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};rr.runtime=h;rr.typeName="google.protobuf.ExtensionRangeOptions";rr.fields=h.util.newFieldList(()=>[{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0},{no:2,name:"declaration",kind:"message",T:ir,repeated:!0},{no:50,name:"features",kind:"message",T:ye,opt:!0},{no:3,name:"verification",kind:"enum",T:h.getEnumType(Ji),opt:!0,default:Ji.UNVERIFIED}]);var Ji;(function(t){t[t.DECLARATION=0]="DECLARATION",t[t.UNVERIFIED=1]="UNVERIFIED"})(Ji||(Ji={}));h.util.setEnumType(Ji,"google.protobuf.ExtensionRangeOptions.VerificationState",[{no:0,name:"DECLARATION"},{no:1,name:"UNVERIFIED"}]);var ir=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};ir.runtime=h;ir.typeName="google.protobuf.ExtensionRangeOptions.Declaration";ir.fields=h.util.newFieldList(()=>[{no:1,name:"number",kind:"scalar",T:5,opt:!0},{no:2,name:"full_name",kind:"scalar",T:9,opt:!0},{no:3,name:"type",kind:"scalar",T:9,opt:!0},{no:5,name:"reserved",kind:"scalar",T:8,opt:!0},{no:6,name:"repeated",kind:"scalar",T:8,opt:!0}]);var Wt=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Wt.runtime=h;Wt.typeName="google.protobuf.FieldDescriptorProto";Wt.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:3,name:"number",kind:"scalar",T:5,opt:!0},{no:4,name:"label",kind:"enum",T:h.getEnumType(Ba),opt:!0},{no:5,name:"type",kind:"enum",T:h.getEnumType(La),opt:!0},{no:6,name:"type_name",kind:"scalar",T:9,opt:!0},{no:2,name:"extendee",kind:"scalar",T:9,opt:!0},{no:7,name:"default_value",kind:"scalar",T:9,opt:!0},{no:9,name:"oneof_index",kind:"scalar",T:5,opt:!0},{no:10,name:"json_name",kind:"scalar",T:9,opt:!0},{no:8,name:"options",kind:"message",T:fr,opt:!0},{no:17,name:"proto3_optional",kind:"scalar",T:8,opt:!0}]);var La;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.GROUP=10]="GROUP",t[t.MESSAGE=11]="MESSAGE",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.ENUM=14]="ENUM",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(La||(La={}));h.util.setEnumType(La,"google.protobuf.FieldDescriptorProto.Type",[{no:1,name:"TYPE_DOUBLE"},{no:2,name:"TYPE_FLOAT"},{no:3,name:"TYPE_INT64"},{no:4,name:"TYPE_UINT64"},{no:5,name:"TYPE_INT32"},{no:6,name:"TYPE_FIXED64"},{no:7,name:"TYPE_FIXED32"},{no:8,name:"TYPE_BOOL"},{no:9,name:"TYPE_STRING"},{no:10,name:"TYPE_GROUP"},{no:11,name:"TYPE_MESSAGE"},{no:12,name:"TYPE_BYTES"},{no:13,name:"TYPE_UINT32"},{no:14,name:"TYPE_ENUM"},{no:15,name:"TYPE_SFIXED32"},{no:16,name:"TYPE_SFIXED64"},{no:17,name:"TYPE_SINT32"},{no:18,name:"TYPE_SINT64"}]);var Ba;(function(t){t[t.OPTIONAL=1]="OPTIONAL",t[t.REPEATED=3]="REPEATED",t[t.REQUIRED=2]="REQUIRED"})(Ba||(Ba={}));h.util.setEnumType(Ba,"google.protobuf.FieldDescriptorProto.Label",[{no:1,name:"LABEL_OPTIONAL"},{no:3,name:"LABEL_REPEATED"},{no:2,name:"LABEL_REQUIRED"}]);var or=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};or.runtime=h;or.typeName="google.protobuf.OneofDescriptorProto";or.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"options",kind:"message",T:pr,opt:!0}]);var Pt=class t extends p{constructor(e){super(),this.value=[],this.reservedRange=[],this.reservedName=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Pt.runtime=h;Pt.typeName="google.protobuf.EnumDescriptorProto";Pt.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"value",kind:"message",T:sr,repeated:!0},{no:3,name:"options",kind:"message",T:gr,opt:!0},{no:4,name:"reserved_range",kind:"message",T:ar,repeated:!0},{no:5,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var ar=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};ar.runtime=h;ar.typeName="google.protobuf.EnumDescriptorProto.EnumReservedRange";ar.fields=h.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var sr=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};sr.runtime=h;sr.typeName="google.protobuf.EnumValueDescriptorProto";sr.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"number",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:yr,opt:!0}]);var lr=class t extends p{constructor(e){super(),this.method=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};lr.runtime=h;lr.typeName="google.protobuf.ServiceDescriptorProto";lr.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"method",kind:"message",T:ur,repeated:!0},{no:3,name:"options",kind:"message",T:hr,opt:!0}]);var ur=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};ur.runtime=h;ur.typeName="google.protobuf.MethodDescriptorProto";ur.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"input_type",kind:"scalar",T:9,opt:!0},{no:3,name:"output_type",kind:"scalar",T:9,opt:!0},{no:4,name:"options",kind:"message",T:wr,opt:!0},{no:5,name:"client_streaming",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"server_streaming",kind:"scalar",T:8,opt:!0,default:!1}]);var cr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};cr.runtime=h;cr.typeName="google.protobuf.FileOptions";cr.fields=h.util.newFieldList(()=>[{no:1,name:"java_package",kind:"scalar",T:9,opt:!0},{no:8,name:"java_outer_classname",kind:"scalar",T:9,opt:!0},{no:10,name:"java_multiple_files",kind:"scalar",T:8,opt:!0,default:!1},{no:20,name:"java_generate_equals_and_hash",kind:"scalar",T:8,opt:!0},{no:27,name:"java_string_check_utf8",kind:"scalar",T:8,opt:!0,default:!1},{no:9,name:"optimize_for",kind:"enum",T:h.getEnumType(Ei),opt:!0,default:Ei.SPEED},{no:11,name:"go_package",kind:"scalar",T:9,opt:!0},{no:16,name:"cc_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"java_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:18,name:"py_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:42,name:"php_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:23,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:31,name:"cc_enable_arenas",kind:"scalar",T:8,opt:!0,default:!0},{no:36,name:"objc_class_prefix",kind:"scalar",T:9,opt:!0},{no:37,name:"csharp_namespace",kind:"scalar",T:9,opt:!0},{no:39,name:"swift_prefix",kind:"scalar",T:9,opt:!0},{no:40,name:"php_class_prefix",kind:"scalar",T:9,opt:!0},{no:41,name:"php_namespace",kind:"scalar",T:9,opt:!0},{no:44,name:"php_metadata_namespace",kind:"scalar",T:9,opt:!0},{no:45,name:"ruby_package",kind:"scalar",T:9,opt:!0},{no:50,name:"features",kind:"message",T:ye,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var Ei;(function(t){t[t.SPEED=1]="SPEED",t[t.CODE_SIZE=2]="CODE_SIZE",t[t.LITE_RUNTIME=3]="LITE_RUNTIME"})(Ei||(Ei={}));h.util.setEnumType(Ei,"google.protobuf.FileOptions.OptimizeMode",[{no:1,name:"SPEED"},{no:2,name:"CODE_SIZE"},{no:3,name:"LITE_RUNTIME"}]);var dr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};dr.runtime=h;dr.typeName="google.protobuf.MessageOptions";dr.fields=h.util.newFieldList(()=>[{no:1,name:"message_set_wire_format",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"no_standard_descriptor_accessor",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:7,name:"map_entry",kind:"scalar",T:8,opt:!0},{no:11,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:12,name:"features",kind:"message",T:ye,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var fr=class t extends p{constructor(e){super(),this.targets=[],this.editionDefaults=[],this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};fr.runtime=h;fr.typeName="google.protobuf.FieldOptions";fr.fields=h.util.newFieldList(()=>[{no:1,name:"ctype",kind:"enum",T:h.getEnumType(Ni),opt:!0,default:Ni.STRING},{no:2,name:"packed",kind:"scalar",T:8,opt:!0},{no:6,name:"jstype",kind:"enum",T:h.getEnumType(Oi),opt:!0,default:Oi.JS_NORMAL},{no:5,name:"lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:15,name:"unverified_lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:10,name:"weak",kind:"scalar",T:8,opt:!0,default:!1},{no:16,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"retention",kind:"enum",T:h.getEnumType(Fa),opt:!0},{no:19,name:"targets",kind:"enum",T:h.getEnumType(Ua),repeated:!0},{no:20,name:"edition_defaults",kind:"message",T:mr,repeated:!0},{no:21,name:"features",kind:"message",T:ye,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var Ni;(function(t){t[t.STRING=0]="STRING",t[t.CORD=1]="CORD",t[t.STRING_PIECE=2]="STRING_PIECE"})(Ni||(Ni={}));h.util.setEnumType(Ni,"google.protobuf.FieldOptions.CType",[{no:0,name:"STRING"},{no:1,name:"CORD"},{no:2,name:"STRING_PIECE"}]);var Oi;(function(t){t[t.JS_NORMAL=0]="JS_NORMAL",t[t.JS_STRING=1]="JS_STRING",t[t.JS_NUMBER=2]="JS_NUMBER"})(Oi||(Oi={}));h.util.setEnumType(Oi,"google.protobuf.FieldOptions.JSType",[{no:0,name:"JS_NORMAL"},{no:1,name:"JS_STRING"},{no:2,name:"JS_NUMBER"}]);var Fa;(function(t){t[t.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",t[t.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",t[t.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(Fa||(Fa={}));h.util.setEnumType(Fa,"google.protobuf.FieldOptions.OptionRetention",[{no:0,name:"RETENTION_UNKNOWN"},{no:1,name:"RETENTION_RUNTIME"},{no:2,name:"RETENTION_SOURCE"}]);var Ua;(function(t){t[t.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",t[t.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",t[t.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",t[t.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",t[t.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",t[t.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",t[t.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",t[t.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",t[t.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",t[t.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(Ua||(Ua={}));h.util.setEnumType(Ua,"google.protobuf.FieldOptions.OptionTargetType",[{no:0,name:"TARGET_TYPE_UNKNOWN"},{no:1,name:"TARGET_TYPE_FILE"},{no:2,name:"TARGET_TYPE_EXTENSION_RANGE"},{no:3,name:"TARGET_TYPE_MESSAGE"},{no:4,name:"TARGET_TYPE_FIELD"},{no:5,name:"TARGET_TYPE_ONEOF"},{no:6,name:"TARGET_TYPE_ENUM"},{no:7,name:"TARGET_TYPE_ENUM_ENTRY"},{no:8,name:"TARGET_TYPE_SERVICE"},{no:9,name:"TARGET_TYPE_METHOD"}]);var mr=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};mr.runtime=h;mr.typeName="google.protobuf.FieldOptions.EditionDefault";mr.fields=h.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:h.getEnumType(Yt),opt:!0},{no:2,name:"value",kind:"scalar",T:9,opt:!0}]);var pr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};pr.runtime=h;pr.typeName="google.protobuf.OneofOptions";pr.fields=h.util.newFieldList(()=>[{no:1,name:"features",kind:"message",T:ye,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var gr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};gr.runtime=h;gr.typeName="google.protobuf.EnumOptions";gr.fields=h.util.newFieldList(()=>[{no:2,name:"allow_alias",kind:"scalar",T:8,opt:!0},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:7,name:"features",kind:"message",T:ye,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var yr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};yr.runtime=h;yr.typeName="google.protobuf.EnumValueOptions";yr.fields=h.util.newFieldList(()=>[{no:1,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"features",kind:"message",T:ye,opt:!0},{no:3,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var hr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};hr.runtime=h;hr.typeName="google.protobuf.ServiceOptions";hr.fields=h.util.newFieldList(()=>[{no:34,name:"features",kind:"message",T:ye,opt:!0},{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var wr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};wr.runtime=h;wr.typeName="google.protobuf.MethodOptions";wr.fields=h.util.newFieldList(()=>[{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:34,name:"idempotency_level",kind:"enum",T:h.getEnumType(Ii),opt:!0,default:Ii.IDEMPOTENCY_UNKNOWN},{no:35,name:"features",kind:"message",T:ye,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var Ii;(function(t){t[t.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",t[t.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",t[t.IDEMPOTENT=2]="IDEMPOTENT"})(Ii||(Ii={}));h.util.setEnumType(Ii,"google.protobuf.MethodOptions.IdempotencyLevel",[{no:0,name:"IDEMPOTENCY_UNKNOWN"},{no:1,name:"NO_SIDE_EFFECTS"},{no:2,name:"IDEMPOTENT"}]);var Se=class t extends p{constructor(e){super(),this.name=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Se.runtime=h;Se.typeName="google.protobuf.UninterpretedOption";Se.fields=h.util.newFieldList(()=>[{no:2,name:"name",kind:"message",T:vr,repeated:!0},{no:3,name:"identifier_value",kind:"scalar",T:9,opt:!0},{no:4,name:"positive_int_value",kind:"scalar",T:4,opt:!0},{no:5,name:"negative_int_value",kind:"scalar",T:3,opt:!0},{no:6,name:"double_value",kind:"scalar",T:1,opt:!0},{no:7,name:"string_value",kind:"scalar",T:12,opt:!0},{no:8,name:"aggregate_value",kind:"scalar",T:9,opt:!0}]);var vr=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};vr.runtime=h;vr.typeName="google.protobuf.UninterpretedOption.NamePart";vr.fields=h.util.newFieldList(()=>[{no:1,name:"name_part",kind:"scalar",T:9},{no:2,name:"is_extension",kind:"scalar",T:8}]);var ye=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};ye.runtime=h;ye.typeName="google.protobuf.FeatureSet";ye.fields=h.util.newFieldList(()=>[{no:1,name:"field_presence",kind:"enum",T:h.getEnumType(Aa),opt:!0},{no:2,name:"enum_type",kind:"enum",T:h.getEnumType(qa),opt:!0},{no:3,name:"repeated_field_encoding",kind:"enum",T:h.getEnumType(Da),opt:!0},{no:4,name:"utf8_validation",kind:"enum",T:h.getEnumType(Va),opt:!0},{no:5,name:"message_encoding",kind:"enum",T:h.getEnumType(ba),opt:!0},{no:6,name:"json_format",kind:"enum",T:h.getEnumType(za),opt:!0}]);var Aa;(function(t){t[t.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",t[t.EXPLICIT=1]="EXPLICIT",t[t.IMPLICIT=2]="IMPLICIT",t[t.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Aa||(Aa={}));h.util.setEnumType(Aa,"google.protobuf.FeatureSet.FieldPresence",[{no:0,name:"FIELD_PRESENCE_UNKNOWN"},{no:1,name:"EXPLICIT"},{no:2,name:"IMPLICIT"},{no:3,name:"LEGACY_REQUIRED"}]);var qa;(function(t){t[t.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",t[t.OPEN=1]="OPEN",t[t.CLOSED=2]="CLOSED"})(qa||(qa={}));h.util.setEnumType(qa,"google.protobuf.FeatureSet.EnumType",[{no:0,name:"ENUM_TYPE_UNKNOWN"},{no:1,name:"OPEN"},{no:2,name:"CLOSED"}]);var Da;(function(t){t[t.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",t[t.PACKED=1]="PACKED",t[t.EXPANDED=2]="EXPANDED"})(Da||(Da={}));h.util.setEnumType(Da,"google.protobuf.FeatureSet.RepeatedFieldEncoding",[{no:0,name:"REPEATED_FIELD_ENCODING_UNKNOWN"},{no:1,name:"PACKED"},{no:2,name:"EXPANDED"}]);var Va;(function(t){t[t.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",t[t.NONE=1]="NONE",t[t.VERIFY=2]="VERIFY"})(Va||(Va={}));h.util.setEnumType(Va,"google.protobuf.FeatureSet.Utf8Validation",[{no:0,name:"UTF8_VALIDATION_UNKNOWN"},{no:1,name:"NONE"},{no:2,name:"VERIFY"}]);var ba;(function(t){t[t.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",t[t.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",t[t.DELIMITED=2]="DELIMITED"})(ba||(ba={}));h.util.setEnumType(ba,"google.protobuf.FeatureSet.MessageEncoding",[{no:0,name:"MESSAGE_ENCODING_UNKNOWN"},{no:1,name:"LENGTH_PREFIXED"},{no:2,name:"DELIMITED"}]);var za;(function(t){t[t.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",t[t.ALLOW=1]="ALLOW",t[t.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(za||(za={}));h.util.setEnumType(za,"google.protobuf.FeatureSet.JsonFormat",[{no:0,name:"JSON_FORMAT_UNKNOWN"},{no:1,name:"ALLOW"},{no:2,name:"LEGACY_BEST_EFFORT"}]);var Mi=class t extends p{constructor(e){super(),this.defaults=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Mi.runtime=h;Mi.typeName="google.protobuf.FeatureSetDefaults";Mi.fields=h.util.newFieldList(()=>[{no:1,name:"defaults",kind:"message",T:Tr,repeated:!0},{no:4,name:"minimum_edition",kind:"enum",T:h.getEnumType(Yt),opt:!0},{no:5,name:"maximum_edition",kind:"enum",T:h.getEnumType(Yt),opt:!0}]);var Tr=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Tr.runtime=h;Tr.typeName="google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault";Tr.fields=h.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:h.getEnumType(Yt),opt:!0},{no:2,name:"features",kind:"message",T:ye,opt:!0}]);var Pr=class t extends p{constructor(e){super(),this.location=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Pr.runtime=h;Pr.typeName="google.protobuf.SourceCodeInfo";Pr.fields=h.util.newFieldList(()=>[{no:1,name:"location",kind:"message",T:Sr,repeated:!0}]);var Sr=class t extends p{constructor(e){super(),this.path=[],this.span=[],this.leadingDetachedComments=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Sr.runtime=h;Sr.typeName="google.protobuf.SourceCodeInfo.Location";Sr.fields=h.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"span",kind:"scalar",T:5,repeated:!0,packed:!0},{no:3,name:"leading_comments",kind:"scalar",T:9,opt:!0},{no:4,name:"trailing_comments",kind:"scalar",T:9,opt:!0},{no:6,name:"leading_detached_comments",kind:"scalar",T:9,repeated:!0}]);var Ci=class t extends p{constructor(e){super(),this.annotation=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Ci.runtime=h;Ci.typeName="google.protobuf.GeneratedCodeInfo";Ci.fields=h.util.newFieldList(()=>[{no:1,name:"annotation",kind:"message",T:kr,repeated:!0}]);var kr=class t extends p{constructor(e){super(),this.path=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};kr.runtime=h;kr.typeName="google.protobuf.GeneratedCodeInfo.Annotation";kr.fields=h.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"source_file",kind:"scalar",T:9,opt:!0},{no:3,name:"begin",kind:"scalar",T:5,opt:!0},{no:4,name:"end",kind:"scalar",T:5,opt:!0},{no:5,name:"semantic",kind:"enum",T:h.getEnumType(Ga),opt:!0}]);var Ga;(function(t){t[t.NONE=0]="NONE",t[t.SET=1]="SET",t[t.ALIAS=2]="ALIAS"})(Ga||(Ga={}));h.util.setEnumType(Ga,"google.protobuf.GeneratedCodeInfo.Annotation.Semantic",[{no:0,name:"NONE"},{no:1,name:"SET"},{no:2,name:"ALIAS"}]);var Z=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};Z.runtime=s;Z.typeName="google.protobuf.Empty";Z.fields=s.util.newFieldList(()=>[]);var ja=class t extends p{secret="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.VerifyUserRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},$a=class t extends p{secret="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.GroupInfoRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ha=class t extends p{groupId="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.GroupID";static fields=s.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ya=class t extends p{contentId="";groupId="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.ShareRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Li=class t extends p{secret="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.GroupInvite";static fields=s.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Wa=class t extends p{groups=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.Groups";static fields=s.util.newFieldList(()=>[{no:1,name:"groups",kind:"message",T:St,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ry=class t extends p{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.AnalyzeConversationRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},it=class t extends p{email="";password="";username="";config;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.User";static fields=s.util.newFieldList(()=>[{no:1,name:"email",kind:"scalar",T:9},{no:2,name:"password",kind:"scalar",T:9},{no:3,name:"username",kind:"scalar",T:9},{no:4,name:"config",kind:"message",T:Bi}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},St=class t extends p{id="";name="";users=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.Group";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"users",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Bi=class t extends p{domainWhitelist=[];offlineVoice=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.Config";static fields=s.util.newFieldList(()=>[{no:1,name:"domain_whitelist",kind:"scalar",T:9,repeated:!0},{no:2,name:"offline_voice",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},_a=class t extends p{user;success=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.LoginResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"user",kind:"message",T:it},{no:2,name:"success",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var Ka=class t extends p{title="";createTime=0;updateTime=0;mapping={};conversationId="";conversationTemplateId="";currentNode="";gizmoId="";isArchived=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Conversation";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"create_time",kind:"scalar",T:1},{no:3,name:"update_time",kind:"scalar",T:1},{no:4,name:"mapping",kind:"map",K:9,V:{kind:"message",T:Fc}},{no:5,name:"conversation_id",kind:"scalar",T:9},{no:6,name:"conversation_template_id",kind:"scalar",T:9},{no:7,name:"current_node",kind:"scalar",T:9},{no:8,name:"gizmo_id",kind:"scalar",T:9},{no:9,name:"is_archived",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Fc=class t extends p{id="";message;parent="";children=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Node";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"message",kind:"message",T:Uc},{no:3,name:"parent",kind:"scalar",T:9},{no:4,name:"children",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Uc=class t extends p{id="";author;createTime=0;content;status="";endTurn=!1;weight=0;metadata;recipient="";updateTime=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Message";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"author",kind:"message",T:qc},{no:3,name:"create_time",kind:"scalar",T:1},{no:4,name:"content",kind:"message",T:Dc},{no:5,name:"status",kind:"scalar",T:9},{no:6,name:"end_turn",kind:"scalar",T:8},{no:7,name:"weight",kind:"scalar",T:5},{no:8,name:"metadata",kind:"message",T:Ac},{no:9,name:"recipient",kind:"scalar",T:9},{no:10,name:"update_time",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ac=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.MessageMetadata";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},qc=class t extends p{role="";metadata;name="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Author";static fields=s.util.newFieldList(()=>[{no:1,name:"role",kind:"scalar",T:9},{no:2,name:"metadata",kind:"message",T:Gc},{no:3,name:"name",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Dc=class t extends p{contentType="";textParts=[];imageParts=[];text="";parts=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Content";static fields=s.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"text_parts",kind:"scalar",T:9,repeated:!0},{no:3,name:"image_parts",kind:"message",T:Vc,repeated:!0},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"parts",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Vc=class t extends p{contentType="";assetPointer="";sizeBytes=L.zero;width=0;height=0;fovea=0;metadata;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.ImageAsset";static fields=s.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"asset_pointer",kind:"scalar",T:9},{no:3,name:"size_bytes",kind:"scalar",T:3},{no:4,name:"width",kind:"scalar",T:5},{no:5,name:"height",kind:"scalar",T:5},{no:6,name:"fovea",kind:"scalar",T:5},{no:7,name:"metadata",kind:"message",T:bc}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},bc=class t extends p{dalle;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Metadata";static fields=s.util.newFieldList(()=>[{no:1,name:"dalle",kind:"message",T:zc}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},zc=class t extends p{genId="";prompt="";seed=0;serializationTitle="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.DalleMetadata";static fields=s.util.newFieldList(()=>[{no:1,name:"gen_id",kind:"scalar",T:9},{no:2,name:"prompt",kind:"scalar",T:9},{no:3,name:"seed",kind:"scalar",T:13},{no:4,name:"serialization_title",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Gc=class t extends p{attachments=[];timestamp="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.AuthorMetadata";static fields=s.util.newFieldList(()=>[{no:1,name:"attachments",kind:"message",T:jc,repeated:!0},{no:2,name:"timestamp_",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},jc=class t extends p{id="";name="";mimeType="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Attachment";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"mimeType",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var Qa=class t extends p{nodes=[];edges=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="browser.History";static fields=s.util.newFieldList(()=>[{no:1,name:"nodes",kind:"message",T:$c,repeated:!0},{no:2,name:"edges",kind:"message",T:Hc,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},$c=class t extends p{id="";url="";title="";open=0;close=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="browser.Node";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"open",kind:"scalar",T:1},{no:5,name:"close",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Hc=class t extends p{from="";to="";tab="";visitTime=0;visitDuration=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="browser.Edge";static fields=s.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9},{no:3,name:"tab",kind:"scalar",T:9},{no:4,name:"visit_time",kind:"scalar",T:1},{no:5,name:"visit_duration",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var Xa=class t extends p{publishDir="";baseUrl="";title="";paginate=0;theme=[];enableInlineShortcodes=!1;enableRobotsTxt=!1;buildDrafts=!1;buildFuture=!1;buildExpired=!1;enableEmoji=!1;pygmentsUseClasses=!1;mainSections=[];minify;languages={};outputs={};params;markup;services;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.HugoConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"publish_dir",kind:"scalar",T:9},{no:2,name:"base_url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"paginate",kind:"scalar",T:5},{no:5,name:"theme",kind:"scalar",T:9,repeated:!0},{no:6,name:"enable_inline_shortcodes",kind:"scalar",T:8},{no:7,name:"enable_robots_txt",kind:"scalar",T:8},{no:8,name:"build_drafts",kind:"scalar",T:8},{no:9,name:"build_future",kind:"scalar",T:8},{no:10,name:"build_expired",kind:"scalar",T:8},{no:11,name:"enable_emoji",kind:"scalar",T:8},{no:12,name:"pygments_use_classes",kind:"scalar",T:8},{no:13,name:"main_sections",kind:"scalar",T:9,repeated:!0},{no:14,name:"minify",kind:"message",T:Yc},{no:15,name:"languages",kind:"map",K:9,V:{kind:"message",T:Wc}},{no:16,name:"outputs",kind:"map",K:9,V:{kind:"message",T:nd}},{no:17,name:"params",kind:"message",T:id},{no:18,name:"markup",kind:"message",T:Qc},{no:19,name:"services",kind:"message",T:td}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Yc=class t extends p{disableXml=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.MinifyConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"disable_xml",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Wc=class t extends p{languageName="";weight=0;title="";taxonomies={};menu={};params={};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.LanguageConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"language_name",kind:"scalar",T:9},{no:2,name:"weight",kind:"scalar",T:5},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"taxonomies",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"menu",kind:"map",K:9,V:{kind:"message",T:rd}},{no:6,name:"params",kind:"map",K:9,V:{kind:"scalar",T:9}}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Fi=class t extends p{name="";url="";weight=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.MenuItem";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"weight",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},_c=class t extends p{url="";text="";appendFilePath=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.EditPostConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"append_file_path",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Kc=class t extends p{disableHljs=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.AssetsConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"disable_hljs",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Qc=class t extends p{goldmark;highlight;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.MarkupConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"goldmark",kind:"message",T:Xc},{no:2,name:"highlight",kind:"message",T:ed}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Xc=class t extends p{renderer;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.GoldmarkConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"renderer",kind:"message",T:Zc}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Zc=class t extends p{unsafe=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.RendererConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"unsafe",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ed=class t extends p{noClasses=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.HighlightConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"no_classes",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},td=class t extends p{instagram;twitter;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ServicesConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"instagram",kind:"message",T:Za},{no:2,name:"twitter",kind:"message",T:Za}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Za=class t extends p{disableInlineCss=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ServiceConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"disable_inline_css",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},nd=class t extends p{values=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.RepeatedString";static fields=s.util.newFieldList(()=>[{no:1,name:"values",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},rd=class t extends p{items=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.RepeatedMenuItem";static fields=s.util.newFieldList(()=>[{no:1,name:"items",kind:"message",T:Fi,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},id=class t extends p{env="";description="";author="";defaultTheme="";showShareButtons=!1;showReadingTime=!1;displayFullLangName=!1;showPostNavLinks=!1;showBreadCrumbs=!1;showCodeCopyButtons=!1;showRssButtonInSectionTermList=!1;showAllPagesInArchive=!1;showPageNums=!1;showToc=!1;images=[];profileMode;homeInfoParams;socialIcons=[];editPost;assets;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ParamsConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"env",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"author",kind:"scalar",T:9},{no:4,name:"default_theme",kind:"scalar",T:9},{no:5,name:"show_share_buttons",kind:"scalar",T:8},{no:6,name:"show_reading_time",kind:"scalar",T:8},{no:7,name:"display_full_lang_name",kind:"scalar",T:8},{no:8,name:"show_post_nav_links",kind:"scalar",T:8},{no:9,name:"show_bread_crumbs",kind:"scalar",T:8},{no:10,name:"show_code_copy_buttons",kind:"scalar",T:8},{no:11,name:"show_rss_button_in_section_term_list",kind:"scalar",T:8},{no:12,name:"show_all_pages_in_archive",kind:"scalar",T:8},{no:13,name:"show_page_nums",kind:"scalar",T:8},{no:14,name:"show_toc",kind:"scalar",T:8},{no:15,name:"images",kind:"scalar",T:9,repeated:!0},{no:16,name:"profile_mode",kind:"message",T:od},{no:17,name:"home_info_params",kind:"message",T:sd},{no:18,name:"social_icons",kind:"message",T:ld,repeated:!0},{no:19,name:"edit_post",kind:"message",T:_c},{no:20,name:"assets",kind:"message",T:Kc}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},od=class t extends p{enabled=!1;title="";imageUrl="";imageTitle="";buttons=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ProfileModeConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"image_url",kind:"scalar",T:9},{no:4,name:"image_title",kind:"scalar",T:9},{no:5,name:"buttons",kind:"message",T:ad,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ad=class t extends p{name="";url="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ButtonConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},sd=class t extends p{title="";content="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.HomeInfoParamsConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"content",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ld=class t extends p{name="";title="";url="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.SocialIconConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var es=class t extends p{prompt="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.InferRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ts=class t extends p{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.InferResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ns=class t extends p{content;site;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.TypesResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:ps},{no:2,name:"site",kind:"message",T:ps}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},rs=class t extends p{contentTypes=[];tags=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.GetSourcesRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"content_types",kind:"scalar",T:9,repeated:!0},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},is=class t extends p{captureDevice=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.VoiceInputRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},os=class t extends p{segment;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.VoiceInputResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:Rr}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},as=class t extends p{parent="";children=[];connect=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.RelateRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"parent",kind:"scalar",T:9},{no:2,name:"children",kind:"scalar",T:9,repeated:!0},{no:3,name:"connect",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ss=class t extends p{sources=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Sources";static fields=s.util.newFieldList(()=>[{no:1,name:"sources",kind:"message",T:ud,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ud=class t extends p{source;displayContent=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.EnumeratedSource";static fields=s.util.newFieldList(()=>[{no:1,name:"source",kind:"message",T:dd},{no:2,name:"display_content",kind:"message",T:cd,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},cd=class t extends p{title="";description="";type="";content;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.DisplayContent";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"type",kind:"scalar",T:9},{no:4,name:"content",kind:"message",T:_e}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},dd=class t extends p{name="";type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Source";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"server",kind:"message",T:fd,oneof:"type"},{no:3,name:"folder",kind:"message",T:md,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},fd=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Server";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},md=class t extends p{path="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Folder";static fields=s.util.newFieldList(()=>[{no:2,name:"path",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ls=class t extends p{contentId="";tags=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.SetTagsRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},us=class t extends p{groupId="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.TagRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},cs=class t extends p{tags=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Tags";static fields=s.util.newFieldList(()=>[{no:1,name:"tags",kind:"message",T:ds,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ds=class t extends p{name="";subTags=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Tag";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"sub_tags",kind:"message",T:t,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},_t=class t extends p{contentIds=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ContentIDs";static fields=s.util.newFieldList(()=>[{no:1,name:"content_ids",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ui=class t extends p{content;tags=[];related=[];parents=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Contents";static fields=s.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:_e},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0},{no:3,name:"related",kind:"message",T:_e,repeated:!0},{no:4,name:"parents",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},fs=class t extends p{query="";page=0;contentID="";groupID="";tags=[];contentTypes=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Query";static fields=s.util.newFieldList(()=>[{no:1,name:"query",kind:"scalar",T:9},{no:2,name:"page",kind:"scalar",T:13},{no:3,name:"contentID",kind:"scalar",T:9},{no:4,name:"groupID",kind:"scalar",T:9},{no:5,name:"tags",kind:"scalar",T:9,repeated:!0},{no:6,name:"content_types",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ms=class t extends p{storedContent=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Results";static fields=s.util.newFieldList(()=>[{no:1,name:"storedContent",kind:"message",T:pd,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},pd=class t extends p{content;id="";related=[];title="";description="";image="";url="";user;tags=[];preview="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.StoredContent";static fields=s.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:_e},{no:2,name:"id",kind:"scalar",T:9},{no:3,name:"related",kind:"message",T:_e,repeated:!0},{no:4,name:"title",kind:"scalar",T:9},{no:5,name:"description",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"url",kind:"scalar",T:9},{no:9,name:"user",kind:"message",T:it},{no:10,name:"tags",kind:"message",T:ds,repeated:!0},{no:11,name:"preview",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},iy=class t extends p{from="";to="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Edge";static fields=s.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},_e=class t extends p{tags=[];createdAt="";uri="";id="";type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Content";static fields=s.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"created_at",kind:"scalar",T:9},{no:3,name:"uri",kind:"scalar",T:9},{no:4,name:"id",kind:"scalar",T:9},{no:6,name:"data",kind:"message",T:yd,oneof:"type"},{no:7,name:"normalized",kind:"message",T:hd,oneof:"type"},{no:8,name:"transformed",kind:"message",T:wd,oneof:"type"},{no:9,name:"post",kind:"message",T:gd,oneof:"type"},{no:10,name:"site",kind:"message",T:Od,oneof:"type"},{no:11,name:"chatgpt_conversation",kind:"message",T:Ka,oneof:"type"},{no:12,name:"browser_history",kind:"message",T:Qa,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},gd=class t extends p{title="";summary="";content="";authors=[];draft=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Post";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"content",kind:"scalar",T:9},{no:4,name:"authors",kind:"scalar",T:9,repeated:!0},{no:6,name:"draft",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},oy=class t extends p{url="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.GitRepo";static fields=s.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},yd=class t extends p{type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Data";static fields=s.util.newFieldList(()=>[{no:4,name:"text",kind:"message",T:xd,oneof:"type"},{no:5,name:"file",kind:"message",T:Rd,oneof:"type"},{no:6,name:"url",kind:"message",T:Jd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},hd=class t extends p{type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Normalized";static fields=s.util.newFieldList(()=>[{no:3,name:"article",kind:"message",T:vd,oneof:"type"},{no:4,name:"html",kind:"message",T:Td,oneof:"type"},{no:6,name:"transcript",kind:"message",T:Nd,oneof:"type"},{no:7,name:"readme",kind:"message",T:Pd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},wd=class t extends p{type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Transformed";static fields=s.util.newFieldList(()=>[{no:1,name:"summary",kind:"message",T:Sd,oneof:"type"},{no:2,name:"categories",kind:"message",T:kd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},vd=class t extends p{title="";author="";length=0;excerpt="";siteName="";image="";favicon="";text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Article";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"author",kind:"scalar",T:9},{no:3,name:"length",kind:"scalar",T:5},{no:4,name:"excerpt",kind:"scalar",T:9},{no:5,name:"site_name",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"favicon",kind:"scalar",T:9},{no:8,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Td=class t extends p{html="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.HTML";static fields=s.util.newFieldList(()=>[{no:1,name:"html",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Pd=class t extends p{data="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ReadMe";static fields=s.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Sd=class t extends p{summary="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Summary";static fields=s.util.newFieldList(()=>[{no:1,name:"summary",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},kd=class t extends p{categories=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Categories";static fields=s.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Rd=class t extends p{file="";data=new Uint8Array(0);url="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.File";static fields=s.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9},{no:2,name:"data",kind:"scalar",T:12},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},xd=class t extends p{data="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Text";static fields=s.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Jd=class t extends p{url="";crawl=!1;title="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.URL";static fields=s.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"crawl",kind:"scalar",T:8},{no:3,name:"title",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ed=class t extends p{id=0;startTime=L.zero;endTime=L.zero;text="";p="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Token";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Rr=class t extends p{num=0;tokens=[];text="";startTime=L.zero;endTime=L.zero;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Segment";static fields=s.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:Ed,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Nd=class t extends p{id="";name="";segments=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Transcript";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:Rr,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ps=class t extends p{msg;descLookup={};enumLookup={};packageName="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.GRPCTypeInfo";static fields=s.util.newFieldList(()=>[{no:1,name:"msg",kind:"message",T:rt},{no:3,name:"desc_lookup",kind:"map",K:9,V:{kind:"message",T:rt}},{no:4,name:"enum_lookup",kind:"map",K:9,V:{kind:"message",T:Pt}},{no:6,name:"package_name",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Od=class t extends p{sections=[];hugoConfig;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Site";static fields=s.util.newFieldList(()=>[{no:1,name:"sections",kind:"message",T:Id,repeated:!0},{no:2,name:"hugo_config",kind:"message",T:Xa}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Id=class t extends p{tags=[];menu;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Section";static fields=s.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"menu",kind:"message",T:Fi}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var gs=class t extends p{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.AnalyzeConversationRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ys=class t extends p{prompt="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GenerateImagesRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},hs=class t extends p{images=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GenerateImagesResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"images",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ws=class t extends p{id="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.DeleteSessionRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},xr=class t extends p{id="";text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Prompt";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},vs=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetPromptsRequest";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ts=class t extends p{prompts=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetPromptsResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"prompts",kind:"message",T:xr,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ps=class t extends p{prompt="";text=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.InferRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ss=class t extends p{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.InferResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ks=class t extends p{content;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.UploadContentRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:_e}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ay=class t extends p{id="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.UploadContentResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Rs=class t extends p{id="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetSessionRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},xs=class t extends p{session;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetSessionResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"session",kind:"message",T:Os}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Js=class t extends p{page=L.zero;limit=L.zero;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetSessionsRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"page",kind:"scalar",T:4},{no:2,name:"limit",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Es=class t extends p{sessions=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetSessionsResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"sessions",kind:"message",T:Os,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Md=class t extends p{id=0;startTime=L.zero;endTime=L.zero;text="";p="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Token";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ns=class t extends p{num=0;tokens=[];text="";startTime=L.zero;endTime=L.zero;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Segment";static fields=s.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:Md,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Os=class t extends p{id="";name="";segments=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Session";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:Ns,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},sy=class t extends p{filePath="";model="";language="";translate=!1;offset=L.zero;duration=L.zero;threads=0;speedup=!1;maxLen=0;maxTokens=0;wordThreshold=0;tokens=!1;colorize=!1;out="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.TranscriptionRequest";static fields=s.util.newFieldList(()=>[{no:14,name:"file_path",kind:"scalar",T:9},{no:1,name:"model",kind:"scalar",T:9},{no:2,name:"language",kind:"scalar",T:9},{no:3,name:"translate",kind:"scalar",T:8},{no:4,name:"offset",kind:"scalar",T:3},{no:5,name:"duration",kind:"scalar",T:3},{no:6,name:"threads",kind:"scalar",T:13},{no:7,name:"speedup",kind:"scalar",T:8},{no:8,name:"max_len",kind:"scalar",T:13},{no:9,name:"max_tokens",kind:"scalar",T:13},{no:10,name:"word_threshold",kind:"scalar",T:1},{no:11,name:"tokens",kind:"scalar",T:8},{no:12,name:"colorize",kind:"scalar",T:8},{no:13,name:"out",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ly=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.RegisterFlags";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},uy=class t extends p{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.OCRText";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},cy=class t extends p{image=new Uint8Array(0);constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Image";static fields=s.util.newFieldList(()=>[{no:1,name:"image",kind:"scalar",T:12}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Is=class t extends p{from="";to="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.ConvertFileRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ms=class t extends p{captureDevice=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.ChatRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ai=class t extends p{segment;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.ChatResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:Ns}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Cs=class t extends p{id="";file="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.YouTubeVideo";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"file",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},qi=class t extends p{file="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.FilePath";static fields=s.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ls=class t extends p{title="";filePath;transcript=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.YouTubeVideoResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"file_path",kind:"message",T:qi},{no:3,name:"transcript",kind:"message",T:Rr,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var Bs=class t extends p{phoneNumbers=[];summary="";questions=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="ai.AnalyzeConversationResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"phone_numbers",kind:"scalar",T:9,repeated:!0},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"questions",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},dy=class t extends p{categories=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="ai.AnalyzeContent";static fields=s.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var fy={typeName:"protoflow.ProtoflowService",methods:{downloadYouTubeVideo:{name:"DownloadYouTubeVideo",I:Cs,O:Ls,kind:E.Unary},getSessions:{name:"GetSessions",I:Js,O:Es,kind:E.Unary},getSession:{name:"GetSession",I:Rs,O:xs,kind:E.Unary},deleteSession:{name:"DeleteSession",I:ws,O:Z,kind:E.Unary},getPrompts:{name:"GetPrompts",I:vs,O:Ts,kind:E.Unary},newPrompt:{name:"NewPrompt",I:xr,O:xr,kind:E.Unary},uploadContent:{name:"UploadContent",I:ks,O:Ai,kind:E.ServerStreaming},infer:{name:"Infer",I:Ps,O:Ss,kind:E.ServerStreaming},chat:{name:"Chat",I:Ms,O:Ai,kind:E.ServerStreaming},convertFile:{name:"ConvertFile",I:Is,O:qi,kind:E.Unary},generateImages:{name:"GenerateImages",I:ys,O:hs,kind:E.Unary},analyzeConversation:{name:"AnalyzeConversation",I:gs,O:Bs,kind:E.Unary}}};var my={typeName:"content.ContentService",methods:{save:{name:"Save",I:Ui,O:_t,kind:E.Unary},search:{name:"Search",I:fs,O:ms,kind:E.Unary},relate:{name:"Relate",I:as,O:Z,kind:E.Unary},analyze:{name:"Analyze",I:_e,O:Ui,kind:E.Unary},delete:{name:"Delete",I:_t,O:_t,kind:E.Unary},getTags:{name:"GetTags",I:us,O:cs,kind:E.Unary},setTags:{name:"SetTags",I:ls,O:Z,kind:E.Unary},publish:{name:"Publish",I:_t,O:_t,kind:E.Unary},getSources:{name:"GetSources",I:rs,O:ss,kind:E.Unary},infer:{name:"Infer",I:es,O:ts,kind:E.ServerStreaming},types:{name:"Types",I:Z,O:ns,kind:E.Unary},voiceInput:{name:"VoiceInput",I:is,O:os,kind:E.ServerStreaming}}};var py={typeName:"user.UserService",methods:{register:{name:"Register",I:it,O:it,kind:E.Unary},login:{name:"Login",I:it,O:_a,kind:E.Unary},logout:{name:"Logout",I:Z,O:Z,kind:E.Unary},resetPassword:{name:"ResetPassword",I:it,O:Z,kind:E.Unary},verifyUser:{name:"VerifyUser",I:ja,O:Z,kind:E.Unary},updateConfig:{name:"UpdateConfig",I:Bi,O:Z,kind:E.Unary},createGroupInvite:{name:"CreateGroupInvite",I:Ha,O:Li,kind:E.Unary},joinGroup:{name:"JoinGroup",I:Li,O:St,kind:E.Unary},groupInfo:{name:"GroupInfo",I:$a,O:St,kind:E.Unary},createGroup:{name:"CreateGroup",I:St,O:St,kind:E.Unary},getGroups:{name:"GetGroups",I:Z,O:Wa,kind:E.Unary},deleteGroup:{name:"DeleteGroup",I:St,O:Z,kind:E.Unary},share:{name:"Share",I:Ya,O:Z,kind:E.Unary}}};var Fs=class t extends p{user="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.BanUserRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Us=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.BanUserResponse";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},As=class t extends p{message="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.SendMessageRequest";static fields=s.util.newFieldList(()=>[{no:2,name:"message",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},qs=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.SendMessageResponse";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ds=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.ReceiveMessagesRequest";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Vs=class t extends p{user="";text="";timestamp=L.zero;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.Message";static fields=s.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"timestamp",kind:"scalar",T:3}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var gy={typeName:"chat.ChatService",methods:{sendMessage:{name:"SendMessage",I:As,O:qs,kind:E.Unary},receiveMessages:{name:"ReceiveMessages",I:Ds,O:Vs,kind:E.ServerStreaming},banUser:{name:"BanUser",I:Fs,O:Us,kind:E.Unary}}};var bs=class t extends p{type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="event.Metric";static fields=s.util.newFieldList(()=>[{no:1,name:"http",kind:"message",T:Cd,oneof:"type"},{no:2,name:"rrweb",kind:"message",T:Ld,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Cd=class t extends p{method="";path="";query="";headers={};host="";remoteAddr="";userAgent="";referer="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="event.HTTPRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"method",kind:"scalar",T:9},{no:2,name:"path",kind:"scalar",T:9},{no:3,name:"query",kind:"scalar",T:9},{no:4,name:"headers",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"host",kind:"scalar",T:9},{no:6,name:"remoteAddr",kind:"scalar",T:9},{no:7,name:"userAgent",kind:"scalar",T:9},{no:8,name:"referer",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ld=class t extends p{events="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="event.RRWeb";static fields=s.util.newFieldList(()=>[{no:1,name:"events",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},zs=class t extends p{id="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="event.SendResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var yy={typeName:"event.EventService",methods:{send:{name:"Send",I:bs,O:zs,kind:E.Unary}}};var C;(function(t){t[t.Canceled=1]="Canceled",t[t.Unknown=2]="Unknown",t[t.InvalidArgument=3]="InvalidArgument",t[t.DeadlineExceeded=4]="DeadlineExceeded",t[t.NotFound=5]="NotFound",t[t.AlreadyExists=6]="AlreadyExists",t[t.PermissionDenied=7]="PermissionDenied",t[t.ResourceExhausted=8]="ResourceExhausted",t[t.FailedPrecondition=9]="FailedPrecondition",t[t.Aborted=10]="Aborted",t[t.OutOfRange=11]="OutOfRange",t[t.Unimplemented=12]="Unimplemented",t[t.Internal=13]="Internal",t[t.Unavailable=14]="Unavailable",t[t.DataLoss=15]="DataLoss",t[t.Unauthenticated=16]="Unauthenticated"})(C||(C={}));function Di(t){let e=C[t];return typeof e!="string"?t.toString():e[0].toLowerCase()+e.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var Gs;function hy(t){if(!Gs){Gs={};for(let e of Object.values(C))typeof e!="string"&&(Gs[Di(e)]=e)}return Gs[t]}var Q=class t extends Error{constructor(e,n=C.Unknown,r,i,o){super(bw(e,n)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=e,this.code=n,this.metadata=new Headers(r??{}),this.details=i??[],this.cause=o}static from(e,n=C.Unknown){return e instanceof t?e:e instanceof Error?e.name=="AbortError"?new t(e.message,C.Canceled):new t(e.message,n,void 0,void 0,e):new t(String(e),n,void 0,void 0,e)}static[Symbol.hasInstance](e){return e instanceof Error?Object.getPrototypeOf(e)===t.prototype?!0:e.name==="ConnectError"&&"code"in e&&typeof e.code=="number"&&"metadata"in e&&"details"in e&&Array.isArray(e.details)&&"rawMessage"in e&&typeof e.rawMessage=="string"&&"cause"in e:!1}findDetails(e){let n="typeName"in e?{findMessage:i=>i===e.typeName?e:void 0}:e,r=[];for(let i of this.details){if(i instanceof p){n.findMessage(i.getType().typeName)&&r.push(i);continue}let o=n.findMessage(i.type);if(o)try{r.push(o.fromBinary(i.value))}catch{}}return r}};function bw(t,e){return t.length?`[${Di(e)}] ${t}`:`[${Di(e)}]`}function Bd(...t){let e=new Headers;for(let n of t)n.forEach((r,i)=>{e.append(i,r)});return e}function wy(t,e){let n={};for(let[r,i]of Object.entries(t.methods)){let o=e(Object.assign(Object.assign({},i),{localName:r,service:t}));o!=null&&(n[r]=o)}return n}function Fd(t){let e,n=new Uint8Array(0);function r(i){let o=new Uint8Array(n.length+i.length);o.set(n),o.set(i,n.length),n=o}return new ReadableStream({start(){e=t.getReader()},async pull(i){let o;for(;;){if(o===void 0&&n.byteLength>=5){let u=0;for(let c=1;c<5;c++)u=(u<<8)+n[c];o={flags:n[0],length:u}}if(o!==void 0&&n.byteLength>=o.length+5)break;let l=await e.read();if(l.done)break;r(l.value)}if(o===void 0){if(n.byteLength==0){i.close();return}i.error(new Q("premature end of stream",C.DataLoss));return}let a=n.subarray(5,5+o.length);n=n.subarray(5+o.length),i.enqueue({flags:o.flags,data:a})}})}function Ud(t,e){let n=new Uint8Array(e.length+5);n.set(e,5);let r=new DataView(n.buffer,n.byteOffset,n.byteLength);return r.setUint8(0,t),r.setUint32(1,e.length),n}var zw=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=t[o]&&function(a){return new Promise(function(l,u){a=t[o](a),i(l,u,a.done,a.value)})}}function i(o,a,l,u){Promise.resolve(u).then(function(c){o({value:c,done:l})},a)}},Vi=function(t){return this instanceof Vi?(this.v=t,this):new Vi(t)},Gw=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,o=[];return i={},l("next"),l("throw"),l("return",a),i[Symbol.asyncIterator]=function(){return this},i;function a(m){return function(T){return Promise.resolve(T).then(m,v)}}function l(m,T){r[m]&&(i[m]=function(S){return new Promise(function(O,g){o.push([m,S,O,g])>1||u(m,S)})},T&&(i[m]=T(i[m])))}function u(m,T){try{c(r[m](T))}catch(S){y(o[0][3],S)}}function c(m){m.value instanceof Vi?Promise.resolve(m.value.v).then(f,v):y(o[0][2],m)}function f(m){u("next",m)}function v(m){u("throw",m)}function y(m,T){m(T),o.shift(),o.length&&u(o[0][0],o[0][1])}},jw=function(t){var e,n;return e={},r("next"),r("throw",function(i){throw i}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(i,o){e[i]=t[i]?function(a){return(n=!n)?{value:Vi(t[i](a)),done:!1}:o?o(a):a}:o}};function vy(t){return Gw(this,arguments,function*(){yield Vi(yield*jw(zw(t)))})}var Ty=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=t[o]&&function(a){return new Promise(function(l,u){a=t[o](a),i(l,u,a.done,a.value)})}}function i(o,a,l,u){Promise.resolve(u).then(function(c){o({value:c,done:l})},a)}},Jr=function(t){return this instanceof Jr?(this.v=t,this):new Jr(t)},$w=function(t){var e,n;return e={},r("next"),r("throw",function(i){throw i}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(i,o){e[i]=t[i]?function(a){return(n=!n)?{value:Jr(t[i](a)),done:!1}:o?o(a):a}:o}},Hw=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,o=[];return i={},l("next"),l("throw"),l("return",a),i[Symbol.asyncIterator]=function(){return this},i;function a(m){return function(T){return Promise.resolve(T).then(m,v)}}function l(m,T){r[m]&&(i[m]=function(S){return new Promise(function(O,g){o.push([m,S,O,g])>1||u(m,S)})},T&&(i[m]=T(i[m])))}function u(m,T){try{c(r[m](T))}catch(S){y(o[0][3],S)}}function c(m){m.value instanceof Jr?Promise.resolve(m.value.v).then(f,v):y(o[0][2],m)}function f(m){u("next",m)}function v(m){u("throw",m)}function y(m,T){m(T),o.shift(),o.length&&u(o[0][0],o[0][1])}};function yn(t,e){return wy(t,n=>{switch(n.kind){case E.Unary:return Yw(e,t,n);case E.ServerStreaming:return Ww(e,t,n);case E.ClientStreaming:return _w(e,t,n);case E.BiDiStreaming:return Kw(e,t,n);default:return null}})}function Yw(t,e,n){return async function(r,i){var o,a;let l=await t.unary(e,n,i?.signal,i?.timeoutMs,i?.headers,r,i?.contextValues);return(o=i?.onHeader)===null||o===void 0||o.call(i,l.header),(a=i?.onTrailer)===null||a===void 0||a.call(i,l.trailer),l.message}}function Ww(t,e,n){return function(r,i){return Py(t.stream(e,n,i?.signal,i?.timeoutMs,i?.headers,vy([r]),i?.contextValues),i)}}function _w(t,e,n){return async function(r,i){var o,a,l,u,c,f;let v=await t.stream(e,n,i?.signal,i?.timeoutMs,i?.headers,r,i?.contextValues);(c=i?.onHeader)===null||c===void 0||c.call(i,v.header);let y;try{for(var m=!0,T=Ty(v.message),S;S=await T.next(),o=S.done,!o;m=!0)u=S.value,m=!1,y=u}catch(O){a={error:O}}finally{try{!m&&!o&&(l=T.return)&&await l.call(T)}finally{if(a)throw a.error}}if(!y)throw new Q("protocol error: missing response message",C.Internal);return(f=i?.onTrailer)===null||f===void 0||f.call(i,v.trailer),y}}function Kw(t,e,n){return function(r,i){return Py(t.stream(e,n,i?.signal,i?.timeoutMs,i?.headers,r,i?.contextValues),i)}}function Py(t,e){let n=function(){var r,i;return Hw(this,arguments,function*(){let o=yield Jr(t);(r=e?.onHeader)===null||r===void 0||r.call(e,o.header),yield Jr(yield*$w(Ty(o.message))),(i=e?.onTrailer)===null||i===void 0||i.call(e,o.trailer)})}()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function Sy(...t){let e=new AbortController,n=t.filter(i=>i!==void 0).concat(e.signal);for(let i of n){if(i.aborted){r.apply(i);break}i.addEventListener("abort",r)}function r(){e.signal.aborted||e.abort(Ad(this));for(let i of n)i.removeEventListener("abort",r)}return e}function ky(t){let e=new AbortController,n=()=>{e.abort(new Q("the operation timed out",C.DeadlineExceeded))},r;return t!==void 0&&(t<=0?n():r=setTimeout(n,t)),{signal:e.signal,cleanup:()=>clearTimeout(r)}}function Ad(t){if(!t.aborted)return;if(t.reason!==void 0)return t.reason;let e=new Error("This operation was aborted");return e.name="AbortError",e}function js(){return{get(t){return t.id in this?this[t.id]:t.defaultValue},set(t,e){return this[t.id]=e,this},delete(t){return delete this[t.id],this}}}function $s(t,e,n){let r=typeof e=="string"?e:e.typeName,i=typeof n=="string"?n:n.name;return t.toString().replace(/\/?$/,`/${r}/${i}`)}function qd(t,e){return e instanceof t?e:new t(e)}function Ry(t,e){function n(r){return r.done===!0?r:{done:r.done,value:qd(t,r.value)}}return{[Symbol.asyncIterator](){let r=e[Symbol.asyncIterator](),i={next:()=>r.next().then(n)};return r.throw!==void 0&&(i.throw=o=>r.throw(o).then(n)),r.return!==void 0&&(i.return=o=>r.return(o).then(n)),i}}}function Hs(t){var e;let n=Object.assign({},t);return(e=n.ignoreUnknownFields)!==null&&e!==void 0||(n.ignoreUnknownFields=!0),n}function Ys(t,e,n,r){let i=e?xy(t.I,r):Jy(t.I,n);return{parse:(e?xy(t.O,r):Jy(t.O,n)).parse,serialize:i.serialize}}function xy(t,e){return{parse(n){try{return t.fromBinary(n,e)}catch(r){let i=r instanceof Error?r.message:String(r);throw new Q(`parse binary: ${i}`,C.InvalidArgument)}},serialize(n){try{return n.toBinary(e)}catch(r){let i=r instanceof Error?r.message:String(r);throw new Q(`serialize binary: ${i}`,C.Internal)}}}}function Jy(t,e){var n,r;let i=(n=e?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,o=(r=e?.textDecoder)!==null&&r!==void 0?r:new TextDecoder,a=Hs(e);return{parse(l){try{let u=o.decode(l);return t.fromJsonString(u,a)}catch(u){throw Q.from(u,C.InvalidArgument)}},serialize(l){try{let u=l.toJsonString(a);return i.encode(u)}catch(u){throw Q.from(u,C.Internal)}}}}var Qw=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var Ey="application/proto",Ny="application/json",Oy="application/connect+proto",Iy="application/connect+json";function My(t){let e=t?.match(Qw);if(!e)return;let n=!!e[1],r=!!e[3];return{stream:n,binary:r}}function bi(t,e,n){if(e&&new Headers(e).forEach((a,l)=>n.metadata.append(l,a)),typeof t!="object"||t==null||Array.isArray(t)||!("code"in t)||typeof t.code!="string")throw n;let r=hy(t.code);if(r===void 0)throw n;let i=t.message;if(i!=null&&typeof i!="string")throw n;let o=new Q(i??"",r,e);if("details"in t&&Array.isArray(t.details))for(let a of t.details){if(a===null||typeof a!="object"||Array.isArray(a)||typeof a.type!="string"||typeof a.value!="string"||"debug"in a&&typeof a.debug!="object")throw n;try{o.details.push({type:a.type,value:Ht.dec(a.value),debug:a.debug})}catch{throw n}}return o}var Ws=2;function Dd(t){let e=new Q("invalid end stream",C.InvalidArgument),n;try{n=JSON.parse(typeof t=="string"?t:new TextDecoder().decode(t))}catch{throw e}if(typeof n!="object"||n==null||Array.isArray(n))throw e;let r=new Headers;if("metadata"in n){if(typeof n.metadata!="object"||n.metadata==null||Array.isArray(n.metadata))throw e;for(let[o,a]of Object.entries(n.metadata)){if(!Array.isArray(a)||a.some(l=>typeof l!="string"))throw e;for(let l of a)r.append(o,l)}}let i="error"in n?bi(n.error,r,e):void 0;return{metadata:r,error:i}}var zi="Content-Type",Cy="Content-Length",_s="Content-Encoding";var Vd="Accept-Encoding";var Ly="Connect-Timeout-Ms",Ks="Connect-Protocol-Version",By="User-Agent";function Fy(t){switch(t){case 400:return C.InvalidArgument;case 401:return C.Unauthenticated;case 403:return C.PermissionDenied;case 404:return C.Unimplemented;case 408:return C.DeadlineExceeded;case 409:return C.Aborted;case 412:return C.FailedPrecondition;case 413:return C.ResourceExhausted;case 415:return C.Internal;case 429:return C.Unavailable;case 431:return C.ResourceExhausted;case 502:return C.Unavailable;case 503:return C.Unavailable;case 504:return C.Unavailable;default:return C.Unknown}}function Qs(t){let e=new Headers,n=new Headers;return t.forEach((r,i)=>{i.toLowerCase().startsWith("trailer-")?n.set(i.substring(8),r):e.set(i,r)}),[e,n]}var Xs="1";function Zs(t,e,n,r,i){let o=new Headers(r??{});return n!==void 0&&o.set(Ly,`${n}`),o.set(zi,t==E.Unary?e?Ey:Ny:e?Oy:Iy),o.set(Ks,Xs),i&&o.set(By,"connect-es/1.3.0"),o}function el(t,e,n){let r=n.get("Content-Type"),i=My(r);if(e!==200){let o=new Q(`HTTP ${e}`,Fy(e),n);if(t==E.Unary&&i&&!i.binary)return{isUnaryError:!0,unaryError:o};throw o}return{isUnaryError:!1}}var Uy="application/";function Zw(t,e){return e?Ht.enc(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):encodeURIComponent(new TextDecoder().decode(t))}function bd(t,e,n){let r=`?connect=v${Xs}`,i=t.header.get(zi);i?.indexOf(Uy)===0&&(r+="&encoding="+encodeURIComponent(i.slice(Uy.length)));let o=t.header.get(_s);o!==null&&o!=="identity"&&(r+="&compression="+encodeURIComponent(o),n=!0),n&&(r+="&base64=1"),r+="&message="+Zw(e,n);let a=t.url+r,l=new Headers(t.header);return[Ks,zi,Cy,_s,Vd].forEach(u=>l.delete(u)),Object.assign(Object.assign({},t),{init:Object.assign(Object.assign({},t.init),{method:"GET"}),url:a,header:l})}function zd(t){let e=qy(t.next,t.interceptors),[n,r,i]=Ay(t),o=Object.assign(Object.assign({},t.req),{message:qd(t.req.method.I,t.req.message),signal:n});return e(o).then(a=>(i(),a),r)}function Gd(t){let e=qy(t.next,t.interceptors),[n,r,i]=Ay(t),o=Object.assign(Object.assign({},t.req),{message:Ry(t.req.method.I,t.req.message),signal:n}),a=!1;return n.addEventListener("abort",function(){var l,u;let c=t.req.message[Symbol.asyncIterator]();a||(l=c.throw)===null||l===void 0||l.call(c,this.reason).catch(()=>{}),(u=c.return)===null||u===void 0||u.call(c).catch(()=>{})}),e(o).then(l=>Object.assign(Object.assign({},l),{message:{[Symbol.asyncIterator](){let u=l.message[Symbol.asyncIterator]();return{next(){return u.next().then(c=>(c.done==!0&&(a=!0,i()),c),r)}}}}}),r)}function Ay(t){let{signal:e,cleanup:n}=ky(t.timeoutMs),r=Sy(t.signal,e);return[r.signal,function(o){let a=Q.from(e.aborted?Ad(e):o);return r.abort(a),n(),Promise.reject(a)},function(){n(),r.abort()}]}function qy(t,e){var n;return(n=e?.concat().reverse().reduce((r,i)=>i(r),t))!==null&&n!==void 0?n:t}function Dy(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var Gi=function(t){return this instanceof Gi?(this.v=t,this):new Gi(t)},ev=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,o=[];return i={},l("next"),l("throw"),l("return",a),i[Symbol.asyncIterator]=function(){return this},i;function a(m){return function(T){return Promise.resolve(T).then(m,v)}}function l(m,T){r[m]&&(i[m]=function(S){return new Promise(function(O,g){o.push([m,S,O,g])>1||u(m,S)})},T&&(i[m]=T(i[m])))}function u(m,T){try{c(r[m](T))}catch(S){y(o[0][3],S)}}function c(m){m.value instanceof Gi?Promise.resolve(m.value.v).then(f,v):y(o[0][2],m)}function f(m){u("next",m)}function v(m){u("throw",m)}function y(m,T){m(T),o.shift(),o.length&&u(o[0][0],o[0][1])}};function jd(t){var e;Dy();let n=(e=t.useBinaryFormat)!==null&&e!==void 0?e:!1;return{async unary(r,i,o,a,l,u,c){var f;let{serialize:v,parse:y}=Ys(i,n,t.jsonOptions,t.binaryOptions);return a=a===void 0?t.defaultTimeoutMs:a<=0?void 0:a,await zd({interceptors:t.interceptors,signal:o,timeoutMs:a,req:{stream:!1,service:r,method:i,url:$s(t.baseUrl,r,i),init:{method:"POST",credentials:(f=t.credentials)!==null&&f!==void 0?f:"same-origin",redirect:"error",mode:"cors"},header:Zs(i.kind,n,a,l,!1),contextValues:c??js(),message:u},next:async m=>{var T;let S=t.useHttpGet===!0&&i.idempotency===Ri.NoSideEffects,O=null;S?m=bd(m,v(m.message),n):O=v(m.message);let d=await((T=t.fetch)!==null&&T!==void 0?T:globalThis.fetch)(m.url,Object.assign(Object.assign({},m.init),{headers:m.header,signal:m.signal,body:O})),{isUnaryError:w,unaryError:k}=el(i.kind,d.status,d.headers);if(w)throw bi(await d.json(),Bd(...Qs(d.headers)),k);let[J,N]=Qs(d.headers);return{stream:!1,service:r,method:i,header:J,message:n?y(new Uint8Array(await d.arrayBuffer())):i.O.fromJson(await d.json(),Hs(t.jsonOptions)),trailer:N}}})},async stream(r,i,o,a,l,u,c){var f;let{serialize:v,parse:y}=Ys(i,n,t.jsonOptions,t.binaryOptions);function m(S,O,g){return ev(this,arguments,function*(){let w=Fd(S).getReader(),k=!1;for(;;){let J=yield Gi(w.read());if(J.done)break;let{flags:N,data:I}=J.value;if((N&Ws)===Ws){k=!0;let M=Dd(I);if(M.error){let $=M.error;throw g.forEach((B,Ke)=>{$.metadata.append(Ke,B)}),$}M.metadata.forEach(($,B)=>O.set(B,$));continue}yield yield Gi(y(I))}if(!k)throw"missing EndStreamResponse"})}async function T(S){if(i.kind!=E.ServerStreaming)throw"The fetch API does not support streaming request bodies";let O=await S[Symbol.asyncIterator]().next();if(O.done==!0)throw"missing request message";return Ud(0,v(O.value))}return a=a===void 0?t.defaultTimeoutMs:a<=0?void 0:a,await Gd({interceptors:t.interceptors,timeoutMs:a,signal:o,req:{stream:!0,service:r,method:i,url:$s(t.baseUrl,r,i),init:{method:"POST",credentials:(f=t.credentials)!==null&&f!==void 0?f:"same-origin",redirect:"error",mode:"cors"},header:Zs(i.kind,n,a,l,!1),contextValues:c??js(),message:u},next:async S=>{var O;let d=await((O=t.fetch)!==null&&O!==void 0?O:globalThis.fetch)(S.url,Object.assign(Object.assign({},S.init),{headers:S.header,signal:S.signal,body:await T(S.message)}));if(el(i.kind,d.status,d.headers),d.body===null)throw"missing response body";let w=new Headers;return Object.assign(Object.assign({},S),{header:d.headers,trailer:w,message:m(d.body,w,d.headers)})}})}}}var tv="https://demo.lunabrain.com",ji=jd({baseUrl:`${tv}/api`||"error"}),X1=yn(fy,ji),Z1=yn(my,ji),$d=yn(py,ji),eR=yn(gy,ji),tR=yn(yy,ji);var al=at(st(),1),Hi=at(st(),1),Rt=at(st(),1);var nv={data:""},rv=t=>typeof window=="object"?((t?t.querySelector("#_goober"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:t||nv;var iv=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,ov=/\/\*[^]*?\*\/| +/g,Vy=/\n+/g,Kt=(t,e)=>{let n="",r="",i="";for(let o in t){let a=t[o];o[0]=="@"?o[1]=="i"?n=o+" "+a+";":r+=o[1]=="f"?Kt(a,o):o+"{"+Kt(a,o[1]=="k"?"":e)+"}":typeof a=="object"?r+=Kt(a,e?e.replace(/([^,])+/g,l=>o.replace(/(^:.*)|([^,])+/g,u=>/&/.test(u)?u.replace(/&/g,l):l?l+" "+u:u)):o):a!=null&&(o=/^--/.test(o)?o:o.replace(/[A-Z]/g,"-$&").toLowerCase(),i+=Kt.p?Kt.p(o,a):o+":"+a+";")}return n+(e&&i?e+"{"+i+"}":i)+r},kt={},by=t=>{if(typeof t=="object"){let e="";for(let n in t)e+=n+by(t[n]);return e}return t},av=(t,e,n,r,i)=>{let o=by(t),a=kt[o]||(kt[o]=(u=>{let c=0,f=11;for(;c>>0;return"go"+f})(o));if(!kt[a]){let u=o!==t?t:(c=>{let f,v,y=[{}];for(;f=iv.exec(c.replace(ov,""));)f[4]?y.shift():f[3]?(v=f[3].replace(Vy," ").trim(),y.unshift(y[0][v]=y[0][v]||{})):y[0][f[1]]=f[2].replace(Vy," ").trim();return y[0]})(t);kt[a]=Kt(i?{["@keyframes "+a]:u}:u,n?"":"."+a)}let l=n&&kt.g?kt.g:null;return n&&(kt.g=kt[a]),((u,c,f,v)=>{v?c.data=c.data.replace(v,u):c.data.indexOf(u)===-1&&(c.data=f?u+c.data:c.data+u)})(kt[a],e,r,l),a},sv=(t,e,n)=>t.reduce((r,i,o)=>{let a=e[o];if(a&&a.call){let l=a(n),u=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=u?"."+u:l&&typeof l=="object"?l.props?"":Kt(l,""):l===!1?"":l}return r+i+(a??"")},"");function $i(t){let e=this||{},n=t.call?t(e.p):t;return av(n.unshift?n.raw?sv(n,[].slice.call(arguments,1),e.p):n.reduce((r,i)=>Object.assign(r,i&&i.call?i(e.p):i),{}):n,rv(e.target),e.g,e.o,e.k)}var zy,Hd,Yd,rR=$i.bind({g:1}),ke=$i.bind({k:1});function Gy(t,e,n,r){Kt.p=e,zy=t,Hd=n,Yd=r}function Ie(t,e){let n=this||{};return function(){let r=arguments;function i(o,a){let l=Object.assign({},o),u=l.className||i.className;n.p=Object.assign({theme:Hd&&Hd()},l),n.o=/ *go\d+/.test(u),l.className=$i.apply(n,r)+(u?" "+u:""),e&&(l.ref=a);let c=t;return t[0]&&(c=l.as||t,delete l.as),Yd&&c[0]&&Yd(l),zy(c,l)}return e?e(i):i}}var hn=at(st(),1);var Qt=at(st(),1),lv=t=>typeof t=="function",ol=(t,e)=>lv(t)?t(e):t,uv=(()=>{let t=0;return()=>(++t).toString()})(),$y=(()=>{let t;return()=>{if(t===void 0&&typeof window<"u"){let e=matchMedia("(prefers-reduced-motion: reduce)");t=!e||e.matches}return t}})(),cv=20,nl=new Map,dv=1e3,jy=t=>{if(nl.has(t))return;let e=setTimeout(()=>{nl.delete(t),wn({type:4,toastId:t})},dv);nl.set(t,e)},fv=t=>{let e=nl.get(t);e&&clearTimeout(e)},Wd=(t,e)=>{switch(e.type){case 0:return{...t,toasts:[e.toast,...t.toasts].slice(0,cv)};case 1:return e.toast.id&&fv(e.toast.id),{...t,toasts:t.toasts.map(o=>o.id===e.toast.id?{...o,...e.toast}:o)};case 2:let{toast:n}=e;return t.toasts.find(o=>o.id===n.id)?Wd(t,{type:1,toast:n}):Wd(t,{type:0,toast:n});case 3:let{toastId:r}=e;return r?jy(r):t.toasts.forEach(o=>{jy(o.id)}),{...t,toasts:t.toasts.map(o=>o.id===r||r===void 0?{...o,visible:!1}:o)};case 4:return e.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(o=>o.id!==e.toastId)};case 5:return{...t,pausedAt:e.time};case 6:let i=e.time-(t.pausedAt||0);return{...t,pausedAt:void 0,toasts:t.toasts.map(o=>({...o,pauseDuration:o.pauseDuration+i}))}}},rl=[],il={toasts:[],pausedAt:void 0},wn=t=>{il=Wd(il,t),rl.forEach(e=>{e(il)})},mv={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},pv=(t={})=>{let[e,n]=(0,al.useState)(il);(0,al.useEffect)(()=>(rl.push(n),()=>{let i=rl.indexOf(n);i>-1&&rl.splice(i,1)}),[e]);let r=e.toasts.map(i=>{var o,a;return{...t,...t[i.type],...i,duration:i.duration||((o=t[i.type])==null?void 0:o.duration)||t?.duration||mv[i.type],style:{...t.style,...(a=t[i.type])==null?void 0:a.style,...i.style}}});return{...e,toasts:r}},gv=(t,e="blank",n)=>({createdAt:Date.now(),visible:!0,type:e,ariaProps:{role:"status","aria-live":"polite"},message:t,pauseDuration:0,...n,id:n?.id||uv()}),Yi=t=>(e,n)=>{let r=gv(e,t,n);return wn({type:2,toast:r}),r.id},Me=(t,e)=>Yi("blank")(t,e);Me.error=Yi("error");Me.success=Yi("success");Me.loading=Yi("loading");Me.custom=Yi("custom");Me.dismiss=t=>{wn({type:3,toastId:t})};Me.remove=t=>wn({type:4,toastId:t});Me.promise=(t,e,n)=>{let r=Me.loading(e.loading,{...n,...n?.loading});return t.then(i=>(Me.success(ol(e.success,i),{id:r,...n,...n?.success}),i)).catch(i=>{Me.error(ol(e.error,i),{id:r,...n,...n?.error})}),t};var yv=(t,e)=>{wn({type:1,toast:{id:t,height:e}})},hv=()=>{wn({type:5,time:Date.now()})},wv=t=>{let{toasts:e,pausedAt:n}=pv(t);(0,Hi.useEffect)(()=>{if(n)return;let o=Date.now(),a=e.map(l=>{if(l.duration===1/0)return;let u=(l.duration||0)+l.pauseDuration-(o-l.createdAt);if(u<0){l.visible&&Me.dismiss(l.id);return}return setTimeout(()=>Me.dismiss(l.id),u)});return()=>{a.forEach(l=>l&&clearTimeout(l))}},[e,n]);let r=(0,Hi.useCallback)(()=>{n&&wn({type:6,time:Date.now()})},[n]),i=(0,Hi.useCallback)((o,a)=>{let{reverseOrder:l=!1,gutter:u=8,defaultPosition:c}=a||{},f=e.filter(m=>(m.position||c)===(o.position||c)&&m.height),v=f.findIndex(m=>m.id===o.id),y=f.filter((m,T)=>Tm.visible).slice(...l?[y+1]:[0,y]).reduce((m,T)=>m+(T.height||0)+u,0)},[e]);return{toasts:e,handlers:{updateHeight:yv,startPause:hv,endPause:r,calculateOffset:i}}},vv=ke` +`:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(i){case 0:a=o,i=1;break;case 1:n[r++]=a<<2|(o&48)>>4,a=o,i=2;break;case 2:n[r++]=(a&15)<<4|(o&60)>>2,a=o,i=3;break;case 3:n[r++]=(a&3)<<6|o,i=0;break}}if(i==1)throw Error("invalid base64 string.");return n.subarray(0,r)},enc(t){let e="",n=0,r,i=0;for(let o=0;o>2],i=(r&3)<<4,n=1;break;case 1:e+=Tt[i|r>>4],i=(r&15)<<2,n=2;break;case 2:e+=Tt[i|r>>6],e+=Tt[r&63],n=0;break}return n&&(e+=Tt[i],e+="=",n==1&&(e+="=")),e}};var Yg={ignoreUnknownFields:!1},Wg={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function Cw(t){return t?Object.assign(Object.assign({},Yg),t):Yg}function Lw(t){return t?Object.assign(Object.assign({},Wg),t):Wg}function Oa(t){let e=t(Bw,_g);return{makeReadOptions:Cw,makeWriteOptions:Lw,readMessage(n,r,i,o){if(r==null||Array.isArray(r)||typeof r!="object")throw new Error(`cannot decode message ${n.typeName} from JSON: ${this.debug(r)}`);o=o??new n;let a={};for(let[l,u]of Object.entries(r)){let c=n.fields.findJsonName(l);if(!c){if(!i.ignoreUnknownFields)throw new Error(`cannot decode message ${n.typeName} from JSON: key "${l}" is unknown`);continue}let f=c.localName,v=o;if(c.oneof){if(u===null&&c.kind=="scalar")continue;let y=a[c.oneof.localName];if(y)throw new Error(`cannot decode message ${n.typeName} from JSON: multiple keys for oneof "${c.oneof.name}" present: "${y}", "${l}"`);a[c.oneof.localName]=l,v=v[c.oneof.localName]={case:f},f="value"}if(c.repeated){if(u===null)continue;if(!Array.isArray(u))throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`);let y=v[f];for(let m of u){if(m===null)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(m)}`);let T;switch(c.kind){case"message":T=c.T.fromJson(m,i);break;case"enum":if(T=Bc(c.T,m,i.ignoreUnknownFields),T===void 0)continue;break;case"scalar":try{T=Pi(c.T,m,c.L)}catch(S){let O=`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(m)}`;throw S instanceof Error&&S.message.length>0&&(O+=`: ${S.message}`),new Error(O)}break}y.push(T)}}else if(c.kind=="map"){if(u===null)continue;if(Array.isArray(u)||typeof u!="object")throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`);let y=v[f];for(let[m,T]of Object.entries(u)){if(T===null)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: map value null`);let S;switch(c.V.kind){case"message":S=c.V.T.fromJson(T,i);break;case"enum":if(S=Bc(c.V.T,T,i.ignoreUnknownFields),S===void 0)continue;break;case"scalar":try{S=Pi(c.V.T,T,Ve.BIGINT)}catch(O){let g=`cannot decode map value for field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`;throw O instanceof Error&&O.message.length>0&&(g+=`: ${O.message}`),new Error(g)}break}try{y[Pi(c.K,c.K==P.BOOL?m=="true"?!0:m=="false"?!1:m:m,Ve.BIGINT).toString()]=S}catch(O){let g=`cannot decode map key for field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`;throw O instanceof Error&&O.message.length>0&&(g+=`: ${O.message}`),new Error(g)}}}else switch(c.kind){case"message":let y=c.T;if(u===null&&y.typeName!="google.protobuf.Value"){if(c.oneof)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: null is invalid for oneof field "${l}"`);continue}v[f]instanceof p?v[f].fromJson(u,i):(v[f]=y.fromJson(u,i),y.fieldWrapper&&!c.oneof&&(v[f]=y.fieldWrapper.unwrapField(v[f])));break;case"enum":let m=Bc(c.T,u,i.ignoreUnknownFields);m!==void 0&&(v[f]=m);break;case"scalar":try{v[f]=Pi(c.T,u,c.L)}catch(T){let S=`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`;throw T instanceof Error&&T.message.length>0&&(S+=`: ${T.message}`),new Error(S)}break}}return o},writeMessage(n,r){let i=n.getType(),o={},a;try{for(let l of i.fields.byMember()){let u;if(l.kind=="oneof"){let c=n[l.localName];if(c.value===void 0)continue;if(a=l.findField(c.case),!a)throw"oneof case not found: "+c.case;u=e(a,c.value,r)}else a=l,u=e(a,n[a.localName],r);u!==void 0&&(o[r.useProtoFieldName?a.name:a.jsonName]=u)}}catch(l){let u=a?`cannot encode field ${i.typeName}.${a.name} to JSON`:`cannot encode message ${i.typeName} to JSON`,c=l instanceof Error?l.message:String(l);throw new Error(u+(c.length>0?`: ${c}`:""))}return o},readScalar:Pi,writeScalar:_g,debug:Kg}}function Kg(t){if(t===null)return"null";switch(typeof t){case"object":return Array.isArray(t)?"array":"object";case"string":return t.length>100?"string":`"${t.split('"').join('\\"')}"`;default:return String(t)}}function Pi(t,e,n){switch(t){case P.DOUBLE:case P.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""||typeof e=="string"&&e.trim().length!==e.length||typeof e!="string"&&typeof e!="number")break;let r=Number(e);if(Number.isNaN(r)||!Number.isFinite(r))break;return t==P.FLOAT&&ha(r),r;case P.INT32:case P.FIXED32:case P.SFIXED32:case P.SINT32:case P.UINT32:if(e===null)return 0;let i;if(typeof e=="number"?i=e:typeof e=="string"&&e.length>0&&e.trim().length===e.length&&(i=Number(e)),i===void 0)break;return t==P.UINT32?vi(i):_n(i),i;case P.INT64:case P.SFIXED64:case P.SINT64:if(e===null)return L.zero;if(typeof e!="number"&&typeof e!="string")break;let o=L.parse(e);return n?o.toString():o;case P.FIXED64:case P.UINT64:if(e===null)return L.zero;if(typeof e!="number"&&typeof e!="string")break;let a=L.uParse(e);return n?a.toString():a;case P.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case P.STRING:if(e===null)return"";if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case P.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return Ht.dec(e)}throw new Error}function Bc(t,e,n){if(e===null)return 0;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":let r=t.findName(e);if(r||n)return r?.no;break}throw new Error(`cannot decode enum ${t.typeName} from JSON: ${Kg(e)}`)}function Bw(t,e,n,r){var i;if(e===void 0)return e;if(e===0&&!n)return;if(r)return e;if(t.typeName=="google.protobuf.NullValue")return null;let o=t.findNumber(e);return(i=o?.name)!==null&&i!==void 0?i:e}function _g(t,e,n){if(e!==void 0)switch(t){case P.INT32:case P.SFIXED32:case P.SINT32:case P.FIXED32:case P.UINT32:return j(typeof e=="number"),e!=0||n?e:void 0;case P.FLOAT:case P.DOUBLE:return j(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e!==0||n?e:void 0;case P.STRING:return j(typeof e=="string"),e.length>0||n?e:void 0;case P.BOOL:return j(typeof e=="boolean"),e||n?e:void 0;case P.UINT64:case P.FIXED64:case P.INT64:case P.SFIXED64:case P.SINT64:return j(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),n||e!=0?e.toString(10):void 0;case P.BYTES:return j(e instanceof Uint8Array),n||e.byteLength>0?Ht.enc(e):void 0}}function Qg(){return Oa((t,e)=>function(r,i,o){if(r.kind=="map"){let a={};switch(r.V.kind){case"scalar":for(let[u,c]of Object.entries(i)){let f=e(r.V.T,c,!0);j(f!==void 0),a[u.toString()]=f}break;case"message":for(let[u,c]of Object.entries(i))a[u.toString()]=c.toJson(o);break;case"enum":let l=r.V.T;for(let[u,c]of Object.entries(i)){j(c===void 0||typeof c=="number");let f=t(l,c,!0,o.enumAsInteger);j(f!==void 0),a[u.toString()]=f}break}return o.emitDefaultValues||Object.keys(a).length>0?a:void 0}else if(r.repeated){let a=[];switch(r.kind){case"scalar":for(let l=0;l0?a:void 0}else switch(r.kind){case"scalar":return e(r.T,i,!!r.oneof||r.opt||o.emitDefaultValues);case"enum":return t(r.T,i,!!r.oneof||r.opt||o.emitDefaultValues,o.enumAsInteger);case"message":return i!==void 0?gn(r.T,i).toJson(o):void 0}})}function Ma(){return{setEnumType:Ec,initPartial(t,e){if(t===void 0)return;let n=e.getType();for(let r of n.fields.byMember()){let i=r.localName,o=e,a=t;if(a[i]!==void 0)switch(r.kind){case"oneof":let l=a[i].case;if(l===void 0)continue;let u=r.findField(l),c=a[i].value;u&&u.kind=="message"&&!(c instanceof u.T)?c=new u.T(c):u&&u.kind==="scalar"&&u.T===P.BYTES&&(c=Si(c)),o[i]={case:l,value:c};break;case"scalar":case"enum":let f=a[i];r.T===P.BYTES&&(f=r.repeated?f.map(Si):Si(f)),o[i]=f;break;case"map":switch(r.V.kind){case"scalar":case"enum":if(r.V.T===P.BYTES)for(let[m,T]of Object.entries(a[i]))o[i][m]=Si(T);else Object.assign(o[i],a[i]);break;case"message":let y=r.V.T;for(let m of Object.keys(a[i])){let T=a[i][m];y.fieldWrapper||(T=new y(T)),o[i][m]=T}break}break;case"message":let v=r.T;if(r.repeated)o[i]=a[i].map(y=>y instanceof v?y:new v(y));else if(a[i]!==void 0){let y=a[i];v.fieldWrapper?v.typeName==="google.protobuf.BytesValue"?o[i]=Si(y):o[i]=y:o[i]=y instanceof v?y:new v(y)}break}}},equals(t,e,n){return e===n?!0:!e||!n?!1:t.fields.byMember().every(r=>{let i=e[r.localName],o=n[r.localName];if(r.repeated){if(i.length!==o.length)return!1;switch(r.kind){case"message":return i.every((a,l)=>r.T.equals(a,o[l]));case"scalar":return i.every((a,l)=>wt(r.T,a,o[l]));case"enum":return i.every((a,l)=>wt(P.INT32,a,o[l]))}throw new Error(`repeated cannot contain ${r.kind}`)}switch(r.kind){case"message":return r.T.equals(i,o);case"enum":return wt(P.INT32,i,o);case"scalar":return wt(r.T,i,o);case"oneof":if(i.case!==o.case)return!1;let a=r.findField(i.case);if(a===void 0)return!0;switch(a.kind){case"message":return a.T.equals(i.value,o.value);case"enum":return wt(P.INT32,i.value,o.value);case"scalar":return wt(a.T,i.value,o.value)}throw new Error(`oneof cannot contain ${a.kind}`);case"map":let l=Object.keys(i).concat(Object.keys(o));switch(r.V.kind){case"message":let u=r.V.T;return l.every(f=>u.equals(i[f],o[f]));case"enum":return l.every(f=>wt(P.INT32,i[f],o[f]));case"scalar":let c=r.V.T;return l.every(f=>wt(c,i[f],o[f]))}break}})},clone(t){let e=t.getType(),n=new e,r=n;for(let i of e.fields.byMember()){let o=t[i.localName],a;if(i.repeated)a=o.map(Ia);else if(i.kind=="map"){a=r[i.localName];for(let[l,u]of Object.entries(o))a[l]=Ia(u)}else i.kind=="oneof"?a=i.findField(o.case)?{case:o.case,value:Ia(o.value)}:{case:void 0}:a=Ia(o);r[i.localName]=a}return n}}}function Ia(t){if(t===void 0)return t;if(t instanceof p)return t.clone();if(t instanceof Uint8Array){let e=new Uint8Array(t.byteLength);return e.set(t),e}return t}function Si(t){return t instanceof Uint8Array?t:new Uint8Array(t)}var Xn=class{constructor(e,n){this._fields=e,this._normalizer=n}findJsonName(e){if(!this.jsonNames){let n={};for(let r of this.list())n[r.jsonName]=n[r.name]=r;this.jsonNames=n}return this.jsonNames[e]}find(e){if(!this.numbers){let n={};for(let r of this.list())n[r.no]=r;this.numbers=n}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,n)=>e.no-n.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];let e=this.members,n;for(let r of this.list())r.oneof?r.oneof!==n&&(n=r.oneof,e.push(n)):e.push(r)}return this.members}};function ki(t,e){let n=Zg(t);return e?n:qw(Aw(n))}function Xg(t){return ki(t,!1)}var Ca=Zg;function Zg(t){let e=!1,n=[];for(let r=0;r`${t}$`,Aw=t=>Uw.has(t)?ey(t):t,qw=t=>Fw.has(t)?ey(t):t;var Zn=class{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=Xg(e)}addField(e){j(e.oneof===this,`field ${e.name} not one of ${this.name}`),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let n=0;n0?`: ${l}`:""))}return n.writeUnknownFields&&this.writeUnknownFields(t,e),e}})}function ny(){return Oa((t,e)=>function(r,i,o){if(r.kind=="map"){let a={};switch(r.V.kind){case"scalar":for(let[u,c]of Object.entries(i)){let f=e(r.V.T,c,!0);j(f!==void 0),a[u.toString()]=f}break;case"message":for(let[u,c]of Object.entries(i))a[u.toString()]=c.toJson(o);break;case"enum":let l=r.V.T;for(let[u,c]of Object.entries(i)){j(c===void 0||typeof c=="number");let f=t(l,c,!0,o.enumAsInteger);j(f!==void 0),a[u.toString()]=f}break}return o.emitDefaultValues||Object.keys(a).length>0?a:void 0}else if(r.repeated){let a=[];switch(r.kind){case"scalar":for(let l=0;l0?a:void 0}else{if(i===void 0){if(!r.oneof&&!r.opt)throw"required field not set";return}switch(r.kind){case"scalar":return e(r.T,i,!0);case"enum":return t(r.T,i,!0,o.enumAsInteger);case"message":return gn(r.T,i).toJson(o)}}})}var h=wa("proto2",ny(),ty(),Object.assign(Object.assign({},Ma()),{newFieldList(t){return new Xn(t,Vw)},initFields(t){for(let e of t.getType().fields.byMember()){let n=e.localName,r=t;if(e.repeated){r[n]=[];continue}switch(e.kind){case"oneof":r[n]={case:void 0};break;case"map":r[n]={};break;case"scalar":case"enum":case"message":break}}}}));function Vw(t){var e,n,r,i,o;let a=[],l;for(let u of typeof t=="function"?t():t){let c=u;if(c.localName=ki(u.name,u.oneof!==void 0),c.jsonName=(e=u.jsonName)!==null&&e!==void 0?e:Ca(u.name),c.repeated=(n=u.repeated)!==null&&n!==void 0?n:!1,u.kind=="scalar"&&(c.L=(r=u.L)!==null&&r!==void 0?r:Ve.BIGINT),u.oneof!==void 0){let f=typeof u.oneof=="string"?u.oneof:u.oneof.name;(!l||l.name!=f)&&(l=new Zn(f)),c.oneof=l,l.addField(c)}u.kind=="message"&&(c.delimited=(i=u.delimited)!==null&&i!==void 0?i:!1),c.packed=(o=u.packed)!==null&&o!==void 0?o:!1,a.push(c)}return a}var E;(function(t){t[t.Unary=0]="Unary",t[t.ServerStreaming=1]="ServerStreaming",t[t.ClientStreaming=2]="ClientStreaming",t[t.BiDiStreaming=3]="BiDiStreaming"})(E||(E={}));var Ri;(function(t){t[t.NoSideEffects=1]="NoSideEffects",t[t.Idempotent=2]="Idempotent"})(Ri||(Ri={}));var Yt;(function(t){t[t.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",t[t.EDITION_PROTO2=998]="EDITION_PROTO2",t[t.EDITION_PROTO3=999]="EDITION_PROTO3",t[t.EDITION_2023=1e3]="EDITION_2023",t[t.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",t[t.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",t[t.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",t[t.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",t[t.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY"})(Yt||(Yt={}));h.util.setEnumType(Yt,"google.protobuf.Edition",[{no:0,name:"EDITION_UNKNOWN"},{no:998,name:"EDITION_PROTO2"},{no:999,name:"EDITION_PROTO3"},{no:1e3,name:"EDITION_2023"},{no:1,name:"EDITION_1_TEST_ONLY"},{no:2,name:"EDITION_2_TEST_ONLY"},{no:99997,name:"EDITION_99997_TEST_ONLY"},{no:99998,name:"EDITION_99998_TEST_ONLY"},{no:99999,name:"EDITION_99999_TEST_ONLY"}]);var xi=class t extends p{constructor(e){super(),this.file=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};xi.runtime=h;xi.typeName="google.protobuf.FileDescriptorSet";xi.fields=h.util.newFieldList(()=>[{no:1,name:"file",kind:"message",T:er,repeated:!0}]);var er=class t extends p{constructor(e){super(),this.dependency=[],this.publicDependency=[],this.weakDependency=[],this.messageType=[],this.enumType=[],this.service=[],this.extension=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};er.runtime=h;er.typeName="google.protobuf.FileDescriptorProto";er.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"package",kind:"scalar",T:9,opt:!0},{no:3,name:"dependency",kind:"scalar",T:9,repeated:!0},{no:10,name:"public_dependency",kind:"scalar",T:5,repeated:!0},{no:11,name:"weak_dependency",kind:"scalar",T:5,repeated:!0},{no:4,name:"message_type",kind:"message",T:rt,repeated:!0},{no:5,name:"enum_type",kind:"message",T:Pt,repeated:!0},{no:6,name:"service",kind:"message",T:lr,repeated:!0},{no:7,name:"extension",kind:"message",T:Wt,repeated:!0},{no:8,name:"options",kind:"message",T:cr,opt:!0},{no:9,name:"source_code_info",kind:"message",T:Pr,opt:!0},{no:12,name:"syntax",kind:"scalar",T:9,opt:!0},{no:14,name:"edition",kind:"enum",T:h.getEnumType(Yt),opt:!0}]);var rt=class t extends p{constructor(e){super(),this.field=[],this.extension=[],this.nestedType=[],this.enumType=[],this.extensionRange=[],this.oneofDecl=[],this.reservedRange=[],this.reservedName=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};rt.runtime=h;rt.typeName="google.protobuf.DescriptorProto";rt.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"field",kind:"message",T:Wt,repeated:!0},{no:6,name:"extension",kind:"message",T:Wt,repeated:!0},{no:3,name:"nested_type",kind:"message",T:rt,repeated:!0},{no:4,name:"enum_type",kind:"message",T:Pt,repeated:!0},{no:5,name:"extension_range",kind:"message",T:tr,repeated:!0},{no:8,name:"oneof_decl",kind:"message",T:or,repeated:!0},{no:7,name:"options",kind:"message",T:dr,opt:!0},{no:9,name:"reserved_range",kind:"message",T:nr,repeated:!0},{no:10,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var tr=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};tr.runtime=h;tr.typeName="google.protobuf.DescriptorProto.ExtensionRange";tr.fields=h.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:rr,opt:!0}]);var nr=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};nr.runtime=h;nr.typeName="google.protobuf.DescriptorProto.ReservedRange";nr.fields=h.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var rr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],this.declaration=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};rr.runtime=h;rr.typeName="google.protobuf.ExtensionRangeOptions";rr.fields=h.util.newFieldList(()=>[{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0},{no:2,name:"declaration",kind:"message",T:ir,repeated:!0},{no:50,name:"features",kind:"message",T:ye,opt:!0},{no:3,name:"verification",kind:"enum",T:h.getEnumType(Ji),opt:!0,default:Ji.UNVERIFIED}]);var Ji;(function(t){t[t.DECLARATION=0]="DECLARATION",t[t.UNVERIFIED=1]="UNVERIFIED"})(Ji||(Ji={}));h.util.setEnumType(Ji,"google.protobuf.ExtensionRangeOptions.VerificationState",[{no:0,name:"DECLARATION"},{no:1,name:"UNVERIFIED"}]);var ir=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};ir.runtime=h;ir.typeName="google.protobuf.ExtensionRangeOptions.Declaration";ir.fields=h.util.newFieldList(()=>[{no:1,name:"number",kind:"scalar",T:5,opt:!0},{no:2,name:"full_name",kind:"scalar",T:9,opt:!0},{no:3,name:"type",kind:"scalar",T:9,opt:!0},{no:5,name:"reserved",kind:"scalar",T:8,opt:!0},{no:6,name:"repeated",kind:"scalar",T:8,opt:!0}]);var Wt=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Wt.runtime=h;Wt.typeName="google.protobuf.FieldDescriptorProto";Wt.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:3,name:"number",kind:"scalar",T:5,opt:!0},{no:4,name:"label",kind:"enum",T:h.getEnumType(Ba),opt:!0},{no:5,name:"type",kind:"enum",T:h.getEnumType(La),opt:!0},{no:6,name:"type_name",kind:"scalar",T:9,opt:!0},{no:2,name:"extendee",kind:"scalar",T:9,opt:!0},{no:7,name:"default_value",kind:"scalar",T:9,opt:!0},{no:9,name:"oneof_index",kind:"scalar",T:5,opt:!0},{no:10,name:"json_name",kind:"scalar",T:9,opt:!0},{no:8,name:"options",kind:"message",T:fr,opt:!0},{no:17,name:"proto3_optional",kind:"scalar",T:8,opt:!0}]);var La;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.GROUP=10]="GROUP",t[t.MESSAGE=11]="MESSAGE",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.ENUM=14]="ENUM",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(La||(La={}));h.util.setEnumType(La,"google.protobuf.FieldDescriptorProto.Type",[{no:1,name:"TYPE_DOUBLE"},{no:2,name:"TYPE_FLOAT"},{no:3,name:"TYPE_INT64"},{no:4,name:"TYPE_UINT64"},{no:5,name:"TYPE_INT32"},{no:6,name:"TYPE_FIXED64"},{no:7,name:"TYPE_FIXED32"},{no:8,name:"TYPE_BOOL"},{no:9,name:"TYPE_STRING"},{no:10,name:"TYPE_GROUP"},{no:11,name:"TYPE_MESSAGE"},{no:12,name:"TYPE_BYTES"},{no:13,name:"TYPE_UINT32"},{no:14,name:"TYPE_ENUM"},{no:15,name:"TYPE_SFIXED32"},{no:16,name:"TYPE_SFIXED64"},{no:17,name:"TYPE_SINT32"},{no:18,name:"TYPE_SINT64"}]);var Ba;(function(t){t[t.OPTIONAL=1]="OPTIONAL",t[t.REPEATED=3]="REPEATED",t[t.REQUIRED=2]="REQUIRED"})(Ba||(Ba={}));h.util.setEnumType(Ba,"google.protobuf.FieldDescriptorProto.Label",[{no:1,name:"LABEL_OPTIONAL"},{no:3,name:"LABEL_REPEATED"},{no:2,name:"LABEL_REQUIRED"}]);var or=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};or.runtime=h;or.typeName="google.protobuf.OneofDescriptorProto";or.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"options",kind:"message",T:pr,opt:!0}]);var Pt=class t extends p{constructor(e){super(),this.value=[],this.reservedRange=[],this.reservedName=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Pt.runtime=h;Pt.typeName="google.protobuf.EnumDescriptorProto";Pt.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"value",kind:"message",T:sr,repeated:!0},{no:3,name:"options",kind:"message",T:gr,opt:!0},{no:4,name:"reserved_range",kind:"message",T:ar,repeated:!0},{no:5,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var ar=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};ar.runtime=h;ar.typeName="google.protobuf.EnumDescriptorProto.EnumReservedRange";ar.fields=h.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var sr=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};sr.runtime=h;sr.typeName="google.protobuf.EnumValueDescriptorProto";sr.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"number",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:yr,opt:!0}]);var lr=class t extends p{constructor(e){super(),this.method=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};lr.runtime=h;lr.typeName="google.protobuf.ServiceDescriptorProto";lr.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"method",kind:"message",T:ur,repeated:!0},{no:3,name:"options",kind:"message",T:hr,opt:!0}]);var ur=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};ur.runtime=h;ur.typeName="google.protobuf.MethodDescriptorProto";ur.fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"input_type",kind:"scalar",T:9,opt:!0},{no:3,name:"output_type",kind:"scalar",T:9,opt:!0},{no:4,name:"options",kind:"message",T:wr,opt:!0},{no:5,name:"client_streaming",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"server_streaming",kind:"scalar",T:8,opt:!0,default:!1}]);var cr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};cr.runtime=h;cr.typeName="google.protobuf.FileOptions";cr.fields=h.util.newFieldList(()=>[{no:1,name:"java_package",kind:"scalar",T:9,opt:!0},{no:8,name:"java_outer_classname",kind:"scalar",T:9,opt:!0},{no:10,name:"java_multiple_files",kind:"scalar",T:8,opt:!0,default:!1},{no:20,name:"java_generate_equals_and_hash",kind:"scalar",T:8,opt:!0},{no:27,name:"java_string_check_utf8",kind:"scalar",T:8,opt:!0,default:!1},{no:9,name:"optimize_for",kind:"enum",T:h.getEnumType(Ei),opt:!0,default:Ei.SPEED},{no:11,name:"go_package",kind:"scalar",T:9,opt:!0},{no:16,name:"cc_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"java_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:18,name:"py_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:42,name:"php_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:23,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:31,name:"cc_enable_arenas",kind:"scalar",T:8,opt:!0,default:!0},{no:36,name:"objc_class_prefix",kind:"scalar",T:9,opt:!0},{no:37,name:"csharp_namespace",kind:"scalar",T:9,opt:!0},{no:39,name:"swift_prefix",kind:"scalar",T:9,opt:!0},{no:40,name:"php_class_prefix",kind:"scalar",T:9,opt:!0},{no:41,name:"php_namespace",kind:"scalar",T:9,opt:!0},{no:44,name:"php_metadata_namespace",kind:"scalar",T:9,opt:!0},{no:45,name:"ruby_package",kind:"scalar",T:9,opt:!0},{no:50,name:"features",kind:"message",T:ye,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var Ei;(function(t){t[t.SPEED=1]="SPEED",t[t.CODE_SIZE=2]="CODE_SIZE",t[t.LITE_RUNTIME=3]="LITE_RUNTIME"})(Ei||(Ei={}));h.util.setEnumType(Ei,"google.protobuf.FileOptions.OptimizeMode",[{no:1,name:"SPEED"},{no:2,name:"CODE_SIZE"},{no:3,name:"LITE_RUNTIME"}]);var dr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};dr.runtime=h;dr.typeName="google.protobuf.MessageOptions";dr.fields=h.util.newFieldList(()=>[{no:1,name:"message_set_wire_format",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"no_standard_descriptor_accessor",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:7,name:"map_entry",kind:"scalar",T:8,opt:!0},{no:11,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:12,name:"features",kind:"message",T:ye,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var fr=class t extends p{constructor(e){super(),this.targets=[],this.editionDefaults=[],this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};fr.runtime=h;fr.typeName="google.protobuf.FieldOptions";fr.fields=h.util.newFieldList(()=>[{no:1,name:"ctype",kind:"enum",T:h.getEnumType(Ni),opt:!0,default:Ni.STRING},{no:2,name:"packed",kind:"scalar",T:8,opt:!0},{no:6,name:"jstype",kind:"enum",T:h.getEnumType(Oi),opt:!0,default:Oi.JS_NORMAL},{no:5,name:"lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:15,name:"unverified_lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:10,name:"weak",kind:"scalar",T:8,opt:!0,default:!1},{no:16,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"retention",kind:"enum",T:h.getEnumType(Fa),opt:!0},{no:19,name:"targets",kind:"enum",T:h.getEnumType(Ua),repeated:!0},{no:20,name:"edition_defaults",kind:"message",T:mr,repeated:!0},{no:21,name:"features",kind:"message",T:ye,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var Ni;(function(t){t[t.STRING=0]="STRING",t[t.CORD=1]="CORD",t[t.STRING_PIECE=2]="STRING_PIECE"})(Ni||(Ni={}));h.util.setEnumType(Ni,"google.protobuf.FieldOptions.CType",[{no:0,name:"STRING"},{no:1,name:"CORD"},{no:2,name:"STRING_PIECE"}]);var Oi;(function(t){t[t.JS_NORMAL=0]="JS_NORMAL",t[t.JS_STRING=1]="JS_STRING",t[t.JS_NUMBER=2]="JS_NUMBER"})(Oi||(Oi={}));h.util.setEnumType(Oi,"google.protobuf.FieldOptions.JSType",[{no:0,name:"JS_NORMAL"},{no:1,name:"JS_STRING"},{no:2,name:"JS_NUMBER"}]);var Fa;(function(t){t[t.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",t[t.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",t[t.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(Fa||(Fa={}));h.util.setEnumType(Fa,"google.protobuf.FieldOptions.OptionRetention",[{no:0,name:"RETENTION_UNKNOWN"},{no:1,name:"RETENTION_RUNTIME"},{no:2,name:"RETENTION_SOURCE"}]);var Ua;(function(t){t[t.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",t[t.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",t[t.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",t[t.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",t[t.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",t[t.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",t[t.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",t[t.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",t[t.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",t[t.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(Ua||(Ua={}));h.util.setEnumType(Ua,"google.protobuf.FieldOptions.OptionTargetType",[{no:0,name:"TARGET_TYPE_UNKNOWN"},{no:1,name:"TARGET_TYPE_FILE"},{no:2,name:"TARGET_TYPE_EXTENSION_RANGE"},{no:3,name:"TARGET_TYPE_MESSAGE"},{no:4,name:"TARGET_TYPE_FIELD"},{no:5,name:"TARGET_TYPE_ONEOF"},{no:6,name:"TARGET_TYPE_ENUM"},{no:7,name:"TARGET_TYPE_ENUM_ENTRY"},{no:8,name:"TARGET_TYPE_SERVICE"},{no:9,name:"TARGET_TYPE_METHOD"}]);var mr=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};mr.runtime=h;mr.typeName="google.protobuf.FieldOptions.EditionDefault";mr.fields=h.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:h.getEnumType(Yt),opt:!0},{no:2,name:"value",kind:"scalar",T:9,opt:!0}]);var pr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};pr.runtime=h;pr.typeName="google.protobuf.OneofOptions";pr.fields=h.util.newFieldList(()=>[{no:1,name:"features",kind:"message",T:ye,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var gr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};gr.runtime=h;gr.typeName="google.protobuf.EnumOptions";gr.fields=h.util.newFieldList(()=>[{no:2,name:"allow_alias",kind:"scalar",T:8,opt:!0},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:7,name:"features",kind:"message",T:ye,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var yr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};yr.runtime=h;yr.typeName="google.protobuf.EnumValueOptions";yr.fields=h.util.newFieldList(()=>[{no:1,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"features",kind:"message",T:ye,opt:!0},{no:3,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var hr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};hr.runtime=h;hr.typeName="google.protobuf.ServiceOptions";hr.fields=h.util.newFieldList(()=>[{no:34,name:"features",kind:"message",T:ye,opt:!0},{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var wr=class t extends p{constructor(e){super(),this.uninterpretedOption=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};wr.runtime=h;wr.typeName="google.protobuf.MethodOptions";wr.fields=h.util.newFieldList(()=>[{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:34,name:"idempotency_level",kind:"enum",T:h.getEnumType(Ii),opt:!0,default:Ii.IDEMPOTENCY_UNKNOWN},{no:35,name:"features",kind:"message",T:ye,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Se,repeated:!0}]);var Ii;(function(t){t[t.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",t[t.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",t[t.IDEMPOTENT=2]="IDEMPOTENT"})(Ii||(Ii={}));h.util.setEnumType(Ii,"google.protobuf.MethodOptions.IdempotencyLevel",[{no:0,name:"IDEMPOTENCY_UNKNOWN"},{no:1,name:"NO_SIDE_EFFECTS"},{no:2,name:"IDEMPOTENT"}]);var Se=class t extends p{constructor(e){super(),this.name=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Se.runtime=h;Se.typeName="google.protobuf.UninterpretedOption";Se.fields=h.util.newFieldList(()=>[{no:2,name:"name",kind:"message",T:vr,repeated:!0},{no:3,name:"identifier_value",kind:"scalar",T:9,opt:!0},{no:4,name:"positive_int_value",kind:"scalar",T:4,opt:!0},{no:5,name:"negative_int_value",kind:"scalar",T:3,opt:!0},{no:6,name:"double_value",kind:"scalar",T:1,opt:!0},{no:7,name:"string_value",kind:"scalar",T:12,opt:!0},{no:8,name:"aggregate_value",kind:"scalar",T:9,opt:!0}]);var vr=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};vr.runtime=h;vr.typeName="google.protobuf.UninterpretedOption.NamePart";vr.fields=h.util.newFieldList(()=>[{no:1,name:"name_part",kind:"scalar",T:9},{no:2,name:"is_extension",kind:"scalar",T:8}]);var ye=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};ye.runtime=h;ye.typeName="google.protobuf.FeatureSet";ye.fields=h.util.newFieldList(()=>[{no:1,name:"field_presence",kind:"enum",T:h.getEnumType(Aa),opt:!0},{no:2,name:"enum_type",kind:"enum",T:h.getEnumType(qa),opt:!0},{no:3,name:"repeated_field_encoding",kind:"enum",T:h.getEnumType(Da),opt:!0},{no:4,name:"utf8_validation",kind:"enum",T:h.getEnumType(Va),opt:!0},{no:5,name:"message_encoding",kind:"enum",T:h.getEnumType(ba),opt:!0},{no:6,name:"json_format",kind:"enum",T:h.getEnumType(za),opt:!0}]);var Aa;(function(t){t[t.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",t[t.EXPLICIT=1]="EXPLICIT",t[t.IMPLICIT=2]="IMPLICIT",t[t.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Aa||(Aa={}));h.util.setEnumType(Aa,"google.protobuf.FeatureSet.FieldPresence",[{no:0,name:"FIELD_PRESENCE_UNKNOWN"},{no:1,name:"EXPLICIT"},{no:2,name:"IMPLICIT"},{no:3,name:"LEGACY_REQUIRED"}]);var qa;(function(t){t[t.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",t[t.OPEN=1]="OPEN",t[t.CLOSED=2]="CLOSED"})(qa||(qa={}));h.util.setEnumType(qa,"google.protobuf.FeatureSet.EnumType",[{no:0,name:"ENUM_TYPE_UNKNOWN"},{no:1,name:"OPEN"},{no:2,name:"CLOSED"}]);var Da;(function(t){t[t.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",t[t.PACKED=1]="PACKED",t[t.EXPANDED=2]="EXPANDED"})(Da||(Da={}));h.util.setEnumType(Da,"google.protobuf.FeatureSet.RepeatedFieldEncoding",[{no:0,name:"REPEATED_FIELD_ENCODING_UNKNOWN"},{no:1,name:"PACKED"},{no:2,name:"EXPANDED"}]);var Va;(function(t){t[t.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",t[t.NONE=1]="NONE",t[t.VERIFY=2]="VERIFY"})(Va||(Va={}));h.util.setEnumType(Va,"google.protobuf.FeatureSet.Utf8Validation",[{no:0,name:"UTF8_VALIDATION_UNKNOWN"},{no:1,name:"NONE"},{no:2,name:"VERIFY"}]);var ba;(function(t){t[t.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",t[t.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",t[t.DELIMITED=2]="DELIMITED"})(ba||(ba={}));h.util.setEnumType(ba,"google.protobuf.FeatureSet.MessageEncoding",[{no:0,name:"MESSAGE_ENCODING_UNKNOWN"},{no:1,name:"LENGTH_PREFIXED"},{no:2,name:"DELIMITED"}]);var za;(function(t){t[t.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",t[t.ALLOW=1]="ALLOW",t[t.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(za||(za={}));h.util.setEnumType(za,"google.protobuf.FeatureSet.JsonFormat",[{no:0,name:"JSON_FORMAT_UNKNOWN"},{no:1,name:"ALLOW"},{no:2,name:"LEGACY_BEST_EFFORT"}]);var Mi=class t extends p{constructor(e){super(),this.defaults=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Mi.runtime=h;Mi.typeName="google.protobuf.FeatureSetDefaults";Mi.fields=h.util.newFieldList(()=>[{no:1,name:"defaults",kind:"message",T:Tr,repeated:!0},{no:4,name:"minimum_edition",kind:"enum",T:h.getEnumType(Yt),opt:!0},{no:5,name:"maximum_edition",kind:"enum",T:h.getEnumType(Yt),opt:!0}]);var Tr=class t extends p{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Tr.runtime=h;Tr.typeName="google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault";Tr.fields=h.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:h.getEnumType(Yt),opt:!0},{no:2,name:"features",kind:"message",T:ye,opt:!0}]);var Pr=class t extends p{constructor(e){super(),this.location=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Pr.runtime=h;Pr.typeName="google.protobuf.SourceCodeInfo";Pr.fields=h.util.newFieldList(()=>[{no:1,name:"location",kind:"message",T:Sr,repeated:!0}]);var Sr=class t extends p{constructor(e){super(),this.path=[],this.span=[],this.leadingDetachedComments=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Sr.runtime=h;Sr.typeName="google.protobuf.SourceCodeInfo.Location";Sr.fields=h.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"span",kind:"scalar",T:5,repeated:!0,packed:!0},{no:3,name:"leading_comments",kind:"scalar",T:9,opt:!0},{no:4,name:"trailing_comments",kind:"scalar",T:9,opt:!0},{no:6,name:"leading_detached_comments",kind:"scalar",T:9,repeated:!0}]);var Ci=class t extends p{constructor(e){super(),this.annotation=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};Ci.runtime=h;Ci.typeName="google.protobuf.GeneratedCodeInfo";Ci.fields=h.util.newFieldList(()=>[{no:1,name:"annotation",kind:"message",T:kr,repeated:!0}]);var kr=class t extends p{constructor(e){super(),this.path=[],h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};kr.runtime=h;kr.typeName="google.protobuf.GeneratedCodeInfo.Annotation";kr.fields=h.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"source_file",kind:"scalar",T:9,opt:!0},{no:3,name:"begin",kind:"scalar",T:5,opt:!0},{no:4,name:"end",kind:"scalar",T:5,opt:!0},{no:5,name:"semantic",kind:"enum",T:h.getEnumType(Ga),opt:!0}]);var Ga;(function(t){t[t.NONE=0]="NONE",t[t.SET=1]="SET",t[t.ALIAS=2]="ALIAS"})(Ga||(Ga={}));h.util.setEnumType(Ga,"google.protobuf.GeneratedCodeInfo.Annotation.Semantic",[{no:0,name:"NONE"},{no:1,name:"SET"},{no:2,name:"ALIAS"}]);var Z=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};Z.runtime=s;Z.typeName="google.protobuf.Empty";Z.fields=s.util.newFieldList(()=>[]);var ja=class t extends p{secret="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.VerifyUserRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},$a=class t extends p{secret="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.GroupInfoRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ha=class t extends p{groupId="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.GroupID";static fields=s.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ya=class t extends p{contentId="";groupId="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.ShareRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Li=class t extends p{secret="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.GroupInvite";static fields=s.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Wa=class t extends p{groups=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.Groups";static fields=s.util.newFieldList(()=>[{no:1,name:"groups",kind:"message",T:St,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ry=class t extends p{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.AnalyzeConversationRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},it=class t extends p{email="";password="";username="";config;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.User";static fields=s.util.newFieldList(()=>[{no:1,name:"email",kind:"scalar",T:9},{no:2,name:"password",kind:"scalar",T:9},{no:3,name:"username",kind:"scalar",T:9},{no:4,name:"config",kind:"message",T:Bi}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},St=class t extends p{id="";name="";users=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.Group";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"users",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Bi=class t extends p{domainWhitelist=[];offlineVoice=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.Config";static fields=s.util.newFieldList(()=>[{no:1,name:"domain_whitelist",kind:"scalar",T:9,repeated:!0},{no:2,name:"offline_voice",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},_a=class t extends p{user;success=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.LoginResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"user",kind:"message",T:it},{no:2,name:"success",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var Ka=class t extends p{title="";createTime=0;updateTime=0;mapping={};conversationId="";conversationTemplateId="";currentNode="";gizmoId="";isArchived=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Conversation";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"create_time",kind:"scalar",T:1},{no:3,name:"update_time",kind:"scalar",T:1},{no:4,name:"mapping",kind:"map",K:9,V:{kind:"message",T:Fc}},{no:5,name:"conversation_id",kind:"scalar",T:9},{no:6,name:"conversation_template_id",kind:"scalar",T:9},{no:7,name:"current_node",kind:"scalar",T:9},{no:8,name:"gizmo_id",kind:"scalar",T:9},{no:9,name:"is_archived",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Fc=class t extends p{id="";message;parent="";children=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Node";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"message",kind:"message",T:Uc},{no:3,name:"parent",kind:"scalar",T:9},{no:4,name:"children",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Uc=class t extends p{id="";author;createTime=0;content;status="";endTurn=!1;weight=0;metadata;recipient="";updateTime=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Message";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"author",kind:"message",T:qc},{no:3,name:"create_time",kind:"scalar",T:1},{no:4,name:"content",kind:"message",T:Dc},{no:5,name:"status",kind:"scalar",T:9},{no:6,name:"end_turn",kind:"scalar",T:8},{no:7,name:"weight",kind:"scalar",T:5},{no:8,name:"metadata",kind:"message",T:Ac},{no:9,name:"recipient",kind:"scalar",T:9},{no:10,name:"update_time",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ac=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.MessageMetadata";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},qc=class t extends p{role="";metadata;name="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Author";static fields=s.util.newFieldList(()=>[{no:1,name:"role",kind:"scalar",T:9},{no:2,name:"metadata",kind:"message",T:Gc},{no:3,name:"name",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Dc=class t extends p{contentType="";textParts=[];imageParts=[];text="";parts=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Content";static fields=s.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"text_parts",kind:"scalar",T:9,repeated:!0},{no:3,name:"image_parts",kind:"message",T:Vc,repeated:!0},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"parts",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Vc=class t extends p{contentType="";assetPointer="";sizeBytes=L.zero;width=0;height=0;fovea=0;metadata;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.ImageAsset";static fields=s.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"asset_pointer",kind:"scalar",T:9},{no:3,name:"size_bytes",kind:"scalar",T:3},{no:4,name:"width",kind:"scalar",T:5},{no:5,name:"height",kind:"scalar",T:5},{no:6,name:"fovea",kind:"scalar",T:5},{no:7,name:"metadata",kind:"message",T:bc}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},bc=class t extends p{dalle;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Metadata";static fields=s.util.newFieldList(()=>[{no:1,name:"dalle",kind:"message",T:zc}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},zc=class t extends p{genId="";prompt="";seed=0;serializationTitle="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.DalleMetadata";static fields=s.util.newFieldList(()=>[{no:1,name:"gen_id",kind:"scalar",T:9},{no:2,name:"prompt",kind:"scalar",T:9},{no:3,name:"seed",kind:"scalar",T:13},{no:4,name:"serialization_title",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Gc=class t extends p{attachments=[];timestamp="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.AuthorMetadata";static fields=s.util.newFieldList(()=>[{no:1,name:"attachments",kind:"message",T:jc,repeated:!0},{no:2,name:"timestamp_",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},jc=class t extends p{id="";name="";mimeType="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chatgpt.Attachment";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"mimeType",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var Qa=class t extends p{nodes=[];edges=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="browser.History";static fields=s.util.newFieldList(()=>[{no:1,name:"nodes",kind:"message",T:$c,repeated:!0},{no:2,name:"edges",kind:"message",T:Hc,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},$c=class t extends p{id="";url="";title="";open=0;close=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="browser.Node";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"open",kind:"scalar",T:1},{no:5,name:"close",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Hc=class t extends p{from="";to="";tab="";visitTime=0;visitDuration=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="browser.Edge";static fields=s.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9},{no:3,name:"tab",kind:"scalar",T:9},{no:4,name:"visit_time",kind:"scalar",T:1},{no:5,name:"visit_duration",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var Xa=class t extends p{publishDir="";baseUrl="";title="";paginate=0;theme=[];enableInlineShortcodes=!1;enableRobotsTxt=!1;buildDrafts=!1;buildFuture=!1;buildExpired=!1;enableEmoji=!1;pygmentsUseClasses=!1;mainSections=[];minify;languages={};outputs={};params;markup;services;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.HugoConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"publish_dir",kind:"scalar",T:9},{no:2,name:"base_url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"paginate",kind:"scalar",T:5},{no:5,name:"theme",kind:"scalar",T:9,repeated:!0},{no:6,name:"enable_inline_shortcodes",kind:"scalar",T:8},{no:7,name:"enable_robots_txt",kind:"scalar",T:8},{no:8,name:"build_drafts",kind:"scalar",T:8},{no:9,name:"build_future",kind:"scalar",T:8},{no:10,name:"build_expired",kind:"scalar",T:8},{no:11,name:"enable_emoji",kind:"scalar",T:8},{no:12,name:"pygments_use_classes",kind:"scalar",T:8},{no:13,name:"main_sections",kind:"scalar",T:9,repeated:!0},{no:14,name:"minify",kind:"message",T:Yc},{no:15,name:"languages",kind:"map",K:9,V:{kind:"message",T:Wc}},{no:16,name:"outputs",kind:"map",K:9,V:{kind:"message",T:nd}},{no:17,name:"params",kind:"message",T:id},{no:18,name:"markup",kind:"message",T:Qc},{no:19,name:"services",kind:"message",T:td}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Yc=class t extends p{disableXml=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.MinifyConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"disable_xml",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Wc=class t extends p{languageName="";weight=0;title="";taxonomies={};menu={};params={};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.LanguageConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"language_name",kind:"scalar",T:9},{no:2,name:"weight",kind:"scalar",T:5},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"taxonomies",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"menu",kind:"map",K:9,V:{kind:"message",T:rd}},{no:6,name:"params",kind:"map",K:9,V:{kind:"scalar",T:9}}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Fi=class t extends p{name="";url="";weight=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.MenuItem";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"weight",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},_c=class t extends p{url="";text="";appendFilePath=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.EditPostConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"append_file_path",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Kc=class t extends p{disableHljs=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.AssetsConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"disable_hljs",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Qc=class t extends p{goldmark;highlight;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.MarkupConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"goldmark",kind:"message",T:Xc},{no:2,name:"highlight",kind:"message",T:ed}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Xc=class t extends p{renderer;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.GoldmarkConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"renderer",kind:"message",T:Zc}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Zc=class t extends p{unsafe=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.RendererConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"unsafe",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ed=class t extends p{noClasses=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.HighlightConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"no_classes",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},td=class t extends p{instagram;twitter;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ServicesConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"instagram",kind:"message",T:Za},{no:2,name:"twitter",kind:"message",T:Za}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Za=class t extends p{disableInlineCss=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ServiceConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"disable_inline_css",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},nd=class t extends p{values=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.RepeatedString";static fields=s.util.newFieldList(()=>[{no:1,name:"values",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},rd=class t extends p{items=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.RepeatedMenuItem";static fields=s.util.newFieldList(()=>[{no:1,name:"items",kind:"message",T:Fi,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},id=class t extends p{env="";description="";author="";defaultTheme="";showShareButtons=!1;showReadingTime=!1;displayFullLangName=!1;showPostNavLinks=!1;showBreadCrumbs=!1;showCodeCopyButtons=!1;showRssButtonInSectionTermList=!1;showAllPagesInArchive=!1;showPageNums=!1;showToc=!1;images=[];profileMode;homeInfoParams;socialIcons=[];editPost;assets;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ParamsConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"env",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"author",kind:"scalar",T:9},{no:4,name:"default_theme",kind:"scalar",T:9},{no:5,name:"show_share_buttons",kind:"scalar",T:8},{no:6,name:"show_reading_time",kind:"scalar",T:8},{no:7,name:"display_full_lang_name",kind:"scalar",T:8},{no:8,name:"show_post_nav_links",kind:"scalar",T:8},{no:9,name:"show_bread_crumbs",kind:"scalar",T:8},{no:10,name:"show_code_copy_buttons",kind:"scalar",T:8},{no:11,name:"show_rss_button_in_section_term_list",kind:"scalar",T:8},{no:12,name:"show_all_pages_in_archive",kind:"scalar",T:8},{no:13,name:"show_page_nums",kind:"scalar",T:8},{no:14,name:"show_toc",kind:"scalar",T:8},{no:15,name:"images",kind:"scalar",T:9,repeated:!0},{no:16,name:"profile_mode",kind:"message",T:od},{no:17,name:"home_info_params",kind:"message",T:sd},{no:18,name:"social_icons",kind:"message",T:ld,repeated:!0},{no:19,name:"edit_post",kind:"message",T:_c},{no:20,name:"assets",kind:"message",T:Kc}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},od=class t extends p{enabled=!1;title="";imageUrl="";imageTitle="";buttons=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ProfileModeConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"image_url",kind:"scalar",T:9},{no:4,name:"image_title",kind:"scalar",T:9},{no:5,name:"buttons",kind:"message",T:ad,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ad=class t extends p{name="";url="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ButtonConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},sd=class t extends p{title="";content="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.HomeInfoParamsConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"content",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ld=class t extends p{name="";title="";url="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.SocialIconConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var es=class t extends p{prompt="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.InferRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ts=class t extends p{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.InferResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ns=class t extends p{content;site;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.TypesResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:ps},{no:2,name:"site",kind:"message",T:ps}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},rs=class t extends p{contentTypes=[];tags=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.GetSourcesRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"content_types",kind:"scalar",T:9,repeated:!0},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},is=class t extends p{captureDevice=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.VoiceInputRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},os=class t extends p{segment;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.VoiceInputResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:Rr}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},as=class t extends p{parent="";children=[];connect=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.RelateRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"parent",kind:"scalar",T:9},{no:2,name:"children",kind:"scalar",T:9,repeated:!0},{no:3,name:"connect",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ss=class t extends p{sources=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Sources";static fields=s.util.newFieldList(()=>[{no:1,name:"sources",kind:"message",T:ud,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ud=class t extends p{source;displayContent=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.EnumeratedSource";static fields=s.util.newFieldList(()=>[{no:1,name:"source",kind:"message",T:dd},{no:2,name:"display_content",kind:"message",T:cd,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},cd=class t extends p{title="";description="";type="";content;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.DisplayContent";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"type",kind:"scalar",T:9},{no:4,name:"content",kind:"message",T:_e}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},dd=class t extends p{name="";type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Source";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"server",kind:"message",T:fd,oneof:"type"},{no:3,name:"folder",kind:"message",T:md,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},fd=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Server";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},md=class t extends p{path="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Folder";static fields=s.util.newFieldList(()=>[{no:2,name:"path",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ls=class t extends p{contentId="";tags=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.SetTagsRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},us=class t extends p{groupId="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.TagRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},cs=class t extends p{tags=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Tags";static fields=s.util.newFieldList(()=>[{no:1,name:"tags",kind:"message",T:ds,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ds=class t extends p{name="";subTags=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Tag";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"sub_tags",kind:"message",T:t,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},_t=class t extends p{contentIds=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ContentIDs";static fields=s.util.newFieldList(()=>[{no:1,name:"content_ids",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ui=class t extends p{content;tags=[];related=[];parents=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Contents";static fields=s.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:_e},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0},{no:3,name:"related",kind:"message",T:_e,repeated:!0},{no:4,name:"parents",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},fs=class t extends p{query="";page=0;contentID="";groupID="";tags=[];contentTypes=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Query";static fields=s.util.newFieldList(()=>[{no:1,name:"query",kind:"scalar",T:9},{no:2,name:"page",kind:"scalar",T:13},{no:3,name:"contentID",kind:"scalar",T:9},{no:4,name:"groupID",kind:"scalar",T:9},{no:5,name:"tags",kind:"scalar",T:9,repeated:!0},{no:6,name:"content_types",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ms=class t extends p{storedContent=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Results";static fields=s.util.newFieldList(()=>[{no:1,name:"storedContent",kind:"message",T:pd,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},pd=class t extends p{content;id="";related=[];title="";description="";image="";url="";user;tags=[];preview="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.StoredContent";static fields=s.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:_e},{no:2,name:"id",kind:"scalar",T:9},{no:3,name:"related",kind:"message",T:_e,repeated:!0},{no:4,name:"title",kind:"scalar",T:9},{no:5,name:"description",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"url",kind:"scalar",T:9},{no:9,name:"user",kind:"message",T:it},{no:10,name:"tags",kind:"message",T:ds,repeated:!0},{no:11,name:"preview",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},iy=class t extends p{from="";to="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Edge";static fields=s.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},_e=class t extends p{tags=[];createdAt="";uri="";id="";type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Content";static fields=s.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"created_at",kind:"scalar",T:9},{no:3,name:"uri",kind:"scalar",T:9},{no:4,name:"id",kind:"scalar",T:9},{no:6,name:"data",kind:"message",T:yd,oneof:"type"},{no:7,name:"normalized",kind:"message",T:hd,oneof:"type"},{no:8,name:"transformed",kind:"message",T:wd,oneof:"type"},{no:9,name:"post",kind:"message",T:gd,oneof:"type"},{no:10,name:"site",kind:"message",T:Od,oneof:"type"},{no:11,name:"chatgpt_conversation",kind:"message",T:Ka,oneof:"type"},{no:12,name:"browser_history",kind:"message",T:Qa,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},gd=class t extends p{title="";summary="";content="";authors=[];draft=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Post";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"content",kind:"scalar",T:9},{no:4,name:"authors",kind:"scalar",T:9,repeated:!0},{no:6,name:"draft",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},oy=class t extends p{url="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.GitRepo";static fields=s.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},yd=class t extends p{type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Data";static fields=s.util.newFieldList(()=>[{no:4,name:"text",kind:"message",T:xd,oneof:"type"},{no:5,name:"file",kind:"message",T:Rd,oneof:"type"},{no:6,name:"url",kind:"message",T:Jd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},hd=class t extends p{type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Normalized";static fields=s.util.newFieldList(()=>[{no:3,name:"article",kind:"message",T:vd,oneof:"type"},{no:4,name:"html",kind:"message",T:Td,oneof:"type"},{no:6,name:"transcript",kind:"message",T:Nd,oneof:"type"},{no:7,name:"readme",kind:"message",T:Pd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},wd=class t extends p{type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Transformed";static fields=s.util.newFieldList(()=>[{no:1,name:"summary",kind:"message",T:Sd,oneof:"type"},{no:2,name:"categories",kind:"message",T:kd,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},vd=class t extends p{title="";author="";length=0;excerpt="";siteName="";image="";favicon="";text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Article";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"author",kind:"scalar",T:9},{no:3,name:"length",kind:"scalar",T:5},{no:4,name:"excerpt",kind:"scalar",T:9},{no:5,name:"site_name",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"favicon",kind:"scalar",T:9},{no:8,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Td=class t extends p{html="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.HTML";static fields=s.util.newFieldList(()=>[{no:1,name:"html",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Pd=class t extends p{data="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ReadMe";static fields=s.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Sd=class t extends p{summary="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Summary";static fields=s.util.newFieldList(()=>[{no:1,name:"summary",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},kd=class t extends p{categories=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Categories";static fields=s.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Rd=class t extends p{file="";data=new Uint8Array(0);url="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.File";static fields=s.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9},{no:2,name:"data",kind:"scalar",T:12},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},xd=class t extends p{data="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Text";static fields=s.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Jd=class t extends p{url="";crawl=!1;title="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.URL";static fields=s.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"crawl",kind:"scalar",T:8},{no:3,name:"title",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ed=class t extends p{id=0;startTime=L.zero;endTime=L.zero;text="";p="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Token";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Rr=class t extends p{num=0;tokens=[];text="";startTime=L.zero;endTime=L.zero;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Segment";static fields=s.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:Ed,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Nd=class t extends p{id="";name="";segments=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Transcript";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:Rr,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ps=class t extends p{msg;descLookup={};enumLookup={};packageName="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.GRPCTypeInfo";static fields=s.util.newFieldList(()=>[{no:1,name:"msg",kind:"message",T:rt},{no:3,name:"desc_lookup",kind:"map",K:9,V:{kind:"message",T:rt}},{no:4,name:"enum_lookup",kind:"map",K:9,V:{kind:"message",T:Pt}},{no:6,name:"package_name",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Od=class t extends p{sections=[];hugoConfig;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Site";static fields=s.util.newFieldList(()=>[{no:1,name:"sections",kind:"message",T:Id,repeated:!0},{no:2,name:"hugo_config",kind:"message",T:Xa}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Id=class t extends p{tags=[];menu;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Section";static fields=s.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"menu",kind:"message",T:Fi}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var gs=class t extends p{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.AnalyzeConversationRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ys=class t extends p{prompt="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GenerateImagesRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},hs=class t extends p{images=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GenerateImagesResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"images",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ws=class t extends p{id="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.DeleteSessionRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},xr=class t extends p{id="";text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Prompt";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},vs=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetPromptsRequest";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ts=class t extends p{prompts=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetPromptsResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"prompts",kind:"message",T:xr,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ps=class t extends p{prompt="";text=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.InferRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ss=class t extends p{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.InferResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ks=class t extends p{content;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.UploadContentRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:_e}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ay=class t extends p{id="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.UploadContentResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Rs=class t extends p{id="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetSessionRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},xs=class t extends p{session;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetSessionResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"session",kind:"message",T:Os}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Js=class t extends p{page=L.zero;limit=L.zero;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetSessionsRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"page",kind:"scalar",T:4},{no:2,name:"limit",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Es=class t extends p{sessions=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetSessionsResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"sessions",kind:"message",T:Os,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Md=class t extends p{id=0;startTime=L.zero;endTime=L.zero;text="";p="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Token";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ns=class t extends p{num=0;tokens=[];text="";startTime=L.zero;endTime=L.zero;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Segment";static fields=s.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:Md,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Os=class t extends p{id="";name="";segments=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Session";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:Ns,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},sy=class t extends p{filePath="";model="";language="";translate=!1;offset=L.zero;duration=L.zero;threads=0;speedup=!1;maxLen=0;maxTokens=0;wordThreshold=0;tokens=!1;colorize=!1;out="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.TranscriptionRequest";static fields=s.util.newFieldList(()=>[{no:14,name:"file_path",kind:"scalar",T:9},{no:1,name:"model",kind:"scalar",T:9},{no:2,name:"language",kind:"scalar",T:9},{no:3,name:"translate",kind:"scalar",T:8},{no:4,name:"offset",kind:"scalar",T:3},{no:5,name:"duration",kind:"scalar",T:3},{no:6,name:"threads",kind:"scalar",T:13},{no:7,name:"speedup",kind:"scalar",T:8},{no:8,name:"max_len",kind:"scalar",T:13},{no:9,name:"max_tokens",kind:"scalar",T:13},{no:10,name:"word_threshold",kind:"scalar",T:1},{no:11,name:"tokens",kind:"scalar",T:8},{no:12,name:"colorize",kind:"scalar",T:8},{no:13,name:"out",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},ly=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.RegisterFlags";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},uy=class t extends p{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.OCRText";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},cy=class t extends p{image=new Uint8Array(0);constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Image";static fields=s.util.newFieldList(()=>[{no:1,name:"image",kind:"scalar",T:12}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Is=class t extends p{from="";to="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.ConvertFileRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ms=class t extends p{captureDevice=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.ChatRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ai=class t extends p{segment;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.ChatResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:Ns}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Cs=class t extends p{id="";file="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.YouTubeVideo";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"file",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},qi=class t extends p{file="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.FilePath";static fields=s.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ls=class t extends p{title="";filePath;transcript=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.YouTubeVideoResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"file_path",kind:"message",T:qi},{no:3,name:"transcript",kind:"message",T:Rr,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var Bs=class t extends p{phoneNumbers=[];summary="";questions=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="ai.AnalyzeConversationResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"phone_numbers",kind:"scalar",T:9,repeated:!0},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"questions",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},dy=class t extends p{categories=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="ai.AnalyzeContent";static fields=s.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var fy={typeName:"protoflow.ProtoflowService",methods:{downloadYouTubeVideo:{name:"DownloadYouTubeVideo",I:Cs,O:Ls,kind:E.Unary},getSessions:{name:"GetSessions",I:Js,O:Es,kind:E.Unary},getSession:{name:"GetSession",I:Rs,O:xs,kind:E.Unary},deleteSession:{name:"DeleteSession",I:ws,O:Z,kind:E.Unary},getPrompts:{name:"GetPrompts",I:vs,O:Ts,kind:E.Unary},newPrompt:{name:"NewPrompt",I:xr,O:xr,kind:E.Unary},uploadContent:{name:"UploadContent",I:ks,O:Ai,kind:E.ServerStreaming},infer:{name:"Infer",I:Ps,O:Ss,kind:E.ServerStreaming},chat:{name:"Chat",I:Ms,O:Ai,kind:E.ServerStreaming},convertFile:{name:"ConvertFile",I:Is,O:qi,kind:E.Unary},generateImages:{name:"GenerateImages",I:ys,O:hs,kind:E.Unary},analyzeConversation:{name:"AnalyzeConversation",I:gs,O:Bs,kind:E.Unary}}};var my={typeName:"content.ContentService",methods:{save:{name:"Save",I:Ui,O:_t,kind:E.Unary},search:{name:"Search",I:fs,O:ms,kind:E.Unary},relate:{name:"Relate",I:as,O:Z,kind:E.Unary},analyze:{name:"Analyze",I:_e,O:Ui,kind:E.Unary},delete:{name:"Delete",I:_t,O:_t,kind:E.Unary},getTags:{name:"GetTags",I:us,O:cs,kind:E.Unary},setTags:{name:"SetTags",I:ls,O:Z,kind:E.Unary},publish:{name:"Publish",I:_t,O:_t,kind:E.Unary},getSources:{name:"GetSources",I:rs,O:ss,kind:E.Unary},infer:{name:"Infer",I:es,O:ts,kind:E.ServerStreaming},types:{name:"Types",I:Z,O:ns,kind:E.Unary},voiceInput:{name:"VoiceInput",I:is,O:os,kind:E.ServerStreaming}}};var py={typeName:"user.UserService",methods:{register:{name:"Register",I:it,O:it,kind:E.Unary},login:{name:"Login",I:it,O:_a,kind:E.Unary},logout:{name:"Logout",I:Z,O:Z,kind:E.Unary},resetPassword:{name:"ResetPassword",I:it,O:Z,kind:E.Unary},verifyUser:{name:"VerifyUser",I:ja,O:Z,kind:E.Unary},updateConfig:{name:"UpdateConfig",I:Bi,O:Z,kind:E.Unary},createGroupInvite:{name:"CreateGroupInvite",I:Ha,O:Li,kind:E.Unary},joinGroup:{name:"JoinGroup",I:Li,O:St,kind:E.Unary},groupInfo:{name:"GroupInfo",I:$a,O:St,kind:E.Unary},createGroup:{name:"CreateGroup",I:St,O:St,kind:E.Unary},getGroups:{name:"GetGroups",I:Z,O:Wa,kind:E.Unary},deleteGroup:{name:"DeleteGroup",I:St,O:Z,kind:E.Unary},share:{name:"Share",I:Ya,O:Z,kind:E.Unary}}};var Fs=class t extends p{user="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.BanUserRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Us=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.BanUserResponse";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},As=class t extends p{message="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.SendMessageRequest";static fields=s.util.newFieldList(()=>[{no:2,name:"message",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},qs=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.SendMessageResponse";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ds=class t extends p{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.ReceiveMessagesRequest";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Vs=class t extends p{user="";text="";timestamp=L.zero;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.Message";static fields=s.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"timestamp",kind:"scalar",T:3}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var gy={typeName:"chat.ChatService",methods:{sendMessage:{name:"SendMessage",I:As,O:qs,kind:E.Unary},receiveMessages:{name:"ReceiveMessages",I:Ds,O:Vs,kind:E.ServerStreaming},banUser:{name:"BanUser",I:Fs,O:Us,kind:E.Unary}}};var bs=class t extends p{type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="event.Metric";static fields=s.util.newFieldList(()=>[{no:1,name:"http",kind:"message",T:Cd,oneof:"type"},{no:2,name:"rrweb",kind:"message",T:Ld,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Cd=class t extends p{method="";path="";query="";headers={};host="";remoteAddr="";userAgent="";referer="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="event.HTTPRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"method",kind:"scalar",T:9},{no:2,name:"path",kind:"scalar",T:9},{no:3,name:"query",kind:"scalar",T:9},{no:4,name:"headers",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"host",kind:"scalar",T:9},{no:6,name:"remoteAddr",kind:"scalar",T:9},{no:7,name:"userAgent",kind:"scalar",T:9},{no:8,name:"referer",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},Ld=class t extends p{events="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="event.RRWeb";static fields=s.util.newFieldList(()=>[{no:1,name:"events",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}},zs=class t extends p{id="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="event.SendResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return s.util.equals(t,e,n)}};var yy={typeName:"event.EventService",methods:{send:{name:"Send",I:bs,O:zs,kind:E.Unary}}};var C;(function(t){t[t.Canceled=1]="Canceled",t[t.Unknown=2]="Unknown",t[t.InvalidArgument=3]="InvalidArgument",t[t.DeadlineExceeded=4]="DeadlineExceeded",t[t.NotFound=5]="NotFound",t[t.AlreadyExists=6]="AlreadyExists",t[t.PermissionDenied=7]="PermissionDenied",t[t.ResourceExhausted=8]="ResourceExhausted",t[t.FailedPrecondition=9]="FailedPrecondition",t[t.Aborted=10]="Aborted",t[t.OutOfRange=11]="OutOfRange",t[t.Unimplemented=12]="Unimplemented",t[t.Internal=13]="Internal",t[t.Unavailable=14]="Unavailable",t[t.DataLoss=15]="DataLoss",t[t.Unauthenticated=16]="Unauthenticated"})(C||(C={}));function Di(t){let e=C[t];return typeof e!="string"?t.toString():e[0].toLowerCase()+e.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var Gs;function hy(t){if(!Gs){Gs={};for(let e of Object.values(C))typeof e!="string"&&(Gs[Di(e)]=e)}return Gs[t]}var Q=class t extends Error{constructor(e,n=C.Unknown,r,i,o){super(bw(e,n)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=e,this.code=n,this.metadata=new Headers(r??{}),this.details=i??[],this.cause=o}static from(e,n=C.Unknown){return e instanceof t?e:e instanceof Error?e.name=="AbortError"?new t(e.message,C.Canceled):new t(e.message,n,void 0,void 0,e):new t(String(e),n,void 0,void 0,e)}static[Symbol.hasInstance](e){return e instanceof Error?Object.getPrototypeOf(e)===t.prototype?!0:e.name==="ConnectError"&&"code"in e&&typeof e.code=="number"&&"metadata"in e&&"details"in e&&Array.isArray(e.details)&&"rawMessage"in e&&typeof e.rawMessage=="string"&&"cause"in e:!1}findDetails(e){let n="typeName"in e?{findMessage:i=>i===e.typeName?e:void 0}:e,r=[];for(let i of this.details){if(i instanceof p){n.findMessage(i.getType().typeName)&&r.push(i);continue}let o=n.findMessage(i.type);if(o)try{r.push(o.fromBinary(i.value))}catch{}}return r}};function bw(t,e){return t.length?`[${Di(e)}] ${t}`:`[${Di(e)}]`}function Bd(...t){let e=new Headers;for(let n of t)n.forEach((r,i)=>{e.append(i,r)});return e}function wy(t,e){let n={};for(let[r,i]of Object.entries(t.methods)){let o=e(Object.assign(Object.assign({},i),{localName:r,service:t}));o!=null&&(n[r]=o)}return n}function Fd(t){let e,n=new Uint8Array(0);function r(i){let o=new Uint8Array(n.length+i.length);o.set(n),o.set(i,n.length),n=o}return new ReadableStream({start(){e=t.getReader()},async pull(i){let o;for(;;){if(o===void 0&&n.byteLength>=5){let u=0;for(let c=1;c<5;c++)u=(u<<8)+n[c];o={flags:n[0],length:u}}if(o!==void 0&&n.byteLength>=o.length+5)break;let l=await e.read();if(l.done)break;r(l.value)}if(o===void 0){if(n.byteLength==0){i.close();return}i.error(new Q("premature end of stream",C.DataLoss));return}let a=n.subarray(5,5+o.length);n=n.subarray(5+o.length),i.enqueue({flags:o.flags,data:a})}})}function Ud(t,e){let n=new Uint8Array(e.length+5);n.set(e,5);let r=new DataView(n.buffer,n.byteOffset,n.byteLength);return r.setUint8(0,t),r.setUint32(1,e.length),n}var zw=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=t[o]&&function(a){return new Promise(function(l,u){a=t[o](a),i(l,u,a.done,a.value)})}}function i(o,a,l,u){Promise.resolve(u).then(function(c){o({value:c,done:l})},a)}},Vi=function(t){return this instanceof Vi?(this.v=t,this):new Vi(t)},Gw=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,o=[];return i={},l("next"),l("throw"),l("return",a),i[Symbol.asyncIterator]=function(){return this},i;function a(m){return function(T){return Promise.resolve(T).then(m,v)}}function l(m,T){r[m]&&(i[m]=function(S){return new Promise(function(O,g){o.push([m,S,O,g])>1||u(m,S)})},T&&(i[m]=T(i[m])))}function u(m,T){try{c(r[m](T))}catch(S){y(o[0][3],S)}}function c(m){m.value instanceof Vi?Promise.resolve(m.value.v).then(f,v):y(o[0][2],m)}function f(m){u("next",m)}function v(m){u("throw",m)}function y(m,T){m(T),o.shift(),o.length&&u(o[0][0],o[0][1])}},jw=function(t){var e,n;return e={},r("next"),r("throw",function(i){throw i}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(i,o){e[i]=t[i]?function(a){return(n=!n)?{value:Vi(t[i](a)),done:!1}:o?o(a):a}:o}};function vy(t){return Gw(this,arguments,function*(){yield Vi(yield*jw(zw(t)))})}var Ty=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=t[o]&&function(a){return new Promise(function(l,u){a=t[o](a),i(l,u,a.done,a.value)})}}function i(o,a,l,u){Promise.resolve(u).then(function(c){o({value:c,done:l})},a)}},Jr=function(t){return this instanceof Jr?(this.v=t,this):new Jr(t)},$w=function(t){var e,n;return e={},r("next"),r("throw",function(i){throw i}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(i,o){e[i]=t[i]?function(a){return(n=!n)?{value:Jr(t[i](a)),done:!1}:o?o(a):a}:o}},Hw=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,o=[];return i={},l("next"),l("throw"),l("return",a),i[Symbol.asyncIterator]=function(){return this},i;function a(m){return function(T){return Promise.resolve(T).then(m,v)}}function l(m,T){r[m]&&(i[m]=function(S){return new Promise(function(O,g){o.push([m,S,O,g])>1||u(m,S)})},T&&(i[m]=T(i[m])))}function u(m,T){try{c(r[m](T))}catch(S){y(o[0][3],S)}}function c(m){m.value instanceof Jr?Promise.resolve(m.value.v).then(f,v):y(o[0][2],m)}function f(m){u("next",m)}function v(m){u("throw",m)}function y(m,T){m(T),o.shift(),o.length&&u(o[0][0],o[0][1])}};function yn(t,e){return wy(t,n=>{switch(n.kind){case E.Unary:return Yw(e,t,n);case E.ServerStreaming:return Ww(e,t,n);case E.ClientStreaming:return _w(e,t,n);case E.BiDiStreaming:return Kw(e,t,n);default:return null}})}function Yw(t,e,n){return async function(r,i){var o,a;let l=await t.unary(e,n,i?.signal,i?.timeoutMs,i?.headers,r,i?.contextValues);return(o=i?.onHeader)===null||o===void 0||o.call(i,l.header),(a=i?.onTrailer)===null||a===void 0||a.call(i,l.trailer),l.message}}function Ww(t,e,n){return function(r,i){return Py(t.stream(e,n,i?.signal,i?.timeoutMs,i?.headers,vy([r]),i?.contextValues),i)}}function _w(t,e,n){return async function(r,i){var o,a,l,u,c,f;let v=await t.stream(e,n,i?.signal,i?.timeoutMs,i?.headers,r,i?.contextValues);(c=i?.onHeader)===null||c===void 0||c.call(i,v.header);let y;try{for(var m=!0,T=Ty(v.message),S;S=await T.next(),o=S.done,!o;m=!0)u=S.value,m=!1,y=u}catch(O){a={error:O}}finally{try{!m&&!o&&(l=T.return)&&await l.call(T)}finally{if(a)throw a.error}}if(!y)throw new Q("protocol error: missing response message",C.Internal);return(f=i?.onTrailer)===null||f===void 0||f.call(i,v.trailer),y}}function Kw(t,e,n){return function(r,i){return Py(t.stream(e,n,i?.signal,i?.timeoutMs,i?.headers,r,i?.contextValues),i)}}function Py(t,e){let n=function(){var r,i;return Hw(this,arguments,function*(){let o=yield Jr(t);(r=e?.onHeader)===null||r===void 0||r.call(e,o.header),yield Jr(yield*$w(Ty(o.message))),(i=e?.onTrailer)===null||i===void 0||i.call(e,o.trailer)})}()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function Sy(...t){let e=new AbortController,n=t.filter(i=>i!==void 0).concat(e.signal);for(let i of n){if(i.aborted){r.apply(i);break}i.addEventListener("abort",r)}function r(){e.signal.aborted||e.abort(Ad(this));for(let i of n)i.removeEventListener("abort",r)}return e}function ky(t){let e=new AbortController,n=()=>{e.abort(new Q("the operation timed out",C.DeadlineExceeded))},r;return t!==void 0&&(t<=0?n():r=setTimeout(n,t)),{signal:e.signal,cleanup:()=>clearTimeout(r)}}function Ad(t){if(!t.aborted)return;if(t.reason!==void 0)return t.reason;let e=new Error("This operation was aborted");return e.name="AbortError",e}function js(){return{get(t){return t.id in this?this[t.id]:t.defaultValue},set(t,e){return this[t.id]=e,this},delete(t){return delete this[t.id],this}}}function $s(t,e,n){let r=typeof e=="string"?e:e.typeName,i=typeof n=="string"?n:n.name;return t.toString().replace(/\/?$/,`/${r}/${i}`)}function qd(t,e){return e instanceof t?e:new t(e)}function Ry(t,e){function n(r){return r.done===!0?r:{done:r.done,value:qd(t,r.value)}}return{[Symbol.asyncIterator](){let r=e[Symbol.asyncIterator](),i={next:()=>r.next().then(n)};return r.throw!==void 0&&(i.throw=o=>r.throw(o).then(n)),r.return!==void 0&&(i.return=o=>r.return(o).then(n)),i}}}function Hs(t){var e;let n=Object.assign({},t);return(e=n.ignoreUnknownFields)!==null&&e!==void 0||(n.ignoreUnknownFields=!0),n}function Ys(t,e,n,r){let i=e?xy(t.I,r):Jy(t.I,n);return{parse:(e?xy(t.O,r):Jy(t.O,n)).parse,serialize:i.serialize}}function xy(t,e){return{parse(n){try{return t.fromBinary(n,e)}catch(r){let i=r instanceof Error?r.message:String(r);throw new Q(`parse binary: ${i}`,C.InvalidArgument)}},serialize(n){try{return n.toBinary(e)}catch(r){let i=r instanceof Error?r.message:String(r);throw new Q(`serialize binary: ${i}`,C.Internal)}}}}function Jy(t,e){var n,r;let i=(n=e?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,o=(r=e?.textDecoder)!==null&&r!==void 0?r:new TextDecoder,a=Hs(e);return{parse(l){try{let u=o.decode(l);return t.fromJsonString(u,a)}catch(u){throw Q.from(u,C.InvalidArgument)}},serialize(l){try{let u=l.toJsonString(a);return i.encode(u)}catch(u){throw Q.from(u,C.Internal)}}}}var Qw=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var Ey="application/proto",Ny="application/json",Oy="application/connect+proto",Iy="application/connect+json";function My(t){let e=t?.match(Qw);if(!e)return;let n=!!e[1],r=!!e[3];return{stream:n,binary:r}}function bi(t,e,n){if(e&&new Headers(e).forEach((a,l)=>n.metadata.append(l,a)),typeof t!="object"||t==null||Array.isArray(t)||!("code"in t)||typeof t.code!="string")throw n;let r=hy(t.code);if(r===void 0)throw n;let i=t.message;if(i!=null&&typeof i!="string")throw n;let o=new Q(i??"",r,e);if("details"in t&&Array.isArray(t.details))for(let a of t.details){if(a===null||typeof a!="object"||Array.isArray(a)||typeof a.type!="string"||typeof a.value!="string"||"debug"in a&&typeof a.debug!="object")throw n;try{o.details.push({type:a.type,value:Ht.dec(a.value),debug:a.debug})}catch{throw n}}return o}var Ws=2;function Dd(t){let e=new Q("invalid end stream",C.InvalidArgument),n;try{n=JSON.parse(typeof t=="string"?t:new TextDecoder().decode(t))}catch{throw e}if(typeof n!="object"||n==null||Array.isArray(n))throw e;let r=new Headers;if("metadata"in n){if(typeof n.metadata!="object"||n.metadata==null||Array.isArray(n.metadata))throw e;for(let[o,a]of Object.entries(n.metadata)){if(!Array.isArray(a)||a.some(l=>typeof l!="string"))throw e;for(let l of a)r.append(o,l)}}let i="error"in n?bi(n.error,r,e):void 0;return{metadata:r,error:i}}var zi="Content-Type",Cy="Content-Length",_s="Content-Encoding";var Vd="Accept-Encoding";var Ly="Connect-Timeout-Ms",Ks="Connect-Protocol-Version",By="User-Agent";function Fy(t){switch(t){case 400:return C.InvalidArgument;case 401:return C.Unauthenticated;case 403:return C.PermissionDenied;case 404:return C.Unimplemented;case 408:return C.DeadlineExceeded;case 409:return C.Aborted;case 412:return C.FailedPrecondition;case 413:return C.ResourceExhausted;case 415:return C.Internal;case 429:return C.Unavailable;case 431:return C.ResourceExhausted;case 502:return C.Unavailable;case 503:return C.Unavailable;case 504:return C.Unavailable;default:return C.Unknown}}function Qs(t){let e=new Headers,n=new Headers;return t.forEach((r,i)=>{i.toLowerCase().startsWith("trailer-")?n.set(i.substring(8),r):e.set(i,r)}),[e,n]}var Xs="1";function Zs(t,e,n,r,i){let o=new Headers(r??{});return n!==void 0&&o.set(Ly,`${n}`),o.set(zi,t==E.Unary?e?Ey:Ny:e?Oy:Iy),o.set(Ks,Xs),i&&o.set(By,"connect-es/1.3.0"),o}function el(t,e,n){let r=n.get("Content-Type"),i=My(r);if(e!==200){let o=new Q(`HTTP ${e}`,Fy(e),n);if(t==E.Unary&&i&&!i.binary)return{isUnaryError:!0,unaryError:o};throw o}return{isUnaryError:!1}}var Uy="application/";function Zw(t,e){return e?Ht.enc(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):encodeURIComponent(new TextDecoder().decode(t))}function bd(t,e,n){let r=`?connect=v${Xs}`,i=t.header.get(zi);i?.indexOf(Uy)===0&&(r+="&encoding="+encodeURIComponent(i.slice(Uy.length)));let o=t.header.get(_s);o!==null&&o!=="identity"&&(r+="&compression="+encodeURIComponent(o),n=!0),n&&(r+="&base64=1"),r+="&message="+Zw(e,n);let a=t.url+r,l=new Headers(t.header);return[Ks,zi,Cy,_s,Vd].forEach(u=>l.delete(u)),Object.assign(Object.assign({},t),{init:Object.assign(Object.assign({},t.init),{method:"GET"}),url:a,header:l})}function zd(t){let e=qy(t.next,t.interceptors),[n,r,i]=Ay(t),o=Object.assign(Object.assign({},t.req),{message:qd(t.req.method.I,t.req.message),signal:n});return e(o).then(a=>(i(),a),r)}function Gd(t){let e=qy(t.next,t.interceptors),[n,r,i]=Ay(t),o=Object.assign(Object.assign({},t.req),{message:Ry(t.req.method.I,t.req.message),signal:n}),a=!1;return n.addEventListener("abort",function(){var l,u;let c=t.req.message[Symbol.asyncIterator]();a||(l=c.throw)===null||l===void 0||l.call(c,this.reason).catch(()=>{}),(u=c.return)===null||u===void 0||u.call(c).catch(()=>{})}),e(o).then(l=>Object.assign(Object.assign({},l),{message:{[Symbol.asyncIterator](){let u=l.message[Symbol.asyncIterator]();return{next(){return u.next().then(c=>(c.done==!0&&(a=!0,i()),c),r)}}}}}),r)}function Ay(t){let{signal:e,cleanup:n}=ky(t.timeoutMs),r=Sy(t.signal,e);return[r.signal,function(o){let a=Q.from(e.aborted?Ad(e):o);return r.abort(a),n(),Promise.reject(a)},function(){n(),r.abort()}]}function qy(t,e){var n;return(n=e?.concat().reverse().reduce((r,i)=>i(r),t))!==null&&n!==void 0?n:t}function Dy(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var Gi=function(t){return this instanceof Gi?(this.v=t,this):new Gi(t)},ev=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,o=[];return i={},l("next"),l("throw"),l("return",a),i[Symbol.asyncIterator]=function(){return this},i;function a(m){return function(T){return Promise.resolve(T).then(m,v)}}function l(m,T){r[m]&&(i[m]=function(S){return new Promise(function(O,g){o.push([m,S,O,g])>1||u(m,S)})},T&&(i[m]=T(i[m])))}function u(m,T){try{c(r[m](T))}catch(S){y(o[0][3],S)}}function c(m){m.value instanceof Gi?Promise.resolve(m.value.v).then(f,v):y(o[0][2],m)}function f(m){u("next",m)}function v(m){u("throw",m)}function y(m,T){m(T),o.shift(),o.length&&u(o[0][0],o[0][1])}};function jd(t){var e;Dy();let n=(e=t.useBinaryFormat)!==null&&e!==void 0?e:!1;return{async unary(r,i,o,a,l,u,c){var f;let{serialize:v,parse:y}=Ys(i,n,t.jsonOptions,t.binaryOptions);return a=a===void 0?t.defaultTimeoutMs:a<=0?void 0:a,await zd({interceptors:t.interceptors,signal:o,timeoutMs:a,req:{stream:!1,service:r,method:i,url:$s(t.baseUrl,r,i),init:{method:"POST",credentials:(f=t.credentials)!==null&&f!==void 0?f:"same-origin",redirect:"error",mode:"cors"},header:Zs(i.kind,n,a,l,!1),contextValues:c??js(),message:u},next:async m=>{var T;let S=t.useHttpGet===!0&&i.idempotency===Ri.NoSideEffects,O=null;S?m=bd(m,v(m.message),n):O=v(m.message);let d=await((T=t.fetch)!==null&&T!==void 0?T:globalThis.fetch)(m.url,Object.assign(Object.assign({},m.init),{headers:m.header,signal:m.signal,body:O})),{isUnaryError:w,unaryError:k}=el(i.kind,d.status,d.headers);if(w)throw bi(await d.json(),Bd(...Qs(d.headers)),k);let[J,N]=Qs(d.headers);return{stream:!1,service:r,method:i,header:J,message:n?y(new Uint8Array(await d.arrayBuffer())):i.O.fromJson(await d.json(),Hs(t.jsonOptions)),trailer:N}}})},async stream(r,i,o,a,l,u,c){var f;let{serialize:v,parse:y}=Ys(i,n,t.jsonOptions,t.binaryOptions);function m(S,O,g){return ev(this,arguments,function*(){let w=Fd(S).getReader(),k=!1;for(;;){let J=yield Gi(w.read());if(J.done)break;let{flags:N,data:I}=J.value;if((N&Ws)===Ws){k=!0;let M=Dd(I);if(M.error){let $=M.error;throw g.forEach((B,Ke)=>{$.metadata.append(Ke,B)}),$}M.metadata.forEach(($,B)=>O.set(B,$));continue}yield yield Gi(y(I))}if(!k)throw"missing EndStreamResponse"})}async function T(S){if(i.kind!=E.ServerStreaming)throw"The fetch API does not support streaming request bodies";let O=await S[Symbol.asyncIterator]().next();if(O.done==!0)throw"missing request message";return Ud(0,v(O.value))}return a=a===void 0?t.defaultTimeoutMs:a<=0?void 0:a,await Gd({interceptors:t.interceptors,timeoutMs:a,signal:o,req:{stream:!0,service:r,method:i,url:$s(t.baseUrl,r,i),init:{method:"POST",credentials:(f=t.credentials)!==null&&f!==void 0?f:"same-origin",redirect:"error",mode:"cors"},header:Zs(i.kind,n,a,l,!1),contextValues:c??js(),message:u},next:async S=>{var O;let d=await((O=t.fetch)!==null&&O!==void 0?O:globalThis.fetch)(S.url,Object.assign(Object.assign({},S.init),{headers:S.header,signal:S.signal,body:await T(S.message)}));if(el(i.kind,d.status,d.headers),d.body===null)throw"missing response body";let w=new Headers;return Object.assign(Object.assign({},S),{header:d.headers,trailer:w,message:m(d.body,w,d.headers)})}})}}}var tv="https://demo.justshare.com",ji=jd({baseUrl:`${tv}/api`||"error"}),X1=yn(fy,ji),Z1=yn(my,ji),$d=yn(py,ji),eR=yn(gy,ji),tR=yn(yy,ji);var al=at(st(),1),Hi=at(st(),1),Rt=at(st(),1);var nv={data:""},rv=t=>typeof window=="object"?((t?t.querySelector("#_goober"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:t||nv;var iv=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,ov=/\/\*[^]*?\*\/| +/g,Vy=/\n+/g,Kt=(t,e)=>{let n="",r="",i="";for(let o in t){let a=t[o];o[0]=="@"?o[1]=="i"?n=o+" "+a+";":r+=o[1]=="f"?Kt(a,o):o+"{"+Kt(a,o[1]=="k"?"":e)+"}":typeof a=="object"?r+=Kt(a,e?e.replace(/([^,])+/g,l=>o.replace(/(^:.*)|([^,])+/g,u=>/&/.test(u)?u.replace(/&/g,l):l?l+" "+u:u)):o):a!=null&&(o=/^--/.test(o)?o:o.replace(/[A-Z]/g,"-$&").toLowerCase(),i+=Kt.p?Kt.p(o,a):o+":"+a+";")}return n+(e&&i?e+"{"+i+"}":i)+r},kt={},by=t=>{if(typeof t=="object"){let e="";for(let n in t)e+=n+by(t[n]);return e}return t},av=(t,e,n,r,i)=>{let o=by(t),a=kt[o]||(kt[o]=(u=>{let c=0,f=11;for(;c>>0;return"go"+f})(o));if(!kt[a]){let u=o!==t?t:(c=>{let f,v,y=[{}];for(;f=iv.exec(c.replace(ov,""));)f[4]?y.shift():f[3]?(v=f[3].replace(Vy," ").trim(),y.unshift(y[0][v]=y[0][v]||{})):y[0][f[1]]=f[2].replace(Vy," ").trim();return y[0]})(t);kt[a]=Kt(i?{["@keyframes "+a]:u}:u,n?"":"."+a)}let l=n&&kt.g?kt.g:null;return n&&(kt.g=kt[a]),((u,c,f,v)=>{v?c.data=c.data.replace(v,u):c.data.indexOf(u)===-1&&(c.data=f?u+c.data:c.data+u)})(kt[a],e,r,l),a},sv=(t,e,n)=>t.reduce((r,i,o)=>{let a=e[o];if(a&&a.call){let l=a(n),u=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=u?"."+u:l&&typeof l=="object"?l.props?"":Kt(l,""):l===!1?"":l}return r+i+(a??"")},"");function $i(t){let e=this||{},n=t.call?t(e.p):t;return av(n.unshift?n.raw?sv(n,[].slice.call(arguments,1),e.p):n.reduce((r,i)=>Object.assign(r,i&&i.call?i(e.p):i),{}):n,rv(e.target),e.g,e.o,e.k)}var zy,Hd,Yd,rR=$i.bind({g:1}),ke=$i.bind({k:1});function Gy(t,e,n,r){Kt.p=e,zy=t,Hd=n,Yd=r}function Ie(t,e){let n=this||{};return function(){let r=arguments;function i(o,a){let l=Object.assign({},o),u=l.className||i.className;n.p=Object.assign({theme:Hd&&Hd()},l),n.o=/ *go\d+/.test(u),l.className=$i.apply(n,r)+(u?" "+u:""),e&&(l.ref=a);let c=t;return t[0]&&(c=l.as||t,delete l.as),Yd&&c[0]&&Yd(l),zy(c,l)}return e?e(i):i}}var hn=at(st(),1);var Qt=at(st(),1),lv=t=>typeof t=="function",ol=(t,e)=>lv(t)?t(e):t,uv=(()=>{let t=0;return()=>(++t).toString()})(),$y=(()=>{let t;return()=>{if(t===void 0&&typeof window<"u"){let e=matchMedia("(prefers-reduced-motion: reduce)");t=!e||e.matches}return t}})(),cv=20,nl=new Map,dv=1e3,jy=t=>{if(nl.has(t))return;let e=setTimeout(()=>{nl.delete(t),wn({type:4,toastId:t})},dv);nl.set(t,e)},fv=t=>{let e=nl.get(t);e&&clearTimeout(e)},Wd=(t,e)=>{switch(e.type){case 0:return{...t,toasts:[e.toast,...t.toasts].slice(0,cv)};case 1:return e.toast.id&&fv(e.toast.id),{...t,toasts:t.toasts.map(o=>o.id===e.toast.id?{...o,...e.toast}:o)};case 2:let{toast:n}=e;return t.toasts.find(o=>o.id===n.id)?Wd(t,{type:1,toast:n}):Wd(t,{type:0,toast:n});case 3:let{toastId:r}=e;return r?jy(r):t.toasts.forEach(o=>{jy(o.id)}),{...t,toasts:t.toasts.map(o=>o.id===r||r===void 0?{...o,visible:!1}:o)};case 4:return e.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(o=>o.id!==e.toastId)};case 5:return{...t,pausedAt:e.time};case 6:let i=e.time-(t.pausedAt||0);return{...t,pausedAt:void 0,toasts:t.toasts.map(o=>({...o,pauseDuration:o.pauseDuration+i}))}}},rl=[],il={toasts:[],pausedAt:void 0},wn=t=>{il=Wd(il,t),rl.forEach(e=>{e(il)})},mv={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},pv=(t={})=>{let[e,n]=(0,al.useState)(il);(0,al.useEffect)(()=>(rl.push(n),()=>{let i=rl.indexOf(n);i>-1&&rl.splice(i,1)}),[e]);let r=e.toasts.map(i=>{var o,a;return{...t,...t[i.type],...i,duration:i.duration||((o=t[i.type])==null?void 0:o.duration)||t?.duration||mv[i.type],style:{...t.style,...(a=t[i.type])==null?void 0:a.style,...i.style}}});return{...e,toasts:r}},gv=(t,e="blank",n)=>({createdAt:Date.now(),visible:!0,type:e,ariaProps:{role:"status","aria-live":"polite"},message:t,pauseDuration:0,...n,id:n?.id||uv()}),Yi=t=>(e,n)=>{let r=gv(e,t,n);return wn({type:2,toast:r}),r.id},Me=(t,e)=>Yi("blank")(t,e);Me.error=Yi("error");Me.success=Yi("success");Me.loading=Yi("loading");Me.custom=Yi("custom");Me.dismiss=t=>{wn({type:3,toastId:t})};Me.remove=t=>wn({type:4,toastId:t});Me.promise=(t,e,n)=>{let r=Me.loading(e.loading,{...n,...n?.loading});return t.then(i=>(Me.success(ol(e.success,i),{id:r,...n,...n?.success}),i)).catch(i=>{Me.error(ol(e.error,i),{id:r,...n,...n?.error})}),t};var yv=(t,e)=>{wn({type:1,toast:{id:t,height:e}})},hv=()=>{wn({type:5,time:Date.now()})},wv=t=>{let{toasts:e,pausedAt:n}=pv(t);(0,Hi.useEffect)(()=>{if(n)return;let o=Date.now(),a=e.map(l=>{if(l.duration===1/0)return;let u=(l.duration||0)+l.pauseDuration-(o-l.createdAt);if(u<0){l.visible&&Me.dismiss(l.id);return}return setTimeout(()=>Me.dismiss(l.id),u)});return()=>{a.forEach(l=>l&&clearTimeout(l))}},[e,n]);let r=(0,Hi.useCallback)(()=>{n&&wn({type:6,time:Date.now()})},[n]),i=(0,Hi.useCallback)((o,a)=>{let{reverseOrder:l=!1,gutter:u=8,defaultPosition:c}=a||{},f=e.filter(m=>(m.position||c)===(o.position||c)&&m.height),v=f.findIndex(m=>m.id===o.id),y=f.filter((m,T)=>Tm.visible).slice(...l?[y+1]:[0,y]).reduce((m,T)=>m+(T.height||0)+u,0)},[e]);return{toasts:e,handlers:{updateHeight:yv,startPause:hv,endPause:r,calculateOffset:i}}},vv=ke` from { transform: scale(0) rotate(45deg); opacity: 0; diff --git a/js/dist/extension/tab.css b/js/dist/extension/tab.css deleted file mode 100644 index a84f368d..00000000 --- a/js/dist/extension/tab.css +++ /dev/null @@ -1,1017 +0,0 @@ -/* ../node_modules/vis-timeline/styles/vis-timeline-graph2d.css */ -.vis-time-axis { - position: relative; - overflow: hidden; -} -.vis-time-axis.vis-foreground { - top: 0; - left: 0; - width: 100%; -} -.vis-time-axis.vis-background { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.vis-time-axis .vis-text { - position: absolute; - color: #4d4d4d; - padding: 3px; - overflow: hidden; - box-sizing: border-box; - white-space: nowrap; -} -.vis-time-axis .vis-text.vis-measure { - position: absolute; - padding-left: 0; - padding-right: 0; - margin-left: 0; - margin-right: 0; - visibility: hidden; -} -.vis-time-axis .vis-grid.vis-vertical { - position: absolute; - border-left: 1px solid; -} -.vis-time-axis .vis-grid.vis-vertical-rtl { - position: absolute; - border-right: 1px solid; -} -.vis-time-axis .vis-grid.vis-minor { - border-color: #e5e5e5; -} -.vis-time-axis .vis-grid.vis-major { - border-color: #bfbfbf; -} -.vis .overlay { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 10; -} -.vis-active { - box-shadow: 0 0 10px #86d5f8; -} -.vis-custom-time { - background-color: #6E94FF; - width: 2px; - cursor: move; - z-index: 1; -} -.vis-custom-time > .vis-custom-time-marker { - background-color: inherit; - color: white; - font-size: 12px; - white-space: nowrap; - padding: 3px 5px; - top: 0px; - cursor: initial; - z-index: inherit; -} -.vis-timeline { -} -.vis-panel { -} -.vis-axis { -} -.vis-current-time { - background-color: #FF7F6E; - width: 2px; - z-index: 1; - pointer-events: none; -} -.vis-rolling-mode-btn { - height: 40px; - width: 40px; - position: absolute; - top: 7px; - right: 20px; - border-radius: 50%; - font-size: 28px; - cursor: pointer; - opacity: 0.8; - color: white; - font-weight: bold; - text-align: center; - background: #3876c2; -} -.vis-rolling-mode-btn:before { - content: "\26f6"; -} -.vis-rolling-mode-btn:hover { - opacity: 1; -} -.vis-panel { - position: absolute; - padding: 0; - margin: 0; - box-sizing: border-box; -} -.vis-panel.vis-center, -.vis-panel.vis-left, -.vis-panel.vis-right, -.vis-panel.vis-top, -.vis-panel.vis-bottom { - border: 1px #bfbfbf; -} -.vis-panel.vis-center, -.vis-panel.vis-left, -.vis-panel.vis-right { - border-top-style: solid; - border-bottom-style: solid; - overflow: hidden; -} -.vis-left.vis-panel.vis-vertical-scroll, -.vis-right.vis-panel.vis-vertical-scroll { - height: 100%; - overflow-x: hidden; - overflow-y: scroll; -} -.vis-left.vis-panel.vis-vertical-scroll { - direction: rtl; -} -.vis-left.vis-panel.vis-vertical-scroll .vis-content { - direction: ltr; -} -.vis-right.vis-panel.vis-vertical-scroll { - direction: ltr; -} -.vis-right.vis-panel.vis-vertical-scroll .vis-content { - direction: rtl; -} -.vis-panel.vis-center, -.vis-panel.vis-top, -.vis-panel.vis-bottom { - border-left-style: solid; - border-right-style: solid; -} -.vis-background { - overflow: hidden; -} -.vis-panel > .vis-content { - position: relative; -} -.vis-panel .vis-shadow { - position: absolute; - width: 100%; - height: 1px; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.8); -} -.vis-panel .vis-shadow.vis-top { - top: -1px; - left: 0; -} -.vis-panel .vis-shadow.vis-bottom { - bottom: -1px; - left: 0; -} -.vis-graph-group0 { - fill: #4f81bd; - fill-opacity: 0; - stroke-width: 2px; - stroke: #4f81bd; -} -.vis-graph-group1 { - fill: #f79646; - fill-opacity: 0; - stroke-width: 2px; - stroke: #f79646; -} -.vis-graph-group2 { - fill: #8c51cf; - fill-opacity: 0; - stroke-width: 2px; - stroke: #8c51cf; -} -.vis-graph-group3 { - fill: #75c841; - fill-opacity: 0; - stroke-width: 2px; - stroke: #75c841; -} -.vis-graph-group4 { - fill: #ff0100; - fill-opacity: 0; - stroke-width: 2px; - stroke: #ff0100; -} -.vis-graph-group5 { - fill: #37d8e6; - fill-opacity: 0; - stroke-width: 2px; - stroke: #37d8e6; -} -.vis-graph-group6 { - fill: #042662; - fill-opacity: 0; - stroke-width: 2px; - stroke: #042662; -} -.vis-graph-group7 { - fill: #00ff26; - fill-opacity: 0; - stroke-width: 2px; - stroke: #00ff26; -} -.vis-graph-group8 { - fill: #ff00ff; - fill-opacity: 0; - stroke-width: 2px; - stroke: #ff00ff; -} -.vis-graph-group9 { - fill: #8f3938; - fill-opacity: 0; - stroke-width: 2px; - stroke: #8f3938; -} -.vis-timeline .vis-fill { - fill-opacity: 0.1; - stroke: none; -} -.vis-timeline .vis-bar { - fill-opacity: 0.5; - stroke-width: 1px; -} -.vis-timeline .vis-point { - stroke-width: 2px; - fill-opacity: 1.0; -} -.vis-timeline .vis-legend-background { - stroke-width: 1px; - fill-opacity: 0.9; - fill: #ffffff; - stroke: #c2c2c2; -} -.vis-timeline .vis-outline { - stroke-width: 1px; - fill-opacity: 1; - fill: #ffffff; - stroke: #e5e5e5; -} -.vis-timeline .vis-icon-fill { - fill-opacity: 0.3; - stroke: none; -} -.vis-timeline { - position: relative; - border: 1px solid #bfbfbf; - overflow: hidden; - padding: 0; - margin: 0; - box-sizing: border-box; -} -.vis-loading-screen { - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; -} -.vis [class*=span] { - min-height: 0; - width: auto; -} -.vis-item { - position: absolute; - color: #1A1A1A; - border-color: #97B0F8; - border-width: 1px; - background-color: #D5DDF6; - display: inline-block; - z-index: 1; -} -.vis-item.vis-selected { - border-color: #FFC200; - background-color: #FFF785; - z-index: 2; -} -.vis-editable.vis-selected { - cursor: move; -} -.vis-item.vis-point.vis-selected { - background-color: #FFF785; -} -.vis-item.vis-box { - text-align: center; - border-style: solid; - border-radius: 2px; -} -.vis-item.vis-point { - background: none; -} -.vis-item.vis-dot { - position: absolute; - padding: 0; - border-width: 4px; - border-style: solid; - border-radius: 4px; -} -.vis-item.vis-range { - border-style: solid; - border-radius: 2px; - box-sizing: border-box; -} -.vis-item.vis-background { - border: none; - background-color: rgba(213, 221, 246, 0.4); - box-sizing: border-box; - padding: 0; - margin: 0; -} -.vis-item .vis-item-overflow { - position: relative; - width: 100%; - height: 100%; - padding: 0; - margin: 0; - overflow: hidden; -} -.vis-item-visible-frame { - white-space: nowrap; -} -.vis-item.vis-range .vis-item-content { - position: relative; - display: inline-block; -} -.vis-item.vis-background .vis-item-content { - position: absolute; - display: inline-block; -} -.vis-item.vis-line { - padding: 0; - position: absolute; - width: 0; - border-left-width: 1px; - border-left-style: solid; -} -.vis-item .vis-item-content { - white-space: nowrap; - box-sizing: border-box; - padding: 5px; -} -.vis-item .vis-onUpdateTime-tooltip { - position: absolute; - background: #4f81bd; - color: white; - width: 200px; - text-align: center; - white-space: nowrap; - padding: 5px; - border-radius: 1px; - transition: 0.4s; - -o-transition: 0.4s; - -moz-transition: 0.4s; - -webkit-transition: 0.4s; -} -.vis-item .vis-delete, -.vis-item .vis-delete-rtl { - position: absolute; - top: 0px; - width: 24px; - height: 24px; - box-sizing: border-box; - padding: 0px 5px; - cursor: pointer; - -webkit-transition: background 0.2s linear; - -moz-transition: background 0.2s linear; - -ms-transition: background 0.2s linear; - -o-transition: background 0.2s linear; - transition: background 0.2s linear; -} -.vis-item .vis-delete { - right: -24px; -} -.vis-item .vis-delete-rtl { - left: -24px; -} -.vis-item .vis-delete:after, -.vis-item .vis-delete-rtl:after { - content: "\d7"; - color: red; - font-family: arial, sans-serif; - font-size: 22px; - font-weight: bold; - -webkit-transition: color 0.2s linear; - -moz-transition: color 0.2s linear; - -ms-transition: color 0.2s linear; - -o-transition: color 0.2s linear; - transition: color 0.2s linear; -} -.vis-item .vis-delete:hover, -.vis-item .vis-delete-rtl:hover { - background: red; -} -.vis-item .vis-delete:hover:after, -.vis-item .vis-delete-rtl:hover:after { - color: white; -} -.vis-item .vis-drag-center { - position: absolute; - width: 100%; - height: 100%; - top: 0; - left: 0px; - cursor: move; -} -.vis-item.vis-range .vis-drag-left { - position: absolute; - width: 24px; - max-width: 20%; - min-width: 2px; - height: 100%; - top: 0; - left: -4px; - cursor: w-resize; -} -.vis-item.vis-range .vis-drag-right { - position: absolute; - width: 24px; - max-width: 20%; - min-width: 2px; - height: 100%; - top: 0; - right: -4px; - cursor: e-resize; -} -.vis-range.vis-item.vis-readonly .vis-drag-left, -.vis-range.vis-item.vis-readonly .vis-drag-right { - cursor: auto; -} -.vis-item.vis-cluster { - vertical-align: center; - text-align: center; - border-style: solid; - border-radius: 2px; -} -.vis-item.vis-cluster-line { - padding: 0; - position: absolute; - width: 0; - border-left-width: 1px; - border-left-style: solid; -} -.vis-item.vis-cluster-dot { - position: absolute; - padding: 0; - border-width: 4px; - border-style: solid; - border-radius: 4px; -} -div.vis-tooltip { - position: absolute; - visibility: hidden; - padding: 5px; - white-space: nowrap; - font-family: verdana; - font-size: 14px; - color: #000000; - background-color: #f5f4ed; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - border: 1px solid #808074; - box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.2); - pointer-events: none; - z-index: 5; -} -.vis-itemset { - position: relative; - padding: 0; - margin: 0; - box-sizing: border-box; -} -.vis-itemset .vis-background, -.vis-itemset .vis-foreground { - position: absolute; - width: 100%; - height: 100%; - overflow: visible; -} -.vis-axis { - position: absolute; - width: 100%; - height: 0; - left: 0; - z-index: 1; -} -.vis-foreground .vis-group { - position: relative; - box-sizing: border-box; - border-bottom: 1px solid #bfbfbf; -} -.vis-foreground .vis-group:last-child { - border-bottom: none; -} -.vis-nesting-group { - cursor: pointer; -} -.vis-label.vis-nested-group.vis-group-level-unknown-but-gte1 { - background: #f5f5f5; -} -.vis-label.vis-nested-group.vis-group-level-0 { - background-color: #ffffff; -} -.vis-ltr .vis-label.vis-nested-group.vis-group-level-0 .vis-inner { - padding-left: 0; -} -.vis-rtl .vis-label.vis-nested-group.vis-group-level-0 .vis-inner { - padding-right: 0; -} -.vis-label.vis-nested-group.vis-group-level-1 { - background-color: rgba(0, 0, 0, 0.05); -} -.vis-ltr .vis-label.vis-nested-group.vis-group-level-1 .vis-inner { - padding-left: 15px; -} -.vis-rtl .vis-label.vis-nested-group.vis-group-level-1 .vis-inner { - padding-right: 15px; -} -.vis-label.vis-nested-group.vis-group-level-2 { - background-color: rgba(0, 0, 0, 0.1); -} -.vis-ltr .vis-label.vis-nested-group.vis-group-level-2 .vis-inner { - padding-left: 30px; -} -.vis-rtl .vis-label.vis-nested-group.vis-group-level-2 .vis-inner { - padding-right: 30px; -} -.vis-label.vis-nested-group.vis-group-level-3 { - background-color: rgba(0, 0, 0, 0.15); -} -.vis-ltr .vis-label.vis-nested-group.vis-group-level-3 .vis-inner { - padding-left: 45px; -} -.vis-rtl .vis-label.vis-nested-group.vis-group-level-3 .vis-inner { - padding-right: 45px; -} -.vis-label.vis-nested-group.vis-group-level-4 { - background-color: rgba(0, 0, 0, 0.2); -} -.vis-ltr .vis-label.vis-nested-group.vis-group-level-4 .vis-inner { - padding-left: 60px; -} -.vis-rtl .vis-label.vis-nested-group.vis-group-level-4 .vis-inner { - padding-right: 60px; -} -.vis-label.vis-nested-group.vis-group-level-5 { - background-color: rgba(0, 0, 0, 0.25); -} -.vis-ltr .vis-label.vis-nested-group.vis-group-level-5 .vis-inner { - padding-left: 75px; -} -.vis-rtl .vis-label.vis-nested-group.vis-group-level-5 .vis-inner { - padding-right: 75px; -} -.vis-label.vis-nested-group.vis-group-level-6 { - background-color: rgba(0, 0, 0, 0.3); -} -.vis-ltr .vis-label.vis-nested-group.vis-group-level-6 .vis-inner { - padding-left: 90px; -} -.vis-rtl .vis-label.vis-nested-group.vis-group-level-6 .vis-inner { - padding-right: 90px; -} -.vis-label.vis-nested-group.vis-group-level-7 { - background-color: rgba(0, 0, 0, 0.35); -} -.vis-ltr .vis-label.vis-nested-group.vis-group-level-7 .vis-inner { - padding-left: 105px; -} -.vis-rtl .vis-label.vis-nested-group.vis-group-level-7 .vis-inner { - padding-right: 105px; -} -.vis-label.vis-nested-group.vis-group-level-8 { - background-color: rgba(0, 0, 0, 0.4); -} -.vis-ltr .vis-label.vis-nested-group.vis-group-level-8 .vis-inner { - padding-left: 120px; -} -.vis-rtl .vis-label.vis-nested-group.vis-group-level-8 .vis-inner { - padding-right: 120px; -} -.vis-label.vis-nested-group.vis-group-level-9 { - background-color: rgba(0, 0, 0, 0.45); -} -.vis-ltr .vis-label.vis-nested-group.vis-group-level-9 .vis-inner { - padding-left: 135px; -} -.vis-rtl .vis-label.vis-nested-group.vis-group-level-9 .vis-inner { - padding-right: 135px; -} -.vis-label.vis-nested-group { - background-color: rgba(0, 0, 0, 0.5); -} -.vis-ltr .vis-label.vis-nested-group .vis-inner { - padding-left: 150px; -} -.vis-rtl .vis-label.vis-nested-group .vis-inner { - padding-right: 150px; -} -.vis-group-level-unknown-but-gte1 { - border: 1px solid red; -} -.vis-label.vis-nesting-group:before, -.vis-label.vis-nesting-group:before { - display: inline-block; - width: 15px; -} -.vis-label.vis-nesting-group.expanded:before { - content: "\25bc"; -} -.vis-label.vis-nesting-group.collapsed:before { - content: "\25b6"; -} -.vis-rtl .vis-label.vis-nesting-group.collapsed:before { - content: "\25c0"; -} -.vis-ltr .vis-label:not(.vis-nesting-group):not(.vis-group-level-0) { - padding-left: 15px; -} -.vis-rtl .vis-label:not(.vis-nesting-group):not(.vis-group-level-0) { - padding-right: 15px; -} -.vis-overlay { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 10; -} -.vis-labelset { - position: relative; - overflow: hidden; - box-sizing: border-box; -} -.vis-labelset .vis-label { - position: relative; - left: 0; - top: 0; - width: 100%; - color: #4d4d4d; - box-sizing: border-box; -} -.vis-labelset .vis-label { - border-bottom: 1px solid #bfbfbf; -} -.vis-labelset .vis-label.draggable { - cursor: pointer; -} -.vis-group-is-dragging { - background: rgba(0, 0, 0, .1); -} -.vis-labelset .vis-label:last-child { - border-bottom: none; -} -.vis-labelset .vis-label .vis-inner { - display: inline-block; - padding: 5px; -} -.vis-labelset .vis-label .vis-inner.vis-hidden { - padding: 0; -} -div.vis-configuration { - position: relative; - display: block; - float: left; - font-size: 12px; -} -div.vis-configuration-wrapper { - display: block; - width: 700px; -} -div.vis-configuration-wrapper::after { - clear: both; - content: ""; - display: block; -} -div.vis-configuration.vis-config-option-container { - display: block; - width: 495px; - background-color: #ffffff; - border: 2px solid #f7f8fa; - border-radius: 4px; - margin-top: 20px; - left: 10px; - padding-left: 5px; -} -div.vis-configuration.vis-config-button { - display: block; - width: 495px; - height: 25px; - vertical-align: middle; - line-height: 25px; - background-color: #f7f8fa; - border: 2px solid #ceced0; - border-radius: 4px; - margin-top: 20px; - left: 10px; - padding-left: 5px; - cursor: pointer; - margin-bottom: 30px; -} -div.vis-configuration.vis-config-button.hover { - background-color: #4588e6; - border: 2px solid #214373; - color: #ffffff; -} -div.vis-configuration.vis-config-item { - display: block; - float: left; - width: 495px; - height: 25px; - vertical-align: middle; - line-height: 25px; -} -div.vis-configuration.vis-config-item.vis-config-s2 { - left: 10px; - background-color: #f7f8fa; - padding-left: 5px; - border-radius: 3px; -} -div.vis-configuration.vis-config-item.vis-config-s3 { - left: 20px; - background-color: #e4e9f0; - padding-left: 5px; - border-radius: 3px; -} -div.vis-configuration.vis-config-item.vis-config-s4 { - left: 30px; - background-color: #cfd8e6; - padding-left: 5px; - border-radius: 3px; -} -div.vis-configuration.vis-config-header { - font-size: 18px; - font-weight: bold; -} -div.vis-configuration.vis-config-label { - width: 120px; - height: 25px; - line-height: 25px; -} -div.vis-configuration.vis-config-label.vis-config-s3 { - width: 110px; -} -div.vis-configuration.vis-config-label.vis-config-s4 { - width: 100px; -} -div.vis-configuration.vis-config-colorBlock { - top: 1px; - width: 30px; - height: 19px; - border: 1px solid #444444; - border-radius: 2px; - padding: 0px; - margin: 0px; - cursor: pointer; -} -input.vis-configuration.vis-config-checkbox { - left: -5px; -} -input.vis-configuration.vis-config-rangeinput { - position: relative; - top: -5px; - width: 60px; - padding: 1px; - margin: 0; - pointer-events: none; -} -input.vis-configuration.vis-config-range { - -webkit-appearance: none; - border: 0px solid white; - background-color: rgba(0, 0, 0, 0); - width: 300px; - height: 20px; -} -input.vis-configuration.vis-config-range::-webkit-slider-runnable-track { - width: 300px; - height: 5px; - background: #dedede; - background: -moz-linear-gradient(top, #dedede 0%, #c8c8c8 99%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #dedede), color-stop(99%, #c8c8c8)); - background: -webkit-linear-gradient(top, #dedede 0%, #c8c8c8 99%); - background: -o-linear-gradient(top, #dedede 0%, #c8c8c8 99%); - background: -ms-linear-gradient(top, #dedede 0%, #c8c8c8 99%); - background: linear-gradient(to bottom, #dedede 0%, #c8c8c8 99%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#dedede", endColorstr="#c8c8c8", GradientType=0); - border: 1px solid #999999; - box-shadow: #aaaaaa 0px 0px 3px 0px; - border-radius: 3px; -} -input.vis-configuration.vis-config-range::-webkit-slider-thumb { - -webkit-appearance: none; - border: 1px solid #14334b; - height: 17px; - width: 17px; - border-radius: 50%; - background: #3876c2; - background: -moz-linear-gradient(top, #3876c2 0%, #385380 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #3876c2), color-stop(100%, #385380)); - background: -webkit-linear-gradient(top, #3876c2 0%, #385380 100%); - background: -o-linear-gradient(top, #3876c2 0%, #385380 100%); - background: -ms-linear-gradient(top, #3876c2 0%, #385380 100%); - background: linear-gradient(to bottom, #3876c2 0%, #385380 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3876c2", endColorstr="#385380", GradientType=0); - box-shadow: #111927 0px 0px 1px 0px; - margin-top: -7px; -} -input.vis-configuration.vis-config-range:focus { - outline: none; -} -input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track { - background: #9d9d9d; - background: -moz-linear-gradient(top, #9d9d9d 0%, #c8c8c8 99%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #9d9d9d), color-stop(99%, #c8c8c8)); - background: -webkit-linear-gradient(top, #9d9d9d 0%, #c8c8c8 99%); - background: -o-linear-gradient(top, #9d9d9d 0%, #c8c8c8 99%); - background: -ms-linear-gradient(top, #9d9d9d 0%, #c8c8c8 99%); - background: linear-gradient(to bottom, #9d9d9d 0%, #c8c8c8 99%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#9d9d9d", endColorstr="#c8c8c8", GradientType=0); -} -input.vis-configuration.vis-config-range::-moz-range-track { - width: 300px; - height: 10px; - background: #dedede; - background: -moz-linear-gradient(top, #dedede 0%, #c8c8c8 99%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #dedede), color-stop(99%, #c8c8c8)); - background: -webkit-linear-gradient(top, #dedede 0%, #c8c8c8 99%); - background: -o-linear-gradient(top, #dedede 0%, #c8c8c8 99%); - background: -ms-linear-gradient(top, #dedede 0%, #c8c8c8 99%); - background: linear-gradient(to bottom, #dedede 0%, #c8c8c8 99%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#dedede", endColorstr="#c8c8c8", GradientType=0); - border: 1px solid #999999; - box-shadow: #aaaaaa 0px 0px 3px 0px; - border-radius: 3px; -} -input.vis-configuration.vis-config-range::-moz-range-thumb { - border: none; - height: 16px; - width: 16px; - border-radius: 50%; - background: #385380; -} -input.vis-configuration.vis-config-range:-moz-focusring { - outline: 1px solid white; - outline-offset: -1px; -} -input.vis-configuration.vis-config-range::-ms-track { - width: 300px; - height: 5px; - background: transparent; - border-color: transparent; - border-width: 6px 0; - color: transparent; -} -input.vis-configuration.vis-config-range::-ms-fill-lower { - background: #777; - border-radius: 10px; -} -input.vis-configuration.vis-config-range::-ms-fill-upper { - background: #ddd; - border-radius: 10px; -} -input.vis-configuration.vis-config-range::-ms-thumb { - border: none; - height: 16px; - width: 16px; - border-radius: 50%; - background: #385380; -} -input.vis-configuration.vis-config-range:focus::-ms-fill-lower { - background: #888; -} -input.vis-configuration.vis-config-range:focus::-ms-fill-upper { - background: #ccc; -} -.vis-configuration-popup { - position: absolute; - background: rgba(57, 76, 89, 0.85); - border: 2px solid #f2faff; - line-height: 30px; - height: 30px; - width: 150px; - text-align: center; - color: #ffffff; - font-size: 14px; - border-radius: 4px; - -webkit-transition: opacity 0.3s ease-in-out; - -moz-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; -} -.vis-configuration-popup:after, -.vis-configuration-popup:before { - left: 100%; - top: 50%; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; -} -.vis-configuration-popup:after { - border-color: rgba(136, 183, 213, 0); - border-left-color: rgba(57, 76, 89, 0.85); - border-width: 8px; - margin-top: -8px; -} -.vis-configuration-popup:before { - border-color: rgba(194, 225, 245, 0); - border-left-color: #f2faff; - border-width: 12px; - margin-top: -12px; -} -.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal { - position: absolute; - width: 100%; - height: 0; - border-bottom: 1px solid; -} -.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor { - border-color: #e5e5e5; -} -.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major { - border-color: #bfbfbf; -} -.vis-data-axis .vis-y-axis.vis-major { - width: 100%; - position: absolute; - color: #4d4d4d; - white-space: nowrap; -} -.vis-data-axis .vis-y-axis.vis-major.vis-measure { - padding: 0; - margin: 0; - border: 0; - visibility: hidden; - width: auto; -} -.vis-data-axis .vis-y-axis.vis-minor { - position: absolute; - width: 100%; - color: #bebebe; - white-space: nowrap; -} -.vis-data-axis .vis-y-axis.vis-minor.vis-measure { - padding: 0; - margin: 0; - border: 0; - visibility: hidden; - width: auto; -} -.vis-data-axis .vis-y-axis.vis-title { - position: absolute; - color: #4d4d4d; - white-space: nowrap; - bottom: 20px; - text-align: center; -} -.vis-data-axis .vis-y-axis.vis-title.vis-measure { - padding: 0; - margin: 0; - visibility: hidden; - width: auto; -} -.vis-data-axis .vis-y-axis.vis-title.vis-left { - bottom: 0; - -webkit-transform-origin: left top; - -moz-transform-origin: left top; - -ms-transform-origin: left top; - -o-transform-origin: left top; - transform-origin: left bottom; - -webkit-transform: rotate(-90deg); - -moz-transform: rotate(-90deg); - -ms-transform: rotate(-90deg); - -o-transform: rotate(-90deg); - transform: rotate(-90deg); -} -.vis-data-axis .vis-y-axis.vis-title.vis-right { - bottom: 0; - -webkit-transform-origin: right bottom; - -moz-transform-origin: right bottom; - -ms-transform-origin: right bottom; - -o-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: rotate(90deg); - -moz-transform: rotate(90deg); - -ms-transform: rotate(90deg); - -o-transform: rotate(90deg); - transform: rotate(90deg); -} -.vis-legend { - background-color: rgba(247, 252, 255, 0.65); - padding: 5px; - border: 1px solid #b3b3b3; - box-shadow: 2px 2px 10px rgba(154, 154, 154, 0.55); -} -.vis-legend-text { - white-space: nowrap; - display: inline-block; -} -/*# sourceMappingURL=tab.css.map */ diff --git a/js/dist/extension/tab.css.map b/js/dist/extension/tab.css.map deleted file mode 100644 index 01404102..00000000 --- a/js/dist/extension/tab.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../node_modules/vis-timeline/styles/timeaxis.css", "../../../node_modules/vis-timeline/styles/activator.css", "../../../node_modules/vis-timeline/styles/customtime.css", "../../../node_modules/vis-timeline/styles/animation.css", "../../../node_modules/vis-timeline/styles/currenttime.css", "../../../node_modules/vis-timeline/styles/panel.css", "../../../node_modules/vis-timeline/styles/pathStyles.css", "../../../node_modules/vis-timeline/styles/timeline.css", "../../../node_modules/vis-timeline/styles/bootstrap.css", "../../../node_modules/vis-timeline/styles/item.css", "../../../node_modules/vis-timeline/styles/tooltip.css", "../../../node_modules/vis-timeline/styles/itemset.css", "../../../node_modules/vis-timeline/styles/labelset.css", "../../../node_modules/vis-timeline/styles/configuration.css", "../../../node_modules/vis-timeline/styles/dataaxis.css"], - "sourcesContent": [".vis-time-axis {\n position: relative;\n overflow: hidden;\n}\n\n.vis-time-axis.vis-foreground {\n top: 0;\n left: 0;\n width: 100%;\n}\n\n.vis-time-axis.vis-background {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.vis-time-axis .vis-text {\n position: absolute;\n color: #4d4d4d;\n padding: 3px;\n overflow: hidden;\n box-sizing: border-box;\n\n white-space: nowrap;\n}\n\n.vis-time-axis .vis-text.vis-measure {\n position: absolute;\n padding-left: 0;\n padding-right: 0;\n margin-left: 0;\n margin-right: 0;\n visibility: hidden;\n}\n\n.vis-time-axis .vis-grid.vis-vertical {\n position: absolute;\n border-left: 1px solid;\n}\n\n.vis-time-axis .vis-grid.vis-vertical-rtl {\n position: absolute;\n border-right: 1px solid;\n}\n\n.vis-time-axis .vis-grid.vis-minor {\n border-color: #e5e5e5;\n}\n\n.vis-time-axis .vis-grid.vis-major {\n border-color: #bfbfbf;\n}\n", ".vis .overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n /* Must be displayed above for example selected Timeline items */\n z-index: 10;\n}\n\n.vis-active {\n box-shadow: 0 0 10px #86d5f8;\n}\n", ".vis-custom-time {\n background-color: #6E94FF;\n width: 2px;\n cursor: move;\n z-index: 1;\n}\n\n.vis-custom-time > .vis-custom-time-marker {\n background-color: inherit;\n color: white;\n font-size: 12px;\n white-space: nowrap;\n padding: 3px 5px;\n top: 0px;\n cursor: initial;\n z-index: inherit;\n}", ".vis-timeline {\n /*\n -webkit-transition: height .4s ease-in-out;\n transition: height .4s ease-in-out;\n */\n}\n\n.vis-panel {\n /*\n -webkit-transition: height .4s ease-in-out, top .4s ease-in-out;\n transition: height .4s ease-in-out, top .4s ease-in-out;\n */\n}\n\n.vis-axis {\n /*\n -webkit-transition: top .4s ease-in-out;\n transition: top .4s ease-in-out;\n */\n}\n\n/* TODO: get animation working nicely\n\n.vis-item {\n -webkit-transition: top .4s ease-in-out;\n transition: top .4s ease-in-out;\n}\n\n.vis-item.line {\n -webkit-transition: height .4s ease-in-out, top .4s ease-in-out;\n transition: height .4s ease-in-out, top .4s ease-in-out;\n}\n/**/", ".vis-current-time {\n background-color: #FF7F6E;\n width: 2px;\n z-index: 1;\n pointer-events: none;\n}\n\n.vis-rolling-mode-btn {\n height: 40px;\n width: 40px;\n position: absolute;\n top: 7px;\n right: 20px;\n border-radius: 50%;\n font-size: 28px;\n cursor: pointer;\n opacity: 0.8;\n color: white;\n font-weight: bold;\n text-align: center;\n background: #3876c2;\n}\n.vis-rolling-mode-btn:before {\n content: \"\\26F6\";\n}\n\n.vis-rolling-mode-btn:hover {\n opacity: 1;\n}", ".vis-panel {\n position: absolute;\n\n padding: 0;\n margin: 0;\n\n box-sizing: border-box;\n}\n\n.vis-panel.vis-center,\n.vis-panel.vis-left,\n.vis-panel.vis-right,\n.vis-panel.vis-top,\n.vis-panel.vis-bottom {\n border: 1px #bfbfbf;\n}\n\n.vis-panel.vis-center,\n.vis-panel.vis-left,\n.vis-panel.vis-right {\n border-top-style: solid;\n border-bottom-style: solid;\n overflow: hidden;\n}\n\n.vis-left.vis-panel.vis-vertical-scroll, .vis-right.vis-panel.vis-vertical-scroll {\n height: 100%;\n overflow-x: hidden;\n overflow-y: scroll;\n} \n\n.vis-left.vis-panel.vis-vertical-scroll {\n direction: rtl;\n}\n\n.vis-left.vis-panel.vis-vertical-scroll .vis-content {\n direction: ltr;\n}\n\n.vis-right.vis-panel.vis-vertical-scroll {\n direction: ltr;\n}\n\n.vis-right.vis-panel.vis-vertical-scroll .vis-content {\n direction: rtl;\n}\n\n.vis-panel.vis-center,\n.vis-panel.vis-top,\n.vis-panel.vis-bottom {\n border-left-style: solid;\n border-right-style: solid;\n}\n\n.vis-background {\n overflow: hidden;\n}\n\n.vis-panel > .vis-content {\n position: relative;\n}\n\n.vis-panel .vis-shadow {\n position: absolute;\n width: 100%;\n height: 1px;\n box-shadow: 0 0 10px rgba(0,0,0,0.8);\n /* TODO: find a nice way to ensure vis-shadows are drawn on top of items\n z-index: 1;\n */\n}\n\n.vis-panel .vis-shadow.vis-top {\n top: -1px;\n left: 0;\n}\n\n.vis-panel .vis-shadow.vis-bottom {\n bottom: -1px;\n left: 0;\n}", ".vis-graph-group0 {\n fill:#4f81bd;\n fill-opacity:0;\n stroke-width:2px;\n stroke: #4f81bd;\n}\n\n.vis-graph-group1 {\n fill:#f79646;\n fill-opacity:0;\n stroke-width:2px;\n stroke: #f79646;\n}\n\n.vis-graph-group2 {\n fill: #8c51cf;\n fill-opacity:0;\n stroke-width:2px;\n stroke: #8c51cf;\n}\n\n.vis-graph-group3 {\n fill: #75c841;\n fill-opacity:0;\n stroke-width:2px;\n stroke: #75c841;\n}\n\n.vis-graph-group4 {\n fill: #ff0100;\n fill-opacity:0;\n stroke-width:2px;\n stroke: #ff0100;\n}\n\n.vis-graph-group5 {\n fill: #37d8e6;\n fill-opacity:0;\n stroke-width:2px;\n stroke: #37d8e6;\n}\n\n.vis-graph-group6 {\n fill: #042662;\n fill-opacity:0;\n stroke-width:2px;\n stroke: #042662;\n}\n\n.vis-graph-group7 {\n fill:#00ff26;\n fill-opacity:0;\n stroke-width:2px;\n stroke: #00ff26;\n}\n\n.vis-graph-group8 {\n fill:#ff00ff;\n fill-opacity:0;\n stroke-width:2px;\n stroke: #ff00ff;\n}\n\n.vis-graph-group9 {\n fill: #8f3938;\n fill-opacity:0;\n stroke-width:2px;\n stroke: #8f3938;\n}\n\n.vis-timeline .vis-fill {\n fill-opacity:0.1;\n stroke: none;\n}\n\n\n.vis-timeline .vis-bar {\n fill-opacity:0.5;\n stroke-width:1px;\n}\n\n.vis-timeline .vis-point {\n stroke-width:2px;\n fill-opacity:1.0;\n}\n\n\n.vis-timeline .vis-legend-background {\n stroke-width:1px;\n fill-opacity:0.9;\n fill: #ffffff;\n stroke: #c2c2c2;\n}\n\n\n.vis-timeline .vis-outline {\n stroke-width:1px;\n fill-opacity:1;\n fill: #ffffff;\n stroke: #e5e5e5;\n}\n\n.vis-timeline .vis-icon-fill {\n fill-opacity:0.3;\n stroke: none;\n}\n", "\n.vis-timeline {\n position: relative;\n border: 1px solid #bfbfbf;\n overflow: hidden;\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n}\n\n.vis-loading-screen {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}", "/* override some bootstrap styles screwing up the timelines css */\n\n.vis [class*=\"span\"] {\n min-height: 0;\n width: auto;\n}\n", "\n.vis-item {\n position: absolute;\n color: #1A1A1A;\n border-color: #97B0F8;\n border-width: 1px;\n background-color: #D5DDF6;\n display: inline-block;\n z-index: 1;\n /*overflow: hidden;*/\n}\n\n.vis-item.vis-selected {\n border-color: #FFC200;\n background-color: #FFF785;\n\n /* z-index must be higher than the z-index of custom time bar and current time bar */\n z-index: 2;\n}\n\n.vis-editable.vis-selected {\n cursor: move;\n}\n\n.vis-item.vis-point.vis-selected {\n background-color: #FFF785;\n}\n\n.vis-item.vis-box {\n text-align: center;\n border-style: solid;\n border-radius: 2px;\n}\n\n.vis-item.vis-point {\n background: none;\n}\n\n.vis-item.vis-dot {\n position: absolute;\n padding: 0;\n border-width: 4px;\n border-style: solid;\n border-radius: 4px;\n}\n\n.vis-item.vis-range {\n border-style: solid;\n border-radius: 2px;\n box-sizing: border-box;\n}\n\n.vis-item.vis-background {\n border: none;\n background-color: rgba(213, 221, 246, 0.4);\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n}\n\n.vis-item .vis-item-overflow {\n position: relative;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n overflow: hidden;\n}\n\n.vis-item-visible-frame {\n white-space: nowrap;\n}\n\n.vis-item.vis-range .vis-item-content {\n position: relative;\n display: inline-block;\n}\n\n.vis-item.vis-background .vis-item-content {\n position: absolute;\n display: inline-block;\n}\n\n.vis-item.vis-line {\n padding: 0;\n position: absolute;\n width: 0;\n border-left-width: 1px;\n border-left-style: solid;\n}\n\n.vis-item .vis-item-content {\n white-space: nowrap;\n box-sizing: border-box;\n padding: 5px;\n}\n\n.vis-item .vis-onUpdateTime-tooltip {\n position: absolute;\n background: #4f81bd;\n color: white;\n width: 200px;\n text-align: center;\n white-space: nowrap;\n padding: 5px;\n border-radius: 1px;\n transition: 0.4s;\n -o-transition: 0.4s;\n -moz-transition: 0.4s;\n -webkit-transition: 0.4s;\n}\n\n.vis-item .vis-delete, .vis-item .vis-delete-rtl {\n position: absolute;\n top: 0px;\n width: 24px;\n height: 24px;\n box-sizing: border-box;\n padding: 0px 5px;\n cursor: pointer;\n\n -webkit-transition: background 0.2s linear;\n -moz-transition: background 0.2s linear;\n -ms-transition: background 0.2s linear;\n -o-transition: background 0.2s linear;\n transition: background 0.2s linear;\n}\n\n.vis-item .vis-delete {\n right: -24px;\n}\n\n.vis-item .vis-delete-rtl {\n left: -24px;\n}\n\n.vis-item .vis-delete:after, .vis-item .vis-delete-rtl:after {\n content: \"\\00D7\"; /* MULTIPLICATION SIGN */\n color: red;\n font-family: arial, sans-serif;\n font-size: 22px;\n font-weight: bold;\n\n -webkit-transition: color 0.2s linear;\n -moz-transition: color 0.2s linear;\n -ms-transition: color 0.2s linear;\n -o-transition: color 0.2s linear;\n transition: color 0.2s linear;\n}\n\n.vis-item .vis-delete:hover, .vis-item .vis-delete-rtl:hover {\n background: red;\n}\n\n.vis-item .vis-delete:hover:after, .vis-item .vis-delete-rtl:hover:after {\n color: white;\n}\n\n.vis-item .vis-drag-center {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0px;\n cursor: move;\n}\n\n.vis-item.vis-range .vis-drag-left {\n position: absolute;\n width: 24px;\n max-width: 20%;\n min-width: 2px;\n height: 100%;\n top: 0;\n left: -4px;\n\n cursor: w-resize;\n}\n\n.vis-item.vis-range .vis-drag-right {\n position: absolute;\n width: 24px;\n max-width: 20%;\n min-width: 2px;\n height: 100%;\n top: 0;\n right: -4px;\n\n cursor: e-resize;\n}\n\n.vis-range.vis-item.vis-readonly .vis-drag-left,\n.vis-range.vis-item.vis-readonly .vis-drag-right {\n cursor: auto;\n}\n\n.vis-item.vis-cluster {\n vertical-align: center;\n text-align: center;\n border-style: solid;\n border-radius: 2px;\n}\n\n.vis-item.vis-cluster-line {\n padding: 0;\n position: absolute;\n width: 0;\n border-left-width: 1px;\n border-left-style: solid;\n}\n\n.vis-item.vis-cluster-dot {\n position: absolute;\n padding: 0;\n border-width: 4px;\n border-style: solid;\n border-radius: 4px;\n}", "div.vis-tooltip {\n position: absolute;\n visibility: hidden;\n padding: 5px;\n white-space: nowrap;\n\n font-family: verdana;\n font-size:14px;\n color:#000000;\n background-color: #f5f4ed;\n\n -moz-border-radius: 3px;\n -webkit-border-radius: 3px;\n border-radius: 3px;\n border: 1px solid #808074;\n\n box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.2);\n pointer-events: none;\n\n z-index: 5;\n}\n", "\n.vis-itemset {\n position: relative;\n padding: 0;\n margin: 0;\n\n box-sizing: border-box;\n}\n\n.vis-itemset .vis-background,\n.vis-itemset .vis-foreground {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: visible;\n}\n\n.vis-axis {\n position: absolute;\n width: 100%;\n height: 0;\n left: 0;\n z-index: 1;\n}\n\n.vis-foreground .vis-group {\n position: relative;\n box-sizing: border-box;\n border-bottom: 1px solid #bfbfbf;\n}\n\n.vis-foreground .vis-group:last-child {\n border-bottom: none;\n}\n\n.vis-nesting-group {\n cursor: pointer;\n}\n\n.vis-label.vis-nested-group.vis-group-level-unknown-but-gte1 {\n background: #f5f5f5;\n}\n.vis-label.vis-nested-group.vis-group-level-0 {\n background-color: #ffffff;\n}\n.vis-ltr .vis-label.vis-nested-group.vis-group-level-0 .vis-inner {\n padding-left: 0;\n}\n.vis-rtl .vis-label.vis-nested-group.vis-group-level-0 .vis-inner {\n padding-right: 0;\n}\n.vis-label.vis-nested-group.vis-group-level-1 {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.vis-ltr .vis-label.vis-nested-group.vis-group-level-1 .vis-inner {\n padding-left: 15px;\n}\n.vis-rtl .vis-label.vis-nested-group.vis-group-level-1 .vis-inner {\n padding-right: 15px;\n}\n.vis-label.vis-nested-group.vis-group-level-2 {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.vis-ltr .vis-label.vis-nested-group.vis-group-level-2 .vis-inner {\n padding-left: 30px;\n}\n.vis-rtl .vis-label.vis-nested-group.vis-group-level-2 .vis-inner {\n padding-right: 30px;\n}\n.vis-label.vis-nested-group.vis-group-level-3 {\n background-color: rgba(0, 0, 0, 0.15);\n}\n.vis-ltr .vis-label.vis-nested-group.vis-group-level-3 .vis-inner {\n padding-left: 45px;\n}\n.vis-rtl .vis-label.vis-nested-group.vis-group-level-3 .vis-inner {\n padding-right: 45px;\n}\n.vis-label.vis-nested-group.vis-group-level-4 {\n background-color: rgba(0, 0, 0, 0.2);\n}\n.vis-ltr .vis-label.vis-nested-group.vis-group-level-4 .vis-inner {\n padding-left: 60px;\n}\n.vis-rtl .vis-label.vis-nested-group.vis-group-level-4 .vis-inner {\n padding-right: 60px;\n}\n.vis-label.vis-nested-group.vis-group-level-5 {\n background-color: rgba(0, 0, 0, 0.25);\n}\n.vis-ltr .vis-label.vis-nested-group.vis-group-level-5 .vis-inner {\n padding-left: 75px;\n}\n.vis-rtl .vis-label.vis-nested-group.vis-group-level-5 .vis-inner {\n padding-right: 75px;\n}\n.vis-label.vis-nested-group.vis-group-level-6 {\n background-color: rgba(0, 0, 0, 0.3);\n}\n.vis-ltr .vis-label.vis-nested-group.vis-group-level-6 .vis-inner {\n padding-left: 90px;\n}\n.vis-rtl .vis-label.vis-nested-group.vis-group-level-6 .vis-inner {\n padding-right: 90px;\n}\n.vis-label.vis-nested-group.vis-group-level-7 {\n background-color: rgba(0, 0, 0, 0.35);\n}\n.vis-ltr .vis-label.vis-nested-group.vis-group-level-7 .vis-inner {\n padding-left: 105px;\n}\n.vis-rtl .vis-label.vis-nested-group.vis-group-level-7 .vis-inner {\n padding-right: 105px;\n}\n.vis-label.vis-nested-group.vis-group-level-8 {\n background-color: rgba(0, 0, 0, 0.4);\n}\n.vis-ltr .vis-label.vis-nested-group.vis-group-level-8 .vis-inner {\n padding-left: 120px;\n}\n.vis-rtl .vis-label.vis-nested-group.vis-group-level-8 .vis-inner {\n padding-right: 120px;\n}\n.vis-label.vis-nested-group.vis-group-level-9 {\n background-color: rgba(0, 0, 0, 0.45);\n}\n.vis-ltr .vis-label.vis-nested-group.vis-group-level-9 .vis-inner {\n padding-left: 135px;\n}\n.vis-rtl .vis-label.vis-nested-group.vis-group-level-9 .vis-inner {\n padding-right: 135px;\n}\n/* default takes over beginning with level-10 (thats why we add .vis-nested-group\n to the selectors above, to have higher specifity than these rules for the defaults) */\n.vis-label.vis-nested-group {\n background-color: rgba(0, 0, 0, 0.5);\n}\n.vis-ltr .vis-label.vis-nested-group .vis-inner {\n padding-left: 150px;\n}\n.vis-rtl .vis-label.vis-nested-group .vis-inner {\n padding-right: 150px;\n}\n\n.vis-group-level-unknown-but-gte1 {\n border: 1px solid red;\n}\n\n/* expanded/collapsed indicators */\n.vis-label.vis-nesting-group:before,\n.vis-label.vis-nesting-group:before {\n display: inline-block;\n width: 15px;\n}\n.vis-label.vis-nesting-group.expanded:before {\n content: \"\\25BC\";\n}\n.vis-label.vis-nesting-group.collapsed:before {\n content: \"\\25B6\";\n}\n.vis-rtl .vis-label.vis-nesting-group.collapsed:before {\n content: \"\\25C0\";\n}\n/* compensate missing expanded/collapsed indicator, but only at levels > 0 */\n.vis-ltr .vis-label:not(.vis-nesting-group):not(.vis-group-level-0) {\n padding-left: 15px;\n}\n.vis-rtl .vis-label:not(.vis-nesting-group):not(.vis-group-level-0) {\n padding-right: 15px;\n}\n\n.vis-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 10;\n}", "\n.vis-labelset {\n position: relative;\n\n overflow: hidden;\n\n box-sizing: border-box;\n}\n\n.vis-labelset .vis-label {\n position: relative;\n left: 0;\n top: 0;\n width: 100%;\n color: #4d4d4d;\n\n box-sizing: border-box;\n}\n\n.vis-labelset .vis-label {\n border-bottom: 1px solid #bfbfbf;\n}\n\n.vis-labelset .vis-label.draggable {\n cursor: pointer;\n}\n\n.vis-group-is-dragging {\n background: rgba(0, 0, 0, .1);\n}\n\n.vis-labelset .vis-label:last-child {\n border-bottom: none;\n}\n\n.vis-labelset .vis-label .vis-inner {\n display: inline-block;\n padding: 5px;\n}\n\n.vis-labelset .vis-label .vis-inner.vis-hidden {\n padding: 0;\n}\n", "div.vis-configuration {\n position:relative;\n display:block;\n float:left;\n font-size:12px;\n}\n\ndiv.vis-configuration-wrapper {\n display:block;\n width:700px;\n}\n\ndiv.vis-configuration-wrapper::after {\n clear: both;\n content: \"\";\n display: block;\n}\n\ndiv.vis-configuration.vis-config-option-container{\n display:block;\n width:495px;\n background-color: #ffffff;\n border:2px solid #f7f8fa;\n border-radius:4px;\n margin-top:20px;\n left:10px;\n padding-left:5px;\n}\n\ndiv.vis-configuration.vis-config-button{\n display:block;\n width:495px;\n height:25px;\n vertical-align: middle;\n line-height:25px;\n background-color: #f7f8fa;\n border:2px solid #ceced0;\n border-radius:4px;\n margin-top:20px;\n left:10px;\n padding-left:5px;\n cursor: pointer;\n margin-bottom:30px;\n}\n\ndiv.vis-configuration.vis-config-button.hover{\n background-color: #4588e6;\n border:2px solid #214373;\n color:#ffffff;\n}\n\ndiv.vis-configuration.vis-config-item{\n display:block;\n float:left;\n width:495px;\n height:25px;\n vertical-align: middle;\n line-height:25px;\n}\n\n\ndiv.vis-configuration.vis-config-item.vis-config-s2{\n left:10px;\n background-color: #f7f8fa;\n padding-left:5px;\n border-radius:3px;\n}\ndiv.vis-configuration.vis-config-item.vis-config-s3{\n left:20px;\n background-color: #e4e9f0;\n padding-left:5px;\n border-radius:3px;\n}\ndiv.vis-configuration.vis-config-item.vis-config-s4{\n left:30px;\n background-color: #cfd8e6;\n padding-left:5px;\n border-radius:3px;\n}\n\ndiv.vis-configuration.vis-config-header{\n font-size:18px;\n font-weight: bold;\n}\n\ndiv.vis-configuration.vis-config-label{\n width:120px;\n height:25px;\n line-height: 25px;\n}\n\ndiv.vis-configuration.vis-config-label.vis-config-s3{\n width:110px;\n}\ndiv.vis-configuration.vis-config-label.vis-config-s4{\n width:100px;\n}\n\ndiv.vis-configuration.vis-config-colorBlock{\n top:1px;\n width:30px;\n height:19px;\n border:1px solid #444444;\n border-radius:2px;\n padding:0px;\n margin:0px;\n cursor:pointer;\n}\n\ninput.vis-configuration.vis-config-checkbox {\n left:-5px;\n}\n\n\ninput.vis-configuration.vis-config-rangeinput{\n position:relative;\n top:-5px;\n width:60px;\n /*height:13px;*/\n padding:1px;\n margin:0;\n pointer-events:none;\n}\n\ninput.vis-configuration.vis-config-range{\n /*removes default webkit styles*/\n -webkit-appearance: none;\n\n /*fix for FF unable to apply focus style bug */\n border: 0px solid white;\n background-color:rgba(0,0,0,0);\n\n /*required for proper track sizing in FF*/\n width: 300px;\n height:20px;\n}\ninput.vis-configuration.vis-config-range::-webkit-slider-runnable-track {\n width: 300px;\n height: 5px;\n background: #dedede; /* Old browsers */\n background: -moz-linear-gradient(top, #dedede 0%, #c8c8c8 99%); /* FF3.6+ */\n background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#dedede), color-stop(99%,#c8c8c8)); /* Chrome,Safari4+ */\n background: -webkit-linear-gradient(top, #dedede 0%,#c8c8c8 99%); /* Chrome10+,Safari5.1+ */\n background: -o-linear-gradient(top, #dedede 0%, #c8c8c8 99%); /* Opera 11.10+ */\n background: -ms-linear-gradient(top, #dedede 0%,#c8c8c8 99%); /* IE10+ */\n background: linear-gradient(to bottom, #dedede 0%,#c8c8c8 99%); /* W3C */\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8',GradientType=0 ); /* IE6-9 */\n\n border: 1px solid #999999;\n box-shadow: #aaaaaa 0px 0px 3px 0px;\n border-radius: 3px;\n}\ninput.vis-configuration.vis-config-range::-webkit-slider-thumb {\n -webkit-appearance: none;\n border: 1px solid #14334b;\n height: 17px;\n width: 17px;\n border-radius: 50%;\n background: #3876c2; /* Old browsers */\n background: -moz-linear-gradient(top, #3876c2 0%, #385380 100%); /* FF3.6+ */\n background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#3876c2), color-stop(100%,#385380)); /* Chrome,Safari4+ */\n background: -webkit-linear-gradient(top, #3876c2 0%,#385380 100%); /* Chrome10+,Safari5.1+ */\n background: -o-linear-gradient(top, #3876c2 0%,#385380 100%); /* Opera 11.10+ */\n background: -ms-linear-gradient(top, #3876c2 0%,#385380 100%); /* IE10+ */\n background: linear-gradient(to bottom, #3876c2 0%,#385380 100%); /* W3C */\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3876c2', endColorstr='#385380',GradientType=0 ); /* IE6-9 */\n box-shadow: #111927 0px 0px 1px 0px;\n margin-top: -7px;\n}\ninput.vis-configuration.vis-config-range:focus {\n outline: none;\n}\ninput.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track {\n background: #9d9d9d; /* Old browsers */\n background: -moz-linear-gradient(top, #9d9d9d 0%, #c8c8c8 99%); /* FF3.6+ */\n background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#9d9d9d), color-stop(99%,#c8c8c8)); /* Chrome,Safari4+ */\n background: -webkit-linear-gradient(top, #9d9d9d 0%,#c8c8c8 99%); /* Chrome10+,Safari5.1+ */\n background: -o-linear-gradient(top, #9d9d9d 0%,#c8c8c8 99%); /* Opera 11.10+ */\n background: -ms-linear-gradient(top, #9d9d9d 0%,#c8c8c8 99%); /* IE10+ */\n background: linear-gradient(to bottom, #9d9d9d 0%,#c8c8c8 99%); /* W3C */\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9d9d9d', endColorstr='#c8c8c8',GradientType=0 ); /* IE6-9 */\n}\n\ninput.vis-configuration.vis-config-range::-moz-range-track {\n width: 300px;\n height: 10px;\n background: #dedede; /* Old browsers */\n background: -moz-linear-gradient(top, #dedede 0%, #c8c8c8 99%); /* FF3.6+ */\n background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#dedede), color-stop(99%,#c8c8c8)); /* Chrome,Safari4+ */\n background: -webkit-linear-gradient(top, #dedede 0%,#c8c8c8 99%); /* Chrome10+,Safari5.1+ */\n background: -o-linear-gradient(top, #dedede 0%, #c8c8c8 99%); /* Opera 11.10+ */\n background: -ms-linear-gradient(top, #dedede 0%,#c8c8c8 99%); /* IE10+ */\n background: linear-gradient(to bottom, #dedede 0%,#c8c8c8 99%); /* W3C */\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8',GradientType=0 ); /* IE6-9 */\n\n border: 1px solid #999999;\n box-shadow: #aaaaaa 0px 0px 3px 0px;\n border-radius: 3px;\n}\ninput.vis-configuration.vis-config-range::-moz-range-thumb {\n border: none;\n height: 16px;\n width: 16px;\n\n border-radius: 50%;\n background: #385380;\n}\n\n/*hide the outline behind the border*/\ninput.vis-configuration.vis-config-range:-moz-focusring{\n outline: 1px solid white;\n outline-offset: -1px;\n}\n\ninput.vis-configuration.vis-config-range::-ms-track {\n width: 300px;\n height: 5px;\n\n /*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */\n background: transparent;\n\n /*leave room for the larger thumb to overflow with a transparent border */\n border-color: transparent;\n border-width: 6px 0;\n\n /*remove default tick marks*/\n color: transparent;\n}\ninput.vis-configuration.vis-config-range::-ms-fill-lower {\n background: #777;\n border-radius: 10px;\n}\ninput.vis-configuration.vis-config-range::-ms-fill-upper {\n background: #ddd;\n border-radius: 10px;\n}\ninput.vis-configuration.vis-config-range::-ms-thumb {\n border: none;\n height: 16px;\n width: 16px;\n border-radius: 50%;\n background: #385380;\n}\ninput.vis-configuration.vis-config-range:focus::-ms-fill-lower {\n background: #888;\n}\ninput.vis-configuration.vis-config-range:focus::-ms-fill-upper {\n background: #ccc;\n}\n\n.vis-configuration-popup {\n position: absolute;\n background: rgba(57, 76, 89, 0.85);\n border: 2px solid #f2faff;\n line-height:30px;\n height:30px;\n width:150px;\n text-align:center;\n color: #ffffff;\n font-size:14px;\n border-radius:4px;\n -webkit-transition: opacity 0.3s ease-in-out;\n -moz-transition: opacity 0.3s ease-in-out;\n transition: opacity 0.3s ease-in-out;\n}\n.vis-configuration-popup:after, .vis-configuration-popup:before {\n left: 100%;\n top: 50%;\n border: solid transparent;\n content: \" \";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.vis-configuration-popup:after {\n border-color: rgba(136, 183, 213, 0);\n border-left-color: rgba(57, 76, 89, 0.85);\n border-width: 8px;\n margin-top: -8px;\n}\n.vis-configuration-popup:before {\n border-color: rgba(194, 225, 245, 0);\n border-left-color: #f2faff;\n border-width: 12px;\n margin-top: -12px;\n}", "\n.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal {\n position: absolute;\n width: 100%;\n height: 0;\n border-bottom: 1px solid;\n}\n\n.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor {\n border-color: #e5e5e5;\n}\n\n.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major {\n border-color: #bfbfbf;\n}\n\n\n.vis-data-axis .vis-y-axis.vis-major {\n width: 100%;\n position: absolute;\n color: #4d4d4d;\n white-space: nowrap;\n}\n\n.vis-data-axis .vis-y-axis.vis-major.vis-measure {\n padding: 0;\n margin: 0;\n border: 0;\n visibility: hidden;\n width: auto;\n}\n\n\n.vis-data-axis .vis-y-axis.vis-minor {\n position: absolute;\n width: 100%;\n color: #bebebe;\n white-space: nowrap;\n}\n\n.vis-data-axis .vis-y-axis.vis-minor.vis-measure {\n padding: 0;\n margin: 0;\n border: 0;\n visibility: hidden;\n width: auto;\n}\n\n.vis-data-axis .vis-y-axis.vis-title {\n position: absolute;\n color: #4d4d4d;\n white-space: nowrap;\n bottom: 20px;\n text-align: center;\n}\n\n.vis-data-axis .vis-y-axis.vis-title.vis-measure {\n padding: 0;\n margin: 0;\n visibility: hidden;\n width: auto;\n}\n\n.vis-data-axis .vis-y-axis.vis-title.vis-left {\n bottom: 0;\n -webkit-transform-origin: left top;\n -moz-transform-origin: left top;\n -ms-transform-origin: left top;\n -o-transform-origin: left top;\n transform-origin: left bottom;\n -webkit-transform: rotate(-90deg);\n -moz-transform: rotate(-90deg);\n -ms-transform: rotate(-90deg);\n -o-transform: rotate(-90deg);\n transform: rotate(-90deg);\n}\n\n.vis-data-axis .vis-y-axis.vis-title.vis-right {\n bottom: 0;\n -webkit-transform-origin: right bottom;\n -moz-transform-origin: right bottom;\n -ms-transform-origin: right bottom;\n -o-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate(90deg);\n -moz-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n -o-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.vis-legend {\n background-color: rgba(247, 252, 255, 0.65);\n padding: 5px;\n border: 1px solid #b3b3b3;\n box-shadow: 2px 2px 10px rgba(154, 154, 154, 0.55);\n}\n\n.vis-legend-text {\n /*font-size: 10px;*/\n white-space: nowrap;\n display: inline-block\n}"], - "mappings": "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", - "names": [] -} diff --git a/js/dist/extension/tab.html b/js/dist/extension/tab.html index b5b49caf..a3c841b2 100644 --- a/js/dist/extension/tab.html +++ b/js/dist/extension/tab.html @@ -4,7 +4,7 @@ - LunaBrain + justshare diff --git a/js/dist/extension/tab.js b/js/dist/extension/tab.js index 3191dffd..8bc1148e 100644 --- a/js/dist/extension/tab.js +++ b/js/dist/extension/tab.js @@ -1246,7 +1246,7 @@ input.vis-configuration.vis-config-range:focus::-ms-fill-upper { display: inline-block }`;vn(Lde);function Fde(e,t){var n=typeof Ri<"u"&&Hr(e)||e["@@iterator"];if(!n){if(de(e)||(n=Bde(e))||t&&e&&typeof e.length=="number"){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(c){throw c},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,l;return{s:function(){n=n.call(e)},n:function(){var c=n.next();return o=c.done,c},e:function(c){s=!0,l=c},f:function(){try{!o&&n.return!=null&&n.return()}finally{if(s)throw l}}}}function Bde(e,t){var n;if(e){if(typeof e=="string")return AR(e,t);var r=Zt(n=Object.prototype.toString.call(e)).call(n,8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return ka(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return AR(e,t)}}function AR(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!ie||ie.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(ie(Boolean,[],function(){})),!0}catch{return!1}}var LR=function(e){mn(n,e);var t=Jde(n);function n(r,a,o,s){var l;_e(this,n),l=t.call(this),l.id=oo(),l.body=r,l.defaultOptions={orientation:"left",showMinorLabels:!0,showMajorLabels:!0,showWeekScale:!1,icons:!1,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:"40px",visible:!0,alignZeros:!0,left:{range:{min:void 0,max:void 0},format:function(f){return"".concat(op(f.toPrecision(3)))},title:{text:void 0,style:void 0}},right:{range:{min:void 0,max:void 0},format:function(f){return"".concat(op(f.toPrecision(3)))},title:{text:void 0,style:void 0}}},l.linegraphOptions=s,l.linegraphSVG=o,l.props={},l.DOMelements={lines:{},labels:{},title:{}},l.dom={},l.scale=void 0,l.range={start:0,end:0},l.options=O.extend({},l.defaultOptions),l.conversionFactor=1,l.setOptions(a),l.width=Number("".concat(l.options.width).replace("px","")),l.minWidth=l.width,l.height=l.linegraphSVG.getBoundingClientRect().height,l.hidden=!1,l.stepPixels=25,l.zeroCrossing=-1,l.amountOfSteps=-1,l.lineOffset=0,l.master=!0,l.masterAxis=null,l.svgElements={},l.iconsRemoved=!1,l.groups={},l.amountOfGroups=0,l._create(),l.scale==null&&l._redrawLabels(),l.framework={svg:l.svg,svgElements:l.svgElements,options:l.options,groups:l.groups};var u=Je(l);return l.body.emitter.on("verticalDrag",function(){u.dom.lineContainer.style.top="".concat(u.body.domProps.scrollTop,"px")}),l}return Te(n,[{key:"addGroup",value:function(a,o){this.groups.hasOwnProperty(a)||(this.groups[a]=o),this.amountOfGroups+=1}},{key:"updateGroup",value:function(a,o){this.groups.hasOwnProperty(a)||(this.amountOfGroups+=1),this.groups[a]=o}},{key:"removeGroup",value:function(a){this.groups.hasOwnProperty(a)&&(delete this.groups[a],this.amountOfGroups-=1)}},{key:"setOptions",value:function(a){if(a){var o=!1;this.options.orientation!=a.orientation&&a.orientation!==void 0&&(o=!0);var s=["orientation","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","width","visible","left","right","alignZeros"];O.selectiveDeepExtend(s,this.options,a),this.minWidth=Number("".concat(this.options.width).replace("px","")),o===!0&&this.dom.frame&&(this.hide(),this.show())}}},{key:"_create",value:function(){this.dom.frame=document.createElement("div"),this.dom.frame.style.width=this.options.width,this.dom.frame.style.height=this.height,this.dom.lineContainer=document.createElement("div"),this.dom.lineContainer.style.width="100%",this.dom.lineContainer.style.height=this.height,this.dom.lineContainer.style.position="relative",this.dom.lineContainer.style.visibility="visible",this.dom.lineContainer.style.display="block",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.height="100%",this.svg.style.width="100%",this.svg.style.display="block",this.dom.frame.appendChild(this.svg)}},{key:"_redrawGroupIcons",value:function(){ha(this.svgElements);var a,o=this.options.iconWidth,s=15,l=4,u=l+.5*s;this.options.orientation==="left"?a=l:a=this.width-o-l;var c=Tt(this.groups);bt(c).call(c,function(v,y){return v=0&&a._redrawLabel(y-2,v.val,s,"vis-y-axis vis-major",a.props.majorCharHeight),a.master===!0&&(_?a._redrawLine(y,s,"vis-grid vis-horizontal vis-major",a.options.majorLinesOffset,a.props.majorLineWidth):a._redrawLine(y,s,"vis-grid vis-horizontal vis-minor",a.options.minorLinesOffset,a.props.minorLineWidth))});var p=0;this.options[s].title!==void 0&&this.options[s].title.text!==void 0&&(p=this.props.titleCharHeight);var m=this.options.icons===!0?Math.max(this.options.iconWidth,p)+this.options.labelOffsetX+15:p+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-m&&this.options.visible===!0?(this.width=this.maxLabelSize+m,this.options.width="".concat(this.width,"px"),or(this.DOMelements.lines),or(this.DOMelements.labels),this.redraw(),o=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+m),this.options.width="".concat(this.width,"px"),or(this.DOMelements.lines),or(this.DOMelements.labels),this.redraw(),o=!0):(or(this.DOMelements.lines),or(this.DOMelements.labels),o=!1),o}},{key:"convertValue",value:function(a){return this.scale.convertValue(a)}},{key:"screenToValue",value:function(a){return this.scale.screenToValue(a)}},{key:"_redrawLabel",value:function(a,o,s,l,u){var c=o0("div",this.DOMelements.labels,this.dom.frame);c.className=l,c.innerHTML=O.xss(o),s==="left"?(c.style.left="-".concat(this.options.labelOffsetX,"px"),c.style.textAlign="right"):(c.style.right="-".concat(this.options.labelOffsetX,"px"),c.style.textAlign="left"),c.style.top="".concat(a-.5*u+this.options.labelOffsetY,"px"),o+="";var f=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize"u"?{}:t,{style:t.style||e.options.drawPoints.style,styles:t.styles||e.options.drawPoints.styles,size:t.size||e.options.drawPoints.size,className:t.className||e.className}}function jde(e,t){var n=void 0;return e.options&&e.options.drawPoints&&e.options.drawPoints.onRender&&typeof e.options.drawPoints.onRender=="function"&&(n=e.options.drawPoints.onRender),t.group.options&&t.group.options.drawPoints&&t.group.options.drawPoints.onRender&&typeof t.group.options.drawPoints.onRender=="function"&&(n=t.group.options.drawPoints.onRender),n}function fn(e,t){}fn.drawIcon=function(e,t,n,r,a,o){var s=a*.5,l=Ir("rect",o.svgElements,o.svg);l.setAttributeNS(null,"x",t),l.setAttributeNS(null,"y",n-s),l.setAttributeNS(null,"width",r),l.setAttributeNS(null,"height",2*s),l.setAttributeNS(null,"class","vis-outline");var u=Math.round(.3*r),c=e.options.barChart.width,f=c/u,p=Math.round(.4*a),m=Math.round(.75*a),v=Math.round((r-2*u)/3);if(rx(t+.5*u+v,n+s-p-1,u,p,e.className+" vis-bar",o.svgElements,o.svg,e.style),rx(t+1.5*u+v+2,n+s-m-1,u,m,e.className+" vis-bar",o.svgElements,o.svg,e.style),e.options.drawPoints.enabled==!0){var y={style:e.options.drawPoints.style,styles:e.options.drawPoints.styles,size:e.options.drawPoints.size/f,className:e.className};As(t+.5*u+v,n+s-p-1,y,o.svgElements,o.svg),As(t+1.5*u+v+2,n+s-m-1,y,o.svgElements,o.svg)}};fn.draw=function(e,t,n){var r=[],a={},o,s,l,u,c,f,p=0;for(c=0;c0&&(n=Math.min(n,Math.abs(t[r-1].screen_x-t[r].screen_x))),n===0&&(e[t[r].screen_x]===void 0&&(e[t[r].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),e[t[r].screen_x].amount+=1)};fn._getSafeDrawData=function(e,t,n){var r,a;return e0?(r=e0){bt(e).call(e,function(s,l){return s.screen_x===l.screen_x?s.groupIdt[o].screen_y?t[o].screen_y:r,a=ae[s].accumulatedNegative?e[s].accumulatedNegative:r,r=r>e[s].accumulatedPositive?e[s].accumulatedPositive:r,a=a0){var n=[];return t.options.interpolation.enabled==!0?n=jt._catmullRom(e,t):n=jt._linear(e),n}};jt.drawIcon=function(e,t,n,r,a,o){var s=a*.5,l,u,c=Ir("rect",o.svgElements,o.svg);if(c.setAttributeNS(null,"x",t),c.setAttributeNS(null,"y",n-s),c.setAttributeNS(null,"width",r),c.setAttributeNS(null,"height",2*s),c.setAttributeNS(null,"class","vis-outline"),l=Ir("path",o.svgElements,o.svg),l.setAttributeNS(null,"class",e.className),e.style!==void 0&&l.setAttributeNS(null,"style",e.style),l.setAttributeNS(null,"d","M"+t+","+n+" L"+(t+r)+","+n),e.options.shaded.enabled==!0&&(u=Ir("path",o.svgElements,o.svg),e.options.shaded.orientation=="top"?u.setAttributeNS(null,"d","M"+t+", "+(n-s)+"L"+t+","+n+" L"+(t+r)+","+n+" L"+(t+r)+","+(n-s)):u.setAttributeNS(null,"d","M"+t+","+n+" L"+t+","+(n+s)+" L"+(t+r)+","+(n+s)+"L"+(t+r)+","+n),u.setAttributeNS(null,"class",e.className+" vis-icon-fill"),e.options.shaded.style!==void 0&&e.options.shaded.style!==""&&u.setAttributeNS(null,"style",e.options.shaded.style)),e.options.drawPoints.enabled==!0){var f={style:e.options.drawPoints.style,styles:e.options.drawPoints.styles,size:e.options.drawPoints.size,className:e.className};As(t+.5*r,n,f,o.svgElements,o.svg)}};jt.drawShading=function(e,t,n,r){if(t.options.shaded.enabled==!0){var a=Number(r.svg.style.height.replace("px","")),o=Ir("path",r.svgElements,r.svg),s="L";t.options.interpolation.enabled==!0&&(s="C");var l,u=0;t.options.shaded.orientation=="top"?u=0:t.options.shaded.orientation=="bottom"?u=a:u=Math.min(Math.max(0,t.zeroPosition),a),t.options.shaded.orientation=="group"&&n!=null&&n!=null?l="M"+e[0][0]+","+e[0][1]+" "+this.serializePath(e,s,!1)+" L"+n[n.length-1][0]+","+n[n.length-1][1]+" "+this.serializePath(n,s,!0)+n[0][0]+","+n[0][1]+" Z":l="M"+e[0][0]+","+e[0][1]+" "+this.serializePath(e,s,!1)+" V"+u+" H"+e[0][0]+" Z",o.setAttributeNS(null,"class",t.className+" vis-fill"),t.options.shaded.style!==void 0&&o.setAttributeNS(null,"style",t.options.shaded.style),o.setAttributeNS(null,"d",l)}};jt.draw=function(e,t,n){if(e!=null&&e!=null){var r=Ir("path",n.svgElements,n.svg);r.setAttributeNS(null,"class",t.className),t.style!==void 0&&r.setAttributeNS(null,"style",t.style);var a="L";t.options.interpolation.enabled==!0&&(a="C"),r.setAttributeNS(null,"d","M"+e[0][0]+","+e[0][1]+" "+this.serializePath(e,a,!1))}};jt.serializePath=function(e,t,n){if(e.length<2)return"";var r=t,a;if(n)for(a=e.length-2;a>0;a--)r+=e[a][0]+","+e[a][1]+" ";else for(a=1;a0&&(y=1/y),_=3*x*(x+S),_>0&&(_=1/_),l={screen_x:(-P*r.screen_x+m*a.screen_x+C*o.screen_x)*y,screen_y:(-P*r.screen_y+m*a.screen_y+C*o.screen_y)*y},u={screen_x:(k*a.screen_x+v*o.screen_x-P*s.screen_x)*_,screen_y:(k*a.screen_y+v*o.screen_y-P*s.screen_y)*_},l.screen_x==0&&l.screen_y==0&&(l=a),u.screen_x==0&&u.screen_y==0&&(u=o),L.push([l.screen_x,l.screen_y]),L.push([u.screen_x,u.screen_y]),L.push([o.screen_x,o.screen_y]);return L};jt._linear=function(e){for(var t=[],n=0;nn.x?1:-1})):this.itemsData=[]};Pa.prototype.getItems=function(){return this.itemsData};Pa.prototype.setZeroPosition=function(e){this.zeroPosition=e};Pa.prototype.setOptions=function(e){if(e!==void 0){var t=["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"];O.selectiveDeepExtend(t,this.options,e),typeof e.drawPoints=="function"&&(e.drawPoints={onRender:e.drawPoints}),O.mergeOptions(this.options,e,"interpolation"),O.mergeOptions(this.options,e,"drawPoints"),O.mergeOptions(this.options,e,"shaded"),e.interpolation&&le(e.interpolation)=="object"&&e.interpolation.parametrization&&(e.interpolation.parametrization=="uniform"?this.options.interpolation.alpha=0:e.interpolation.parametrization=="chordal"?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}};Pa.prototype.update=function(e){this.group=e,this.content=e.content||"graph",this.className=e.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=e.visible===void 0?!0:e.visible,this.style=e.style,this.setOptions(e.options)};Pa.prototype.getLegend=function(e,t,n,r,a){if(n==null||n==null){var o=document.createElementNS("http://www.w3.org/2000/svg","svg");n={svg:o,svgElements:{},options:this.options,groups:[this]}}switch((r==null||r==null)&&(r=0),(a==null||a==null)&&(a=.5*t),this.options.style){case"line":jt.drawIcon(this,r,a,e,t,n);break;case"points":case"point":Uc.drawIcon(this,r,a,e,t,n);break;case"bar":fn.drawIcon(this,r,a,e,t,n);break}return{icon:n.svg,label:this.content,orientation:this.options.yAxisOrientation}};Pa.prototype.getYRange=function(e){for(var t=e[0].y,n=e[0].y,r=0;re[r].y?e[r].y:t,n=n");this.dom.textArea.innerHTML=O.xss(o),this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}};Vn.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var e=Tt(this.groups);bt(e).call(e,function(c,f){return c0){var l={};for(this._getRelevantData(s,l,a,o),this._applySampling(s,l),t=0;t0)switch(e.options.style){case"line":c.hasOwnProperty(s[t])||(c[s[t]]=jt.calcPath(l[s[t]],e)),jt.draw(c[s[t]],e,this.framework);case"point":case"points":(e.options.style=="point"||e.options.style=="points"||e.options.drawPoints.enabled==!0)&&Uc.draw(l[s[t]],e,this.framework);break}}}return or(this.svgElements),!1};ze.prototype._stack=function(e,t){var n,r,a,o,s;n=0;for(var l=0;le[l].x){s=t[u],u==0?o=s:o=t[u-1],n=u;break}s===void 0&&(o=t[t.length-1],s=t[t.length-1]),r=s.x-o.x,a=s.y-o.y,r==0?e[l].y=e[l].orginalY+s.y:e[l].y=e[l].orginalY+a/r*(e[l].x-o.x)+o.y}};ze.prototype._getRelevantData=function(e,t,n,r){var a,o,s,l;if(e.length>0)for(o=0;o0){for(var r=0;r0){var o=1,s=a.length,l=this.body.util.toGlobalScreen(a[a.length-1].x)-this.body.util.toGlobalScreen(a[0].x),u=s/l;o=Math.min(Math.ceil(.2*s),Math.max(1,Math.round(u)));for(var c=new Array(s),f=0;f0){for(o=0;o0&&(a=this.groups[e[o]],u.stack===!0&&u.style==="bar"?u.yAxisOrientation==="left"?s=qe(s).call(s,r):l=qe(l).call(l,r):n[e[o]]=a.getYRange(r,e[o]));fn.getStackedYRange(s,n,e,"__barStackLeft","left"),fn.getStackedYRange(l,n,e,"__barStackRight","right")}};ze.prototype._updateYAxis=function(e,t){var n=!1,r=!1,a=!1,o=1e9,s=1e9,l=-1e9,u=-1e9,c,f;if(e.length>0){for(var p=0;pc?c:o,l=lc?c:s,u=uo?o:e,t=t==null||t0&&c.push(f.screenToValue(a)),!p.hidden&&this.itemsData.length>0&&c.push(p.screenToValue(a)),{event:e,customTime:s?s.options.id:null,what:u,pageX:e.srcEvent?e.srcEvent.pageX:e.pageX,pageY:e.srcEvent?e.srcEvent.pageY:e.pageY,x:r,y:a,time:o,value:c}};Di.prototype._createConfigurator=function(){return new B$(this,this.dom.container,Vde)};var Hde=SZ();dn.locale(Hde);var rl=nn(li(),1);function qde({title:e,titleId:t,...n},r){return rl.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?rl.createElement("title",{id:t},e):null,rl.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}var Wde=rl.forwardRef(qde),lk=Wde;var ye={},Xde=0;function Y$(e,t){let n=`atom${++Xde}`,r={toString:()=>n};return typeof e=="function"?r.read=e:(r.init=e,r.read=function(a){return a(this)},r.write=function(a,o,s){return o(this,typeof s=="function"?s(a(this)):s)}),t&&(r.write=t),r}var uk=e=>"init"in e,ck=e=>!!e.write,Up=new WeakMap,Kde=(e,t)=>{Up.set(e,t),e.catch(()=>{}).finally(()=>Up.delete(e))},U$=(e,t)=>{let n=Up.get(e);n&&(Up.delete(e),n(t))},j$=(e,t)=>{e.status="fulfilled",e.value=t},z$=(e,t)=>{e.status="rejected",e.reason=t},Qde=e=>typeof e?.then=="function",jc=(e,t)=>!!e&&"v"in e&&"v"in t&&Object.is(e.v,t.v),G$=(e,t)=>!!e&&"e"in e&&"e"in t&&Object.is(e.e,t.e),il=e=>!!e&&"v"in e&&e.v instanceof Promise,Zde=(e,t)=>"v"in e&&"v"in t&&e.v.orig&&e.v.orig===t.v.orig,Jp=e=>{if("e"in e)throw e.e;return e.v},V$=()=>{let e=new WeakMap,t=new WeakMap,n=new Map,r,a;(ye.env?ye.env.MODE:void 0)!=="production"&&(r=new Set,a=new Set);let o=E=>e.get(E),s=(E,R)=>{(ye.env?ye.env.MODE:void 0)!=="production"&&Object.freeze(R);let D=e.get(E);if(e.set(E,R),n.has(E)||n.set(E,D),il(D)){let F="v"in R?R.v instanceof Promise?R.v:Promise.resolve(R.v):Promise.reject(R.e);D.v!==F&&U$(D.v,F)}},l=(E,R,D)=>{let F=new Map,j=!1;D.forEach((G,Y)=>{!G&&Y===E&&(G=R),G?(F.set(Y,G),R.d.get(Y)!==G&&(j=!0)):(ye.env?ye.env.MODE:void 0)!=="production"&&console.warn("[Bug] atom state not found")}),(j||R.d.size!==F.size)&&(R.d=F)},u=(E,R,D)=>{let F=o(E),j={d:F?.d||new Map,v:R};if(D&&l(E,j,D),jc(F,j)&&F.d===j.d)return F;if(il(F)&&il(j)&&Zde(F,j)){if(F.d===j.d)return F;j.v=F.v}return s(E,j),j},c=(E,R,D,F)=>{if(Qde(R)){let j,G=()=>{let Q=o(E);if(!il(Q)||Q.v!==Y)return;let xe=u(E,Y,D);t.has(E)&&Q.d!==xe.d&&A(E,xe,Q.d)},Y=new Promise((Q,xe)=>{let ae=!1;R.then(ve=>{ae||(ae=!0,j$(Y,ve),Q(ve),G())},ve=>{ae||(ae=!0,z$(Y,ve),xe(ve),G())}),j=ve=>{ae||(ae=!0,ve.then(tt=>j$(Y,tt),tt=>z$(Y,tt)),Q(ve))}});return Y.orig=R,Y.status="pending",Kde(Y,Q=>{Q&&j(Q),F?.()}),u(E,Y,D)}return u(E,R,D)},f=(E,R,D)=>{let F=o(E),j={d:F?.d||new Map,e:R};return D&&l(E,j,D),G$(F,j)&&F.d===j.d?F:(s(E,j),j)},p=(E,R)=>{let D=o(E);if(!R&&D&&(t.has(E)||Array.from(D.d).every(([ae,ve])=>{if(ae===E)return!0;let tt=p(ae);return tt===ve||jc(tt,ve)})))return D;let F=new Map,j=!0,G=ae=>{if(ae===E){let tt=o(ae);if(tt)return F.set(ae,tt),Jp(tt);if(uk(ae))return F.set(ae,void 0),ae.init;throw new Error("no atom init")}let ve=p(ae);return F.set(ae,ve),Jp(ve)},Y,Q,xe={get signal(){return Y||(Y=new AbortController),Y.signal},get setSelf(){return(ye.env?ye.env.MODE:void 0)!=="production"&&!ck(E)&&console.warn("setSelf function cannot be used with read-only atom"),!Q&&ck(E)&&(Q=(...ae)=>{if((ye.env?ye.env.MODE:void 0)!=="production"&&j&&console.warn("setSelf function cannot be called in sync"),!j)return k(E,...ae)}),Q}};try{let ae=E.read(G,xe);return c(E,ae,F,()=>Y?.abort())}catch(ae){return f(E,ae,F)}finally{j=!1}},m=E=>Jp(p(E)),v=E=>{let R=t.get(E);return R||(R=P(E)),R},y=(E,R)=>!R.l.size&&(!R.t.size||R.t.size===1&&R.t.has(E)),_=E=>{let R=t.get(E);R&&y(E,R)&&C(E)},x=E=>{let R=new Map,D=new WeakMap,F=Y=>{var Q;let xe=new Set((Q=t.get(Y))==null?void 0:Q.t);return n.forEach((ae,ve)=>{var tt;(tt=o(ve))!=null&&tt.d.has(Y)&&xe.add(ve)}),xe},j=Y=>{F(Y).forEach(Q=>{Q!==Y&&(R.set(Q,(R.get(Q)||new Set).add(Y)),D.set(Q,(D.get(Q)||0)+1),j(Q))})};j(E);let G=Y=>{F(Y).forEach(Q=>{var xe;if(Q!==Y){let ae=D.get(Q);if(ae&&D.set(Q,--ae),!ae){let ve=!!((xe=R.get(Q))!=null&&xe.size);if(ve){let tt=o(Q),St=p(Q,!0);ve=!jc(tt,St)}ve||R.forEach(tt=>tt.delete(Q))}G(Q)}})};G(E)},S=(E,...R)=>{let D=!0,F=Y=>Jp(p(Y)),j=(Y,...Q)=>{let xe;if(Y===E){if(!uk(Y))throw new Error("atom not writable");let ae=o(Y),ve=c(Y,Q[0]);jc(ae,ve)||x(Y)}else xe=S(Y,...Q);if(!D){let ae=L();(ye.env?ye.env.MODE:void 0)!=="production"&&r.forEach(ve=>ve({type:"async-write",flushed:ae}))}return xe},G=E.write(F,j,...R);return D=!1,G},k=(E,...R)=>{let D=S(E,...R),F=L();return(ye.env?ye.env.MODE:void 0)!=="production"&&r.forEach(j=>j({type:"write",flushed:F})),D},P=(E,R,D)=>{var F;let j=D||[];(F=o(E))==null||F.d.forEach((Y,Q)=>{let xe=t.get(Q);xe?xe.t.add(E):Q!==E&&P(Q,E,j)}),p(E);let G={t:new Set(R&&[R]),l:new Set};if(t.set(E,G),(ye.env?ye.env.MODE:void 0)!=="production"&&a.add(E),ck(E)&&E.onMount){let{onMount:Y}=E;j.push(()=>{let Q=Y((...xe)=>k(E,...xe));Q&&(G.u=Q)})}return D||j.forEach(Y=>Y()),G},C=E=>{var R;let D=(R=t.get(E))==null?void 0:R.u;D&&D(),t.delete(E),(ye.env?ye.env.MODE:void 0)!=="production"&&a.delete(E);let F=o(E);F?(il(F)&&U$(F.v),F.d.forEach((j,G)=>{if(G!==E){let Y=t.get(G);Y&&(Y.t.delete(E),y(G,Y)&&C(G))}})):(ye.env?ye.env.MODE:void 0)!=="production"&&console.warn("[Bug] could not find atom state to unmount",E)},A=(E,R,D)=>{let F=new Set(R.d.keys());D?.forEach((j,G)=>{if(F.has(G)){F.delete(G);return}let Y=t.get(G);Y&&(Y.t.delete(E),y(G,Y)&&C(G))}),F.forEach(j=>{let G=t.get(j);G?G.t.add(E):t.has(E)&&P(j,E)})},L=()=>{let E;for((ye.env?ye.env.MODE:void 0)!=="production"&&(E=new Set);n.size;){let R=Array.from(n);n.clear(),R.forEach(([D,F])=>{let j=o(D);if(j){let G=t.get(D);G&&j.d!==F?.d&&A(D,j,F?.d),G&&!(!il(F)&&(jc(F,j)||G$(F,j)))&&(G.l.forEach(Y=>Y()),(ye.env?ye.env.MODE:void 0)!=="production"&&E.add(D))}else(ye.env?ye.env.MODE:void 0)!=="production"&&console.warn("[Bug] no atom state to flush")})}if((ye.env?ye.env.MODE:void 0)!=="production")return E},$=(E,R)=>{let D=v(E),F=L(),j=D.l;return j.add(R),(ye.env?ye.env.MODE:void 0)!=="production"&&r.forEach(G=>G({type:"sub",flushed:F})),()=>{j.delete(R),_(E),(ye.env?ye.env.MODE:void 0)!=="production"&&r.forEach(G=>G({type:"unsub"}))}};return(ye.env?ye.env.MODE:void 0)!=="production"?{get:m,set:k,sub:$,dev_subscribe_store:(E,R)=>{if(R!==2)throw new Error("The current StoreListener revision is 2.");return r.add(E),()=>{r.delete(E)}},dev_get_mounted_atoms:()=>a.values(),dev_get_atom_state:E=>e.get(E),dev_get_mounted:E=>t.get(E),dev_restore_atoms:E=>{for(let[D,F]of E)uk(D)&&(c(D,F),x(D));let R=L();r.forEach(D=>D({type:"restore",flushed:R}))}}:{get:m,set:k,sub:$}},dk;(ye.env?ye.env.MODE:void 0)!=="production"&&(typeof globalThis.__NUMBER_OF_JOTAI_INSTANCES__=="number"?++globalThis.__NUMBER_OF_JOTAI_INSTANCES__:globalThis.__NUMBER_OF_JOTAI_INSTANCES__=1);var H$=()=>(dk||((ye.env?ye.env.MODE:void 0)!=="production"&&globalThis.__NUMBER_OF_JOTAI_INSTANCES__!==1&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"),dk=V$()),dk);var en=nn(li(),1);var q$={},efe=(0,en.createContext)(void 0),W$=e=>{let t=(0,en.useContext)(efe);return e?.store||t||H$()};var tfe=e=>typeof e?.then=="function",nfe=en.default.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e)});function rfe(e,t){let n=W$(t),[[r,a,o],s]=(0,en.useReducer)(c=>{let f=n.get(e);return Object.is(c[0],f)&&c[1]===n&&c[2]===e?c:[f,n,e]},void 0,()=>[n.get(e),n,e]),l=r;(a!==n||o!==e)&&(s(),l=n.get(e));let u=t?.delay;return(0,en.useEffect)(()=>{let c=n.sub(e,()=>{if(typeof u=="number"){setTimeout(s,u);return}s()});return s(),c},[n,e,u]),(0,en.useDebugValue)(l),tfe(l)?nfe(l):l}function ife(e,t){let n=W$(t);return(0,en.useCallback)((...a)=>{if((q$.env?q$.env.MODE:void 0)!=="production"&&!("write"in e))throw new Error("not writable atom");return n.set(e,...a)},[n,e])}function jp(e,t){return[rfe(e,t),ife(e,t)]}var Fl=nn(li(),1);var X$="content/get",zp="content/save",K$="history/get",Q$="history/delete";var hr=nn(li(),1);function st(e,t){if(!e)throw new Error(t)}var afe=34028234663852886e22,ofe=-34028234663852886e22,sfe=4294967295,lfe=2147483647,ufe=-2147483648;function al(e){if(typeof e!="number")throw new Error("invalid int 32: "+typeof e);if(!Number.isInteger(e)||e>lfe||esfe||e<0)throw new Error("invalid uint 32: "+e)}function Gp(e){if(typeof e!="number")throw new Error("invalid float 32: "+typeof e);if(Number.isFinite(e)&&(e>afe||e({no:a.no,name:a.name,localName:e[a.no]})),r)}function hk(e,t,n){let r=Object.create(null),a=Object.create(null),o=[];for(let s of t){let l=nA(s);o.push(l),r[s.name]=l,a[s.no]=l}return{typeName:e,values:o,findName(s){return r[s]},findNumber(s){return a[s]}}}function tA(e,t,n){let r={};for(let a of t){let o=nA(a);r[o.localName]=o.no,r[o.no]=o.localName}return fk(r,e,t,n),r}function nA(e){return"localName"in e?e:Object.assign(Object.assign({},e),{localName:e.name})}var M=class{equals(t){return this.getType().runtime.util.equals(this.getType(),this,t)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(t,n){let r=this.getType(),a=r.runtime.bin,o=a.makeReadOptions(n);return a.readMessage(this,o.readerFactory(t),t.byteLength,o),this}fromJson(t,n){let r=this.getType(),a=r.runtime.json,o=a.makeReadOptions(n);return a.readMessage(r,t,o,this),this}fromJsonString(t,n){let r;try{r=JSON.parse(t)}catch(a){throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${a instanceof Error?a.message:String(a)}`)}return this.fromJson(r,n)}toBinary(t){let n=this.getType(),r=n.runtime.bin,a=r.makeWriteOptions(t),o=a.writerFactory();return r.writeMessage(this,o,a),o.finish()}toJson(t){let n=this.getType(),r=n.runtime.json,a=r.makeWriteOptions(t);return r.writeMessage(this,a)}toJsonString(t){var n;let r=this.toJson(t);return JSON.stringify(r,null,(n=t?.prettySpaces)!==null&&n!==void 0?n:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}};function rA(e,t,n,r){var a;let o=(a=r?.localName)!==null&&a!==void 0?a:t.substring(t.lastIndexOf(".")+1),s={[o]:function(l){e.util.initFields(this),e.util.initPartial(l,this)}}[o];return Object.setPrototypeOf(s.prototype,new M),Object.assign(s,{runtime:e,typeName:t,fields:e.util.newFieldList(n),fromBinary(l,u){return new s().fromBinary(l,u)},fromJson(l,u){return new s().fromJson(l,u)},fromJsonString(l,u){return new s().fromJsonString(l,u)},equals(l,u){return e.util.equals(s,l,u)}}),s}function Yp(e,t,n,r){return{syntax:e,json:t,bin:n,util:r,makeMessageType(a,o,s){return rA(this,a,o,s)},makeEnum:tA,makeEnumType:hk,getEnumType:eA}}var z;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(z||(z={}));var fr;(function(e){e[e.BIGINT=0]="BIGINT",e[e.STRING=1]="STRING"})(fr||(fr={}));function aA(){let e=0,t=0;for(let r=0;r<28;r+=7){let a=this.buf[this.pos++];if(e|=(a&127)<>4,!(n&128))return this.assertBounds(),[e,t];for(let r=3;r<=31;r+=7){let a=this.buf[this.pos++];if(t|=(a&127)<>>o,l=!(!(s>>>7)&&t==0),u=(l?s|128:s)&255;if(n.push(u),!l)return}let r=e>>>28&15|(t&7)<<4,a=!!(t>>3);if(n.push((a?r|128:r)&255),!!a){for(let o=3;o<31;o=o+7){let s=t>>>o,l=!!(s>>>7),u=(l?s|128:s)&255;if(n.push(u),!l)return}n.push(t>>>31&1)}}var Vp=4294967296;function pk(e){let t=e[0]==="-";t&&(e=e.slice(1));let n=1e6,r=0,a=0;function o(s,l){let u=Number(e.slice(s,l));a*=n,r=r*n+u,r>=Vp&&(a=a+(r/Vp|0),r=r%Vp)}return o(-24,-18),o(-18,-12),o(-12,-6),o(-6),t?sA(r,a):vk(r,a)}function oA(e,t){let n=vk(e,t),r=n.hi&2147483648;r&&(n=sA(n.lo,n.hi));let a=mk(n.lo,n.hi);return r?"-"+a:a}function mk(e,t){if({lo:e,hi:t}=cfe(e,t),t<=2097151)return String(Vp*t+e);let n=e&16777215,r=(e>>>24|t<<8)&16777215,a=t>>16&65535,o=n+r*6777216+a*6710656,s=r+a*8147497,l=a*2,u=1e7;return o>=u&&(s+=Math.floor(o/u),o%=u),s>=u&&(l+=Math.floor(s/u),s%=u),l.toString()+iA(s)+iA(o)}function cfe(e,t){return{lo:e>>>0,hi:t>>>0}}function vk(e,t){return{lo:e|0,hi:t|0}}function sA(e,t){return t=~t,e?e=~e+1:t+=1,vk(e,t)}var iA=e=>{let t=String(e);return"0000000".slice(t.length)+t};function gk(e,t){if(e>=0){for(;e>127;)t.push(e&127|128),e=e>>>7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e=e>>7;t.push(1)}}function lA(){let e=this.buf[this.pos++],t=e&127;if(!(e&128))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<7,!(e&128))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<14,!(e&128))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<21,!(e&128))return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let n=5;e&128&&n<10;n++)e=this.buf[this.pos++];if(e&128)throw new Error("invalid varint");return this.assertBounds(),t>>>0}function dfe(){let e=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof e.getBigInt64=="function"&&typeof e.getBigUint64=="function"&&typeof e.setBigInt64=="function"&&typeof e.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){let a=BigInt("-9223372036854775808"),o=BigInt("9223372036854775807"),s=BigInt("0"),l=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(u){let c=typeof u=="bigint"?u:BigInt(u);if(c>o||cl||cst(/^-?[0-9]+$/.test(a),`int64 invalid: ${a}`),r=a=>st(/^[0-9]+$/.test(a),`uint64 invalid: ${a}`);return{zero:"0",supported:!1,parse(a){return typeof a!="string"&&(a=a.toString()),n(a),a},uParse(a){return typeof a!="string"&&(a=a.toString()),r(a),a},enc(a){return typeof a!="string"&&(a=a.toString()),n(a),pk(a)},uEnc(a){return typeof a!="string"&&(a=a.toString()),r(a),pk(a)},dec(a,o){return oA(a,o)},uDec(a,o){return mk(a,o)}}}var be=dfe();var Ge;(function(e){e[e.Varint=0]="Varint",e[e.Bit64=1]="Bit64",e[e.LengthDelimited=2]="LengthDelimited",e[e.StartGroup=3]="StartGroup",e[e.EndGroup=4]="EndGroup",e[e.Bit32=5]="Bit32"})(Ge||(Ge={}));var qp=class{constructor(t){this.stack=[],this.textEncoder=t??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let t=0;for(let a=0;a>>0)}raw(t){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(t),this}uint32(t){for(zc(t);t>127;)this.buf.push(t&127|128),t=t>>>7;return this.buf.push(t),this}int32(t){return al(t),gk(t,this.buf),this}bool(t){return this.buf.push(t?1:0),this}bytes(t){return this.uint32(t.byteLength),this.raw(t)}string(t){let n=this.textEncoder.encode(t);return this.uint32(n.byteLength),this.raw(n)}float(t){Gp(t);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,t,!0),this.raw(n)}double(t){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,t,!0),this.raw(n)}fixed32(t){zc(t);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,t,!0),this.raw(n)}sfixed32(t){al(t);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,t,!0),this.raw(n)}sint32(t){return al(t),t=(t<<1^t>>31)>>>0,gk(t,this.buf),this}sfixed64(t){let n=new Uint8Array(8),r=new DataView(n.buffer),a=be.enc(t);return r.setInt32(0,a.lo,!0),r.setInt32(4,a.hi,!0),this.raw(n)}fixed64(t){let n=new Uint8Array(8),r=new DataView(n.buffer),a=be.uEnc(t);return r.setInt32(0,a.lo,!0),r.setInt32(4,a.hi,!0),this.raw(n)}int64(t){let n=be.enc(t);return Hp(n.lo,n.hi,this.buf),this}sint64(t){let n=be.enc(t),r=n.hi>>31,a=n.lo<<1^r,o=(n.hi<<1|n.lo>>>31)^r;return Hp(a,o,this.buf),this}uint64(t){let n=be.uEnc(t);return Hp(n.lo,n.hi,this.buf),this}},Wp=class{constructor(t,n){this.varint64=aA,this.uint32=lA,this.buf=t,this.len=t.length,this.pos=0,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength),this.textDecoder=n??new TextDecoder}tag(){let t=this.uint32(),n=t>>>3,r=t&7;if(n<=0||r<0||r>5)throw new Error("illegal tag: field no "+n+" wire type "+r);return[n,r]}skip(t){let n=this.pos;switch(t){case Ge.Varint:for(;this.buf[this.pos++]&128;);break;case Ge.Bit64:this.pos+=4;case Ge.Bit32:this.pos+=4;break;case Ge.LengthDelimited:let r=this.uint32();this.pos+=r;break;case Ge.StartGroup:let a;for(;(a=this.tag()[1])!==Ge.EndGroup;)this.skip(a);break;default:throw new Error("cant skip wire type "+t)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)}int64(){return be.dec(...this.varint64())}uint64(){return be.uDec(...this.varint64())}sint64(){let[t,n]=this.varint64(),r=-(t&1);return t=(t>>>1|(n&1)<<31)^r,n=n>>>1^r,be.dec(t,n)}bool(){let[t,n]=this.varint64();return t!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return be.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return be.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let t=this.uint32(),n=this.pos;return this.pos+=t,this.assertBounds(),this.buf.subarray(n,n+t)}string(){return this.textDecoder.decode(this.bytes())}};function So(e,t){return t instanceof M||!e.fieldWrapper?t:e.fieldWrapper.wrapField(t)}var Fhe={"google.protobuf.DoubleValue":z.DOUBLE,"google.protobuf.FloatValue":z.FLOAT,"google.protobuf.Int64Value":z.INT64,"google.protobuf.UInt64Value":z.UINT64,"google.protobuf.Int32Value":z.INT32,"google.protobuf.UInt32Value":z.UINT32,"google.protobuf.BoolValue":z.BOOL,"google.protobuf.StringValue":z.STRING,"google.protobuf.BytesValue":z.BYTES};function Ni(e,t,n){if(t===n)return!0;if(e==z.BYTES){if(!(t instanceof Uint8Array)||!(n instanceof Uint8Array)||t.length!==n.length)return!1;for(let r=0;rnew Wp(e)},cA={writeUnknownFields:!0,writerFactory:()=>new qp};function ffe(e){return e?Object.assign(Object.assign({},uA),e):uA}function hfe(e){return e?Object.assign(Object.assign({},cA),e):cA}function Qp(){return{makeReadOptions:ffe,makeWriteOptions:hfe,listUnknownFields(e){var t;return(t=e[ol])!==null&&t!==void 0?t:[]},discardUnknownFields(e){delete e[ol]},writeUnknownFields(e,t){let r=e[ol];if(r)for(let a of r)t.tag(a.no,a.wireType).raw(a.data)},onUnknownField(e,t,n,r){let a=e;Array.isArray(a[ol])||(a[ol]=[]),a[ol].push({no:t,wireType:n,data:r})},readMessage(e,t,n,r,a){let o=e.getType(),s=a?t.len:t.pos+n,l,u;for(;t.pos0&&(y=mfe),p){let k=f[m];if(u==Ge.LengthDelimited&&v!=z.STRING&&v!=z.BYTES){let P=t.uint32()+t.pos;for(;t.pos>4,s=o,a=2;break;case 2:n[r++]=(s&15)<<4|(o&60)>>2,s=o,a=3;break;case 3:n[r++]=(s&3)<<6|o,a=0;break}}if(a==1)throw Error("invalid base64 string.");return n.subarray(0,r)},enc(e){let t="",n=0,r,a=0;for(let o=0;o>2],a=(r&3)<<4,n=1;break;case 1:t+=Ai[a|r>>4],a=(r&15)<<2,n=2;break;case 2:t+=Ai[a|r>>6],t+=Ai[r&63],n=0;break}return n&&(t+=Ai[a],t+="=",n==1&&(t+="=")),t}};var fA={ignoreUnknownFields:!1},hA={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function vfe(e){return e?Object.assign(Object.assign({},fA),e):fA}function gfe(e){return e?Object.assign(Object.assign({},hA),e):hA}function nm(e){let t=e(yfe,pA);return{makeReadOptions:vfe,makeWriteOptions:gfe,readMessage(n,r,a,o){if(r==null||Array.isArray(r)||typeof r!="object")throw new Error(`cannot decode message ${n.typeName} from JSON: ${this.debug(r)}`);o=o??new n;let s={};for(let[l,u]of Object.entries(r)){let c=n.fields.findJsonName(l);if(!c){if(!a.ignoreUnknownFields)throw new Error(`cannot decode message ${n.typeName} from JSON: key "${l}" is unknown`);continue}let f=c.localName,p=o;if(c.oneof){if(u===null&&c.kind=="scalar")continue;let m=s[c.oneof.localName];if(m)throw new Error(`cannot decode message ${n.typeName} from JSON: multiple keys for oneof "${c.oneof.name}" present: "${m}", "${l}"`);s[c.oneof.localName]=l,p=p[c.oneof.localName]={case:f},f="value"}if(c.repeated){if(u===null)continue;if(!Array.isArray(u))throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`);let m=p[f];for(let v of u){if(v===null)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(v)}`);let y;switch(c.kind){case"message":y=c.T.fromJson(v,a);break;case"enum":if(y=wk(c.T,v,a.ignoreUnknownFields),y===void 0)continue;break;case"scalar":try{y=Yc(c.T,v,c.L)}catch(_){let x=`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(v)}`;throw _ instanceof Error&&_.message.length>0&&(x+=`: ${_.message}`),new Error(x)}break}m.push(y)}}else if(c.kind=="map"){if(u===null)continue;if(Array.isArray(u)||typeof u!="object")throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`);let m=p[f];for(let[v,y]of Object.entries(u)){if(y===null)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: map value null`);let _;switch(c.V.kind){case"message":_=c.V.T.fromJson(y,a);break;case"enum":if(_=wk(c.V.T,y,a.ignoreUnknownFields),_===void 0)continue;break;case"scalar":try{_=Yc(c.V.T,y,fr.BIGINT)}catch(x){let S=`cannot decode map value for field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`;throw x instanceof Error&&x.message.length>0&&(S+=`: ${x.message}`),new Error(S)}break}try{m[Yc(c.K,c.K==z.BOOL?v=="true"?!0:v=="false"?!1:v:v,fr.BIGINT).toString()]=_}catch(x){let S=`cannot decode map key for field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`;throw x instanceof Error&&x.message.length>0&&(S+=`: ${x.message}`),new Error(S)}}}else switch(c.kind){case"message":let m=c.T;if(u===null&&m.typeName!="google.protobuf.Value"){if(c.oneof)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: null is invalid for oneof field "${l}"`);continue}p[f]instanceof M?p[f].fromJson(u,a):(p[f]=m.fromJson(u,a),m.fieldWrapper&&!c.oneof&&(p[f]=m.fieldWrapper.unwrapField(p[f])));break;case"enum":let v=wk(c.T,u,a.ignoreUnknownFields);v!==void 0&&(p[f]=v);break;case"scalar":try{p[f]=Yc(c.T,u,c.L)}catch(y){let _=`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`;throw y instanceof Error&&y.message.length>0&&(_+=`: ${y.message}`),new Error(_)}break}}return o},writeMessage(n,r){let a=n.getType(),o={},s;try{for(let l of a.fields.byMember()){let u;if(l.kind=="oneof"){let c=n[l.localName];if(c.value===void 0)continue;if(s=l.findField(c.case),!s)throw"oneof case not found: "+c.case;u=t(s,c.value,r)}else s=l,u=t(s,n[s.localName],r);u!==void 0&&(o[r.useProtoFieldName?s.name:s.jsonName]=u)}}catch(l){let u=s?`cannot encode field ${a.typeName}.${s.name} to JSON`:`cannot encode message ${a.typeName} to JSON`,c=l instanceof Error?l.message:String(l);throw new Error(u+(c.length>0?`: ${c}`:""))}return o},readScalar:Yc,writeScalar:pA,debug:mA}}function mA(e){if(e===null)return"null";switch(typeof e){case"object":return Array.isArray(e)?"array":"object";case"string":return e.length>100?"string":`"${e.split('"').join('\\"')}"`;default:return String(e)}}function Yc(e,t,n){switch(e){case z.DOUBLE:case z.FLOAT:if(t===null)return 0;if(t==="NaN")return Number.NaN;if(t==="Infinity")return Number.POSITIVE_INFINITY;if(t==="-Infinity")return Number.NEGATIVE_INFINITY;if(t===""||typeof t=="string"&&t.trim().length!==t.length||typeof t!="string"&&typeof t!="number")break;let r=Number(t);if(Number.isNaN(r)||!Number.isFinite(r))break;return e==z.FLOAT&&Gp(r),r;case z.INT32:case z.FIXED32:case z.SFIXED32:case z.SINT32:case z.UINT32:if(t===null)return 0;let a;if(typeof t=="number"?a=t:typeof t=="string"&&t.length>0&&t.trim().length===t.length&&(a=Number(t)),a===void 0)break;return e==z.UINT32?zc(a):al(a),a;case z.INT64:case z.SFIXED64:case z.SINT64:if(t===null)return be.zero;if(typeof t!="number"&&typeof t!="string")break;let o=be.parse(t);return n?o.toString():o;case z.FIXED64:case z.UINT64:if(t===null)return be.zero;if(typeof t!="number"&&typeof t!="string")break;let s=be.uParse(t);return n?s.toString():s;case z.BOOL:if(t===null)return!1;if(typeof t!="boolean")break;return t;case z.STRING:if(t===null)return"";if(typeof t!="string")break;try{encodeURIComponent(t)}catch{throw new Error("invalid UTF8")}return t;case z.BYTES:if(t===null||t==="")return new Uint8Array(0);if(typeof t!="string")break;return Ea.dec(t)}throw new Error}function wk(e,t,n){if(t===null)return 0;switch(typeof t){case"number":if(Number.isInteger(t))return t;break;case"string":let r=e.findName(t);if(r||n)return r?.no;break}throw new Error(`cannot decode enum ${e.typeName} from JSON: ${mA(t)}`)}function yfe(e,t,n,r){var a;if(t===void 0)return t;if(t===0&&!n)return;if(r)return t;if(e.typeName=="google.protobuf.NullValue")return null;let o=e.findNumber(t);return(a=o?.name)!==null&&a!==void 0?a:t}function pA(e,t,n){if(t!==void 0)switch(e){case z.INT32:case z.SFIXED32:case z.SINT32:case z.FIXED32:case z.UINT32:return st(typeof t=="number"),t!=0||n?t:void 0;case z.FLOAT:case z.DOUBLE:return st(typeof t=="number"),Number.isNaN(t)?"NaN":t===Number.POSITIVE_INFINITY?"Infinity":t===Number.NEGATIVE_INFINITY?"-Infinity":t!==0||n?t:void 0;case z.STRING:return st(typeof t=="string"),t.length>0||n?t:void 0;case z.BOOL:return st(typeof t=="boolean"),t||n?t:void 0;case z.UINT64:case z.FIXED64:case z.INT64:case z.SFIXED64:case z.SINT64:return st(typeof t=="bigint"||typeof t=="string"||typeof t=="number"),n||t!=0?t.toString(10):void 0;case z.BYTES:return st(t instanceof Uint8Array),n||t.byteLength>0?Ea.enc(t):void 0}}function vA(){return nm((e,t)=>function(r,a,o){if(r.kind=="map"){let s={};switch(r.V.kind){case"scalar":for(let[u,c]of Object.entries(a)){let f=t(r.V.T,c,!0);st(f!==void 0),s[u.toString()]=f}break;case"message":for(let[u,c]of Object.entries(a))s[u.toString()]=c.toJson(o);break;case"enum":let l=r.V.T;for(let[u,c]of Object.entries(a)){st(c===void 0||typeof c=="number");let f=e(l,c,!0,o.enumAsInteger);st(f!==void 0),s[u.toString()]=f}break}return o.emitDefaultValues||Object.keys(s).length>0?s:void 0}else if(r.repeated){let s=[];switch(r.kind){case"scalar":for(let l=0;l0?s:void 0}else switch(r.kind){case"scalar":return t(r.T,a,!!r.oneof||r.opt||o.emitDefaultValues);case"enum":return e(r.T,a,!!r.oneof||r.opt||o.emitDefaultValues,o.enumAsInteger);case"message":return a!==void 0?So(r.T,a).toJson(o):void 0}})}function im(){return{setEnumType:fk,initPartial(e,t){if(e===void 0)return;let n=t.getType();for(let r of n.fields.byMember()){let a=r.localName,o=t,s=e;if(s[a]!==void 0)switch(r.kind){case"oneof":let l=s[a].case;if(l===void 0)continue;let u=r.findField(l),c=s[a].value;u&&u.kind=="message"&&!(c instanceof u.T)?c=new u.T(c):u&&u.kind==="scalar"&&u.T===z.BYTES&&(c=Vc(c)),o[a]={case:l,value:c};break;case"scalar":case"enum":let f=s[a];r.T===z.BYTES&&(f=r.repeated?f.map(Vc):Vc(f)),o[a]=f;break;case"map":switch(r.V.kind){case"scalar":case"enum":if(r.V.T===z.BYTES)for(let[v,y]of Object.entries(s[a]))o[a][v]=Vc(y);else Object.assign(o[a],s[a]);break;case"message":let m=r.V.T;for(let v of Object.keys(s[a])){let y=s[a][v];m.fieldWrapper||(y=new m(y)),o[a][v]=y}break}break;case"message":let p=r.T;if(r.repeated)o[a]=s[a].map(m=>m instanceof p?m:new p(m));else if(s[a]!==void 0){let m=s[a];p.fieldWrapper?p.typeName==="google.protobuf.BytesValue"?o[a]=Vc(m):o[a]=m:o[a]=m instanceof p?m:new p(m)}break}}},equals(e,t,n){return t===n?!0:!t||!n?!1:e.fields.byMember().every(r=>{let a=t[r.localName],o=n[r.localName];if(r.repeated){if(a.length!==o.length)return!1;switch(r.kind){case"message":return a.every((s,l)=>r.T.equals(s,o[l]));case"scalar":return a.every((s,l)=>Ni(r.T,s,o[l]));case"enum":return a.every((s,l)=>Ni(z.INT32,s,o[l]))}throw new Error(`repeated cannot contain ${r.kind}`)}switch(r.kind){case"message":return r.T.equals(a,o);case"enum":return Ni(z.INT32,a,o);case"scalar":return Ni(r.T,a,o);case"oneof":if(a.case!==o.case)return!1;let s=r.findField(a.case);if(s===void 0)return!0;switch(s.kind){case"message":return s.T.equals(a.value,o.value);case"enum":return Ni(z.INT32,a.value,o.value);case"scalar":return Ni(s.T,a.value,o.value)}throw new Error(`oneof cannot contain ${s.kind}`);case"map":let l=Object.keys(a).concat(Object.keys(o));switch(r.V.kind){case"message":let u=r.V.T;return l.every(f=>u.equals(a[f],o[f]));case"enum":return l.every(f=>Ni(z.INT32,a[f],o[f]));case"scalar":let c=r.V.T;return l.every(f=>Ni(c,a[f],o[f]))}break}})},clone(e){let t=e.getType(),n=new t,r=n;for(let a of t.fields.byMember()){let o=e[a.localName],s;if(a.repeated)s=o.map(rm);else if(a.kind=="map"){s=r[a.localName];for(let[l,u]of Object.entries(o))s[l]=rm(u)}else a.kind=="oneof"?s=a.findField(o.case)?{case:o.case,value:rm(o.value)}:{case:void 0}:s=rm(o);r[a.localName]=s}return n}}}function rm(e){if(e===void 0)return e;if(e instanceof M)return e.clone();if(e instanceof Uint8Array){let t=new Uint8Array(e.byteLength);return t.set(e),t}return e}function Vc(e){return e instanceof Uint8Array?e:new Uint8Array(e)}var ll=class{constructor(t,n){this._fields=t,this._normalizer=n}findJsonName(t){if(!this.jsonNames){let n={};for(let r of this.list())n[r.jsonName]=n[r.name]=r;this.jsonNames=n}return this.jsonNames[t]}find(t){if(!this.numbers){let n={};for(let r of this.list())n[r.no]=r;this.numbers=n}return this.numbers[t]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((t,n)=>t.no-n.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];let t=this.members,n;for(let r of this.list())r.oneof?r.oneof!==n&&(n=r.oneof,t.push(n)):t.push(r)}return this.members}};function Hc(e,t){let n=yA(e);return t?n:Sfe(xfe(n))}function gA(e){return Hc(e,!1)}var am=yA;function yA(e){let t=!1,n=[];for(let r=0;r`${e}$`,xfe=e=>bfe.has(e)?wA(e):e,Sfe=e=>wfe.has(e)?wA(e):e;var ul=class{constructor(t){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.default=void 0,this.fields=[],this.name=t,this.localName=gA(t)}addField(t){st(t.oneof===this,`field ${t.name} not one of ${this.name}`),this.fields.push(t)}findField(t){if(!this._lookup){this._lookup=Object.create(null);for(let n=0;n0?`: ${l}`:""))}return n.writeUnknownFields&&this.writeUnknownFields(e,t),t}})}function xA(){return nm((e,t)=>function(r,a,o){if(r.kind=="map"){let s={};switch(r.V.kind){case"scalar":for(let[u,c]of Object.entries(a)){let f=t(r.V.T,c,!0);st(f!==void 0),s[u.toString()]=f}break;case"message":for(let[u,c]of Object.entries(a))s[u.toString()]=c.toJson(o);break;case"enum":let l=r.V.T;for(let[u,c]of Object.entries(a)){st(c===void 0||typeof c=="number");let f=e(l,c,!0,o.enumAsInteger);st(f!==void 0),s[u.toString()]=f}break}return o.emitDefaultValues||Object.keys(s).length>0?s:void 0}else if(r.repeated){let s=[];switch(r.kind){case"scalar":for(let l=0;l0?s:void 0}else{if(a===void 0){if(!r.oneof&&!r.opt)throw"required field not set";return}switch(r.kind){case"scalar":return t(r.T,a,!0);case"enum":return e(r.T,a,!0,o.enumAsInteger);case"message":return So(r.T,a).toJson(o)}}})}var N=Yp("proto2",xA(),bA(),Object.assign(Object.assign({},im()),{newFieldList(e){return new ll(e,_fe)},initFields(e){for(let t of e.getType().fields.byMember()){let n=t.localName,r=e;if(t.repeated){r[n]=[];continue}switch(t.kind){case"oneof":r[n]={case:void 0};break;case"map":r[n]={};break;case"scalar":case"enum":case"message":break}}}}));function _fe(e){var t,n,r,a,o;let s=[],l;for(let u of typeof e=="function"?e():e){let c=u;if(c.localName=Hc(u.name,u.oneof!==void 0),c.jsonName=(t=u.jsonName)!==null&&t!==void 0?t:am(u.name),c.repeated=(n=u.repeated)!==null&&n!==void 0?n:!1,u.kind=="scalar"&&(c.L=(r=u.L)!==null&&r!==void 0?r:fr.BIGINT),u.oneof!==void 0){let f=typeof u.oneof=="string"?u.oneof:u.oneof.name;(!l||l.name!=f)&&(l=new ul(f)),c.oneof=l,l.addField(c)}u.kind=="message"&&(c.delimited=(a=u.delimited)!==null&&a!==void 0?a:!1),c.packed=(o=u.packed)!==null&&o!==void 0?o:!1,s.push(c)}return s}var ne;(function(e){e[e.Unary=0]="Unary",e[e.ServerStreaming=1]="ServerStreaming",e[e.ClientStreaming=2]="ClientStreaming",e[e.BiDiStreaming=3]="BiDiStreaming"})(ne||(ne={}));var qc;(function(e){e[e.NoSideEffects=1]="NoSideEffects",e[e.Idempotent=2]="Idempotent"})(qc||(qc={}));var Oa;(function(e){e[e.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",e[e.EDITION_PROTO2=998]="EDITION_PROTO2",e[e.EDITION_PROTO3=999]="EDITION_PROTO3",e[e.EDITION_2023=1e3]="EDITION_2023",e[e.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",e[e.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",e[e.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",e[e.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",e[e.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY"})(Oa||(Oa={}));N.util.setEnumType(Oa,"google.protobuf.Edition",[{no:0,name:"EDITION_UNKNOWN"},{no:998,name:"EDITION_PROTO2"},{no:999,name:"EDITION_PROTO3"},{no:1e3,name:"EDITION_2023"},{no:1,name:"EDITION_1_TEST_ONLY"},{no:2,name:"EDITION_2_TEST_ONLY"},{no:99997,name:"EDITION_99997_TEST_ONLY"},{no:99998,name:"EDITION_99998_TEST_ONLY"},{no:99999,name:"EDITION_99999_TEST_ONLY"}]);var Wc=class e extends M{constructor(t){super(),this.file=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Wc.runtime=N;Wc.typeName="google.protobuf.FileDescriptorSet";Wc.fields=N.util.newFieldList(()=>[{no:1,name:"file",kind:"message",T:cl,repeated:!0}]);var cl=class e extends M{constructor(t){super(),this.dependency=[],this.publicDependency=[],this.weakDependency=[],this.messageType=[],this.enumType=[],this.service=[],this.extension=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};cl.runtime=N;cl.typeName="google.protobuf.FileDescriptorProto";cl.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"package",kind:"scalar",T:9,opt:!0},{no:3,name:"dependency",kind:"scalar",T:9,repeated:!0},{no:10,name:"public_dependency",kind:"scalar",T:5,repeated:!0},{no:11,name:"weak_dependency",kind:"scalar",T:5,repeated:!0},{no:4,name:"message_type",kind:"message",T:qr,repeated:!0},{no:5,name:"enum_type",kind:"message",T:Li,repeated:!0},{no:6,name:"service",kind:"message",T:yl,repeated:!0},{no:7,name:"extension",kind:"message",T:Ca,repeated:!0},{no:8,name:"options",kind:"message",T:bl,opt:!0},{no:9,name:"source_code_info",kind:"message",T:Rl,opt:!0},{no:12,name:"syntax",kind:"scalar",T:9,opt:!0},{no:14,name:"edition",kind:"enum",T:N.getEnumType(Oa),opt:!0}]);var qr=class e extends M{constructor(t){super(),this.field=[],this.extension=[],this.nestedType=[],this.enumType=[],this.extensionRange=[],this.oneofDecl=[],this.reservedRange=[],this.reservedName=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};qr.runtime=N;qr.typeName="google.protobuf.DescriptorProto";qr.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"field",kind:"message",T:Ca,repeated:!0},{no:6,name:"extension",kind:"message",T:Ca,repeated:!0},{no:3,name:"nested_type",kind:"message",T:qr,repeated:!0},{no:4,name:"enum_type",kind:"message",T:Li,repeated:!0},{no:5,name:"extension_range",kind:"message",T:dl,repeated:!0},{no:8,name:"oneof_decl",kind:"message",T:ml,repeated:!0},{no:7,name:"options",kind:"message",T:xl,opt:!0},{no:9,name:"reserved_range",kind:"message",T:fl,repeated:!0},{no:10,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var dl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};dl.runtime=N;dl.typeName="google.protobuf.DescriptorProto.ExtensionRange";dl.fields=N.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:hl,opt:!0}]);var fl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};fl.runtime=N;fl.typeName="google.protobuf.DescriptorProto.ReservedRange";fl.fields=N.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var hl=class e extends M{constructor(t){super(),this.uninterpretedOption=[],this.declaration=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};hl.runtime=N;hl.typeName="google.protobuf.ExtensionRangeOptions";hl.fields=N.util.newFieldList(()=>[{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0},{no:2,name:"declaration",kind:"message",T:pl,repeated:!0},{no:50,name:"features",kind:"message",T:gn,opt:!0},{no:3,name:"verification",kind:"enum",T:N.getEnumType(Xc),opt:!0,default:Xc.UNVERIFIED}]);var Xc;(function(e){e[e.DECLARATION=0]="DECLARATION",e[e.UNVERIFIED=1]="UNVERIFIED"})(Xc||(Xc={}));N.util.setEnumType(Xc,"google.protobuf.ExtensionRangeOptions.VerificationState",[{no:0,name:"DECLARATION"},{no:1,name:"UNVERIFIED"}]);var pl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};pl.runtime=N;pl.typeName="google.protobuf.ExtensionRangeOptions.Declaration";pl.fields=N.util.newFieldList(()=>[{no:1,name:"number",kind:"scalar",T:5,opt:!0},{no:2,name:"full_name",kind:"scalar",T:9,opt:!0},{no:3,name:"type",kind:"scalar",T:9,opt:!0},{no:5,name:"reserved",kind:"scalar",T:8,opt:!0},{no:6,name:"repeated",kind:"scalar",T:8,opt:!0}]);var Ca=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Ca.runtime=N;Ca.typeName="google.protobuf.FieldDescriptorProto";Ca.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:3,name:"number",kind:"scalar",T:5,opt:!0},{no:4,name:"label",kind:"enum",T:N.getEnumType(sm),opt:!0},{no:5,name:"type",kind:"enum",T:N.getEnumType(om),opt:!0},{no:6,name:"type_name",kind:"scalar",T:9,opt:!0},{no:2,name:"extendee",kind:"scalar",T:9,opt:!0},{no:7,name:"default_value",kind:"scalar",T:9,opt:!0},{no:9,name:"oneof_index",kind:"scalar",T:5,opt:!0},{no:10,name:"json_name",kind:"scalar",T:9,opt:!0},{no:8,name:"options",kind:"message",T:Sl,opt:!0},{no:17,name:"proto3_optional",kind:"scalar",T:8,opt:!0}]);var om;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.GROUP=10]="GROUP",e[e.MESSAGE=11]="MESSAGE",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.ENUM=14]="ENUM",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(om||(om={}));N.util.setEnumType(om,"google.protobuf.FieldDescriptorProto.Type",[{no:1,name:"TYPE_DOUBLE"},{no:2,name:"TYPE_FLOAT"},{no:3,name:"TYPE_INT64"},{no:4,name:"TYPE_UINT64"},{no:5,name:"TYPE_INT32"},{no:6,name:"TYPE_FIXED64"},{no:7,name:"TYPE_FIXED32"},{no:8,name:"TYPE_BOOL"},{no:9,name:"TYPE_STRING"},{no:10,name:"TYPE_GROUP"},{no:11,name:"TYPE_MESSAGE"},{no:12,name:"TYPE_BYTES"},{no:13,name:"TYPE_UINT32"},{no:14,name:"TYPE_ENUM"},{no:15,name:"TYPE_SFIXED32"},{no:16,name:"TYPE_SFIXED64"},{no:17,name:"TYPE_SINT32"},{no:18,name:"TYPE_SINT64"}]);var sm;(function(e){e[e.OPTIONAL=1]="OPTIONAL",e[e.REPEATED=3]="REPEATED",e[e.REQUIRED=2]="REQUIRED"})(sm||(sm={}));N.util.setEnumType(sm,"google.protobuf.FieldDescriptorProto.Label",[{no:1,name:"LABEL_OPTIONAL"},{no:3,name:"LABEL_REPEATED"},{no:2,name:"LABEL_REQUIRED"}]);var ml=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};ml.runtime=N;ml.typeName="google.protobuf.OneofDescriptorProto";ml.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"options",kind:"message",T:_l,opt:!0}]);var Li=class e extends M{constructor(t){super(),this.value=[],this.reservedRange=[],this.reservedName=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Li.runtime=N;Li.typeName="google.protobuf.EnumDescriptorProto";Li.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"value",kind:"message",T:gl,repeated:!0},{no:3,name:"options",kind:"message",T:Tl,opt:!0},{no:4,name:"reserved_range",kind:"message",T:vl,repeated:!0},{no:5,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var vl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};vl.runtime=N;vl.typeName="google.protobuf.EnumDescriptorProto.EnumReservedRange";vl.fields=N.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var gl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};gl.runtime=N;gl.typeName="google.protobuf.EnumValueDescriptorProto";gl.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"number",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:Pl,opt:!0}]);var yl=class e extends M{constructor(t){super(),this.method=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};yl.runtime=N;yl.typeName="google.protobuf.ServiceDescriptorProto";yl.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"method",kind:"message",T:wl,repeated:!0},{no:3,name:"options",kind:"message",T:El,opt:!0}]);var wl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};wl.runtime=N;wl.typeName="google.protobuf.MethodDescriptorProto";wl.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"input_type",kind:"scalar",T:9,opt:!0},{no:3,name:"output_type",kind:"scalar",T:9,opt:!0},{no:4,name:"options",kind:"message",T:Ol,opt:!0},{no:5,name:"client_streaming",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"server_streaming",kind:"scalar",T:8,opt:!0,default:!1}]);var bl=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};bl.runtime=N;bl.typeName="google.protobuf.FileOptions";bl.fields=N.util.newFieldList(()=>[{no:1,name:"java_package",kind:"scalar",T:9,opt:!0},{no:8,name:"java_outer_classname",kind:"scalar",T:9,opt:!0},{no:10,name:"java_multiple_files",kind:"scalar",T:8,opt:!0,default:!1},{no:20,name:"java_generate_equals_and_hash",kind:"scalar",T:8,opt:!0},{no:27,name:"java_string_check_utf8",kind:"scalar",T:8,opt:!0,default:!1},{no:9,name:"optimize_for",kind:"enum",T:N.getEnumType(Kc),opt:!0,default:Kc.SPEED},{no:11,name:"go_package",kind:"scalar",T:9,opt:!0},{no:16,name:"cc_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"java_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:18,name:"py_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:42,name:"php_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:23,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:31,name:"cc_enable_arenas",kind:"scalar",T:8,opt:!0,default:!0},{no:36,name:"objc_class_prefix",kind:"scalar",T:9,opt:!0},{no:37,name:"csharp_namespace",kind:"scalar",T:9,opt:!0},{no:39,name:"swift_prefix",kind:"scalar",T:9,opt:!0},{no:40,name:"php_class_prefix",kind:"scalar",T:9,opt:!0},{no:41,name:"php_namespace",kind:"scalar",T:9,opt:!0},{no:44,name:"php_metadata_namespace",kind:"scalar",T:9,opt:!0},{no:45,name:"ruby_package",kind:"scalar",T:9,opt:!0},{no:50,name:"features",kind:"message",T:gn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var Kc;(function(e){e[e.SPEED=1]="SPEED",e[e.CODE_SIZE=2]="CODE_SIZE",e[e.LITE_RUNTIME=3]="LITE_RUNTIME"})(Kc||(Kc={}));N.util.setEnumType(Kc,"google.protobuf.FileOptions.OptimizeMode",[{no:1,name:"SPEED"},{no:2,name:"CODE_SIZE"},{no:3,name:"LITE_RUNTIME"}]);var xl=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};xl.runtime=N;xl.typeName="google.protobuf.MessageOptions";xl.fields=N.util.newFieldList(()=>[{no:1,name:"message_set_wire_format",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"no_standard_descriptor_accessor",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:7,name:"map_entry",kind:"scalar",T:8,opt:!0},{no:11,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:12,name:"features",kind:"message",T:gn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var Sl=class e extends M{constructor(t){super(),this.targets=[],this.editionDefaults=[],this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Sl.runtime=N;Sl.typeName="google.protobuf.FieldOptions";Sl.fields=N.util.newFieldList(()=>[{no:1,name:"ctype",kind:"enum",T:N.getEnumType(Qc),opt:!0,default:Qc.STRING},{no:2,name:"packed",kind:"scalar",T:8,opt:!0},{no:6,name:"jstype",kind:"enum",T:N.getEnumType(Zc),opt:!0,default:Zc.JS_NORMAL},{no:5,name:"lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:15,name:"unverified_lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:10,name:"weak",kind:"scalar",T:8,opt:!0,default:!1},{no:16,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"retention",kind:"enum",T:N.getEnumType(lm),opt:!0},{no:19,name:"targets",kind:"enum",T:N.getEnumType(um),repeated:!0},{no:20,name:"edition_defaults",kind:"message",T:kl,repeated:!0},{no:21,name:"features",kind:"message",T:gn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var Qc;(function(e){e[e.STRING=0]="STRING",e[e.CORD=1]="CORD",e[e.STRING_PIECE=2]="STRING_PIECE"})(Qc||(Qc={}));N.util.setEnumType(Qc,"google.protobuf.FieldOptions.CType",[{no:0,name:"STRING"},{no:1,name:"CORD"},{no:2,name:"STRING_PIECE"}]);var Zc;(function(e){e[e.JS_NORMAL=0]="JS_NORMAL",e[e.JS_STRING=1]="JS_STRING",e[e.JS_NUMBER=2]="JS_NUMBER"})(Zc||(Zc={}));N.util.setEnumType(Zc,"google.protobuf.FieldOptions.JSType",[{no:0,name:"JS_NORMAL"},{no:1,name:"JS_STRING"},{no:2,name:"JS_NUMBER"}]);var lm;(function(e){e[e.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",e[e.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",e[e.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(lm||(lm={}));N.util.setEnumType(lm,"google.protobuf.FieldOptions.OptionRetention",[{no:0,name:"RETENTION_UNKNOWN"},{no:1,name:"RETENTION_RUNTIME"},{no:2,name:"RETENTION_SOURCE"}]);var um;(function(e){e[e.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",e[e.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",e[e.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",e[e.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",e[e.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",e[e.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",e[e.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",e[e.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",e[e.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",e[e.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(um||(um={}));N.util.setEnumType(um,"google.protobuf.FieldOptions.OptionTargetType",[{no:0,name:"TARGET_TYPE_UNKNOWN"},{no:1,name:"TARGET_TYPE_FILE"},{no:2,name:"TARGET_TYPE_EXTENSION_RANGE"},{no:3,name:"TARGET_TYPE_MESSAGE"},{no:4,name:"TARGET_TYPE_FIELD"},{no:5,name:"TARGET_TYPE_ONEOF"},{no:6,name:"TARGET_TYPE_ENUM"},{no:7,name:"TARGET_TYPE_ENUM_ENTRY"},{no:8,name:"TARGET_TYPE_SERVICE"},{no:9,name:"TARGET_TYPE_METHOD"}]);var kl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};kl.runtime=N;kl.typeName="google.protobuf.FieldOptions.EditionDefault";kl.fields=N.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:N.getEnumType(Oa),opt:!0},{no:2,name:"value",kind:"scalar",T:9,opt:!0}]);var _l=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};_l.runtime=N;_l.typeName="google.protobuf.OneofOptions";_l.fields=N.util.newFieldList(()=>[{no:1,name:"features",kind:"message",T:gn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var Tl=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Tl.runtime=N;Tl.typeName="google.protobuf.EnumOptions";Tl.fields=N.util.newFieldList(()=>[{no:2,name:"allow_alias",kind:"scalar",T:8,opt:!0},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:7,name:"features",kind:"message",T:gn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var Pl=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Pl.runtime=N;Pl.typeName="google.protobuf.EnumValueOptions";Pl.fields=N.util.newFieldList(()=>[{no:1,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"features",kind:"message",T:gn,opt:!0},{no:3,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var El=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};El.runtime=N;El.typeName="google.protobuf.ServiceOptions";El.fields=N.util.newFieldList(()=>[{no:34,name:"features",kind:"message",T:gn,opt:!0},{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var Ol=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Ol.runtime=N;Ol.typeName="google.protobuf.MethodOptions";Ol.fields=N.util.newFieldList(()=>[{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:34,name:"idempotency_level",kind:"enum",T:N.getEnumType(ed),opt:!0,default:ed.IDEMPOTENCY_UNKNOWN},{no:35,name:"features",kind:"message",T:gn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var ed;(function(e){e[e.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",e[e.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",e[e.IDEMPOTENT=2]="IDEMPOTENT"})(ed||(ed={}));N.util.setEnumType(ed,"google.protobuf.MethodOptions.IdempotencyLevel",[{no:0,name:"IDEMPOTENCY_UNKNOWN"},{no:1,name:"NO_SIDE_EFFECTS"},{no:2,name:"IDEMPOTENT"}]);var Rn=class e extends M{constructor(t){super(),this.name=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Rn.runtime=N;Rn.typeName="google.protobuf.UninterpretedOption";Rn.fields=N.util.newFieldList(()=>[{no:2,name:"name",kind:"message",T:Cl,repeated:!0},{no:3,name:"identifier_value",kind:"scalar",T:9,opt:!0},{no:4,name:"positive_int_value",kind:"scalar",T:4,opt:!0},{no:5,name:"negative_int_value",kind:"scalar",T:3,opt:!0},{no:6,name:"double_value",kind:"scalar",T:1,opt:!0},{no:7,name:"string_value",kind:"scalar",T:12,opt:!0},{no:8,name:"aggregate_value",kind:"scalar",T:9,opt:!0}]);var Cl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Cl.runtime=N;Cl.typeName="google.protobuf.UninterpretedOption.NamePart";Cl.fields=N.util.newFieldList(()=>[{no:1,name:"name_part",kind:"scalar",T:9},{no:2,name:"is_extension",kind:"scalar",T:8}]);var gn=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};gn.runtime=N;gn.typeName="google.protobuf.FeatureSet";gn.fields=N.util.newFieldList(()=>[{no:1,name:"field_presence",kind:"enum",T:N.getEnumType(cm),opt:!0},{no:2,name:"enum_type",kind:"enum",T:N.getEnumType(dm),opt:!0},{no:3,name:"repeated_field_encoding",kind:"enum",T:N.getEnumType(fm),opt:!0},{no:4,name:"utf8_validation",kind:"enum",T:N.getEnumType(hm),opt:!0},{no:5,name:"message_encoding",kind:"enum",T:N.getEnumType(pm),opt:!0},{no:6,name:"json_format",kind:"enum",T:N.getEnumType(mm),opt:!0}]);var cm;(function(e){e[e.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",e[e.EXPLICIT=1]="EXPLICIT",e[e.IMPLICIT=2]="IMPLICIT",e[e.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(cm||(cm={}));N.util.setEnumType(cm,"google.protobuf.FeatureSet.FieldPresence",[{no:0,name:"FIELD_PRESENCE_UNKNOWN"},{no:1,name:"EXPLICIT"},{no:2,name:"IMPLICIT"},{no:3,name:"LEGACY_REQUIRED"}]);var dm;(function(e){e[e.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",e[e.OPEN=1]="OPEN",e[e.CLOSED=2]="CLOSED"})(dm||(dm={}));N.util.setEnumType(dm,"google.protobuf.FeatureSet.EnumType",[{no:0,name:"ENUM_TYPE_UNKNOWN"},{no:1,name:"OPEN"},{no:2,name:"CLOSED"}]);var fm;(function(e){e[e.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",e[e.PACKED=1]="PACKED",e[e.EXPANDED=2]="EXPANDED"})(fm||(fm={}));N.util.setEnumType(fm,"google.protobuf.FeatureSet.RepeatedFieldEncoding",[{no:0,name:"REPEATED_FIELD_ENCODING_UNKNOWN"},{no:1,name:"PACKED"},{no:2,name:"EXPANDED"}]);var hm;(function(e){e[e.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",e[e.NONE=1]="NONE",e[e.VERIFY=2]="VERIFY"})(hm||(hm={}));N.util.setEnumType(hm,"google.protobuf.FeatureSet.Utf8Validation",[{no:0,name:"UTF8_VALIDATION_UNKNOWN"},{no:1,name:"NONE"},{no:2,name:"VERIFY"}]);var pm;(function(e){e[e.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",e[e.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",e[e.DELIMITED=2]="DELIMITED"})(pm||(pm={}));N.util.setEnumType(pm,"google.protobuf.FeatureSet.MessageEncoding",[{no:0,name:"MESSAGE_ENCODING_UNKNOWN"},{no:1,name:"LENGTH_PREFIXED"},{no:2,name:"DELIMITED"}]);var mm;(function(e){e[e.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",e[e.ALLOW=1]="ALLOW",e[e.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(mm||(mm={}));N.util.setEnumType(mm,"google.protobuf.FeatureSet.JsonFormat",[{no:0,name:"JSON_FORMAT_UNKNOWN"},{no:1,name:"ALLOW"},{no:2,name:"LEGACY_BEST_EFFORT"}]);var td=class e extends M{constructor(t){super(),this.defaults=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};td.runtime=N;td.typeName="google.protobuf.FeatureSetDefaults";td.fields=N.util.newFieldList(()=>[{no:1,name:"defaults",kind:"message",T:Il,repeated:!0},{no:4,name:"minimum_edition",kind:"enum",T:N.getEnumType(Oa),opt:!0},{no:5,name:"maximum_edition",kind:"enum",T:N.getEnumType(Oa),opt:!0}]);var Il=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Il.runtime=N;Il.typeName="google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault";Il.fields=N.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:N.getEnumType(Oa),opt:!0},{no:2,name:"features",kind:"message",T:gn,opt:!0}]);var Rl=class e extends M{constructor(t){super(),this.location=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Rl.runtime=N;Rl.typeName="google.protobuf.SourceCodeInfo";Rl.fields=N.util.newFieldList(()=>[{no:1,name:"location",kind:"message",T:Ml,repeated:!0}]);var Ml=class e extends M{constructor(t){super(),this.path=[],this.span=[],this.leadingDetachedComments=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Ml.runtime=N;Ml.typeName="google.protobuf.SourceCodeInfo.Location";Ml.fields=N.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"span",kind:"scalar",T:5,repeated:!0,packed:!0},{no:3,name:"leading_comments",kind:"scalar",T:9,opt:!0},{no:4,name:"trailing_comments",kind:"scalar",T:9,opt:!0},{no:6,name:"leading_detached_comments",kind:"scalar",T:9,repeated:!0}]);var nd=class e extends M{constructor(t){super(),this.annotation=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};nd.runtime=N;nd.typeName="google.protobuf.GeneratedCodeInfo";nd.fields=N.util.newFieldList(()=>[{no:1,name:"annotation",kind:"message",T:Dl,repeated:!0}]);var Dl=class e extends M{constructor(t){super(),this.path=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Dl.runtime=N;Dl.typeName="google.protobuf.GeneratedCodeInfo.Annotation";Dl.fields=N.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"source_file",kind:"scalar",T:9,opt:!0},{no:3,name:"begin",kind:"scalar",T:5,opt:!0},{no:4,name:"end",kind:"scalar",T:5,opt:!0},{no:5,name:"semantic",kind:"enum",T:N.getEnumType(vm),opt:!0}]);var vm;(function(e){e[e.NONE=0]="NONE",e[e.SET=1]="SET",e[e.ALIAS=2]="ALIAS"})(vm||(vm={}));N.util.setEnumType(vm,"google.protobuf.GeneratedCodeInfo.Annotation.Semantic",[{no:0,name:"NONE"},{no:1,name:"SET"},{no:2,name:"ALIAS"}]);var Et=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};Et.runtime=w;Et.typeName="google.protobuf.Empty";Et.fields=w.util.newFieldList(()=>[]);var gm=class e extends M{secret="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.VerifyUserRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},ym=class e extends M{secret="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.GroupInfoRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},wm=class e extends M{groupId="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.GroupID";static fields=w.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},bm=class e extends M{contentId="";groupId="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.ShareRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"group_id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},rd=class e extends M{secret="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.GroupInvite";static fields=w.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},xm=class e extends M{groups=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.Groups";static fields=w.util.newFieldList(()=>[{no:1,name:"groups",kind:"message",T:Fi,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},SA=class e extends M{text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.AnalyzeConversationRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Wr=class e extends M{email="";password="";username="";config;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.User";static fields=w.util.newFieldList(()=>[{no:1,name:"email",kind:"scalar",T:9},{no:2,name:"password",kind:"scalar",T:9},{no:3,name:"username",kind:"scalar",T:9},{no:4,name:"config",kind:"message",T:id}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Fi=class e extends M{id="";name="";users=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.Group";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"users",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},id=class e extends M{domainWhitelist=[];offlineVoice=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.Config";static fields=w.util.newFieldList(()=>[{no:1,name:"domain_whitelist",kind:"scalar",T:9,repeated:!0},{no:2,name:"offline_voice",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Sm=class e extends M{user;success=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.LoginResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"user",kind:"message",T:Wr},{no:2,name:"success",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var km=class e extends M{title="";createTime=0;updateTime=0;mapping={};conversationId="";conversationTemplateId="";currentNode="";gizmoId="";isArchived=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Conversation";static fields=w.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"create_time",kind:"scalar",T:1},{no:3,name:"update_time",kind:"scalar",T:1},{no:4,name:"mapping",kind:"map",K:9,V:{kind:"message",T:bk}},{no:5,name:"conversation_id",kind:"scalar",T:9},{no:6,name:"conversation_template_id",kind:"scalar",T:9},{no:7,name:"current_node",kind:"scalar",T:9},{no:8,name:"gizmo_id",kind:"scalar",T:9},{no:9,name:"is_archived",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},bk=class e extends M{id="";message;parent="";children=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Node";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"message",kind:"message",T:xk},{no:3,name:"parent",kind:"scalar",T:9},{no:4,name:"children",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},xk=class e extends M{id="";author;createTime=0;content;status="";endTurn=!1;weight=0;metadata;recipient="";updateTime=0;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Message";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"author",kind:"message",T:kk},{no:3,name:"create_time",kind:"scalar",T:1},{no:4,name:"content",kind:"message",T:_k},{no:5,name:"status",kind:"scalar",T:9},{no:6,name:"end_turn",kind:"scalar",T:8},{no:7,name:"weight",kind:"scalar",T:5},{no:8,name:"metadata",kind:"message",T:Sk},{no:9,name:"recipient",kind:"scalar",T:9},{no:10,name:"update_time",kind:"scalar",T:1}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Sk=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.MessageMetadata";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},kk=class e extends M{role="";metadata;name="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Author";static fields=w.util.newFieldList(()=>[{no:1,name:"role",kind:"scalar",T:9},{no:2,name:"metadata",kind:"message",T:Ok},{no:3,name:"name",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},_k=class e extends M{contentType="";textParts=[];imageParts=[];text="";parts=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Content";static fields=w.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"text_parts",kind:"scalar",T:9,repeated:!0},{no:3,name:"image_parts",kind:"message",T:Tk,repeated:!0},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"parts",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Tk=class e extends M{contentType="";assetPointer="";sizeBytes=be.zero;width=0;height=0;fovea=0;metadata;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.ImageAsset";static fields=w.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"asset_pointer",kind:"scalar",T:9},{no:3,name:"size_bytes",kind:"scalar",T:3},{no:4,name:"width",kind:"scalar",T:5},{no:5,name:"height",kind:"scalar",T:5},{no:6,name:"fovea",kind:"scalar",T:5},{no:7,name:"metadata",kind:"message",T:Pk}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Pk=class e extends M{dalle;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Metadata";static fields=w.util.newFieldList(()=>[{no:1,name:"dalle",kind:"message",T:Ek}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ek=class e extends M{genId="";prompt="";seed=0;serializationTitle="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.DalleMetadata";static fields=w.util.newFieldList(()=>[{no:1,name:"gen_id",kind:"scalar",T:9},{no:2,name:"prompt",kind:"scalar",T:9},{no:3,name:"seed",kind:"scalar",T:13},{no:4,name:"serialization_title",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ok=class e extends M{attachments=[];timestamp="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.AuthorMetadata";static fields=w.util.newFieldList(()=>[{no:1,name:"attachments",kind:"message",T:Ck,repeated:!0},{no:2,name:"timestamp_",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ck=class e extends M{id="";name="";mimeType="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Attachment";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"mimeType",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var Nl=class e extends M{nodes=[];edges=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="browser.History";static fields=w.util.newFieldList(()=>[{no:1,name:"nodes",kind:"message",T:Ik,repeated:!0},{no:2,name:"edges",kind:"message",T:Rk,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ik=class e extends M{id="";url="";title="";open=0;close=0;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="browser.Node";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"open",kind:"scalar",T:1},{no:5,name:"close",kind:"scalar",T:1}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Rk=class e extends M{from="";to="";tab="";visitTime=0;visitDuration=0;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="browser.Edge";static fields=w.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9},{no:3,name:"tab",kind:"scalar",T:9},{no:4,name:"visit_time",kind:"scalar",T:1},{no:5,name:"visit_duration",kind:"scalar",T:1}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var _m=class e extends M{publishDir="";baseUrl="";title="";paginate=0;theme=[];enableInlineShortcodes=!1;enableRobotsTxt=!1;buildDrafts=!1;buildFuture=!1;buildExpired=!1;enableEmoji=!1;pygmentsUseClasses=!1;mainSections=[];minify;languages={};outputs={};params;markup;services;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.HugoConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"publish_dir",kind:"scalar",T:9},{no:2,name:"base_url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"paginate",kind:"scalar",T:5},{no:5,name:"theme",kind:"scalar",T:9,repeated:!0},{no:6,name:"enable_inline_shortcodes",kind:"scalar",T:8},{no:7,name:"enable_robots_txt",kind:"scalar",T:8},{no:8,name:"build_drafts",kind:"scalar",T:8},{no:9,name:"build_future",kind:"scalar",T:8},{no:10,name:"build_expired",kind:"scalar",T:8},{no:11,name:"enable_emoji",kind:"scalar",T:8},{no:12,name:"pygments_use_classes",kind:"scalar",T:8},{no:13,name:"main_sections",kind:"scalar",T:9,repeated:!0},{no:14,name:"minify",kind:"message",T:Mk},{no:15,name:"languages",kind:"map",K:9,V:{kind:"message",T:Dk}},{no:16,name:"outputs",kind:"map",K:9,V:{kind:"message",T:Uk}},{no:17,name:"params",kind:"message",T:zk},{no:18,name:"markup",kind:"message",T:Ak},{no:19,name:"services",kind:"message",T:Jk}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Mk=class e extends M{disableXml=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.MinifyConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"disable_xml",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Dk=class e extends M{languageName="";weight=0;title="";taxonomies={};menu={};params={};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.LanguageConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"language_name",kind:"scalar",T:9},{no:2,name:"weight",kind:"scalar",T:5},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"taxonomies",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"menu",kind:"map",K:9,V:{kind:"message",T:jk}},{no:6,name:"params",kind:"map",K:9,V:{kind:"scalar",T:9}}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},ad=class e extends M{name="";url="";weight=0;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.MenuItem";static fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"weight",kind:"scalar",T:5}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Nk=class e extends M{url="";text="";appendFilePath=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.EditPostConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"append_file_path",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},$k=class e extends M{disableHljs=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.AssetsConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"disable_hljs",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ak=class e extends M{goldmark;highlight;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.MarkupConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"goldmark",kind:"message",T:Lk},{no:2,name:"highlight",kind:"message",T:Bk}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Lk=class e extends M{renderer;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.GoldmarkConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"renderer",kind:"message",T:Fk}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Fk=class e extends M{unsafe=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.RendererConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"unsafe",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Bk=class e extends M{noClasses=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.HighlightConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"no_classes",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Jk=class e extends M{instagram;twitter;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ServicesConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"instagram",kind:"message",T:Tm},{no:2,name:"twitter",kind:"message",T:Tm}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Tm=class e extends M{disableInlineCss=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ServiceConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"disable_inline_css",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Uk=class e extends M{values=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.RepeatedString";static fields=w.util.newFieldList(()=>[{no:1,name:"values",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},jk=class e extends M{items=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.RepeatedMenuItem";static fields=w.util.newFieldList(()=>[{no:1,name:"items",kind:"message",T:ad,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},zk=class e extends M{env="";description="";author="";defaultTheme="";showShareButtons=!1;showReadingTime=!1;displayFullLangName=!1;showPostNavLinks=!1;showBreadCrumbs=!1;showCodeCopyButtons=!1;showRssButtonInSectionTermList=!1;showAllPagesInArchive=!1;showPageNums=!1;showToc=!1;images=[];profileMode;homeInfoParams;socialIcons=[];editPost;assets;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ParamsConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"env",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"author",kind:"scalar",T:9},{no:4,name:"default_theme",kind:"scalar",T:9},{no:5,name:"show_share_buttons",kind:"scalar",T:8},{no:6,name:"show_reading_time",kind:"scalar",T:8},{no:7,name:"display_full_lang_name",kind:"scalar",T:8},{no:8,name:"show_post_nav_links",kind:"scalar",T:8},{no:9,name:"show_bread_crumbs",kind:"scalar",T:8},{no:10,name:"show_code_copy_buttons",kind:"scalar",T:8},{no:11,name:"show_rss_button_in_section_term_list",kind:"scalar",T:8},{no:12,name:"show_all_pages_in_archive",kind:"scalar",T:8},{no:13,name:"show_page_nums",kind:"scalar",T:8},{no:14,name:"show_toc",kind:"scalar",T:8},{no:15,name:"images",kind:"scalar",T:9,repeated:!0},{no:16,name:"profile_mode",kind:"message",T:Gk},{no:17,name:"home_info_params",kind:"message",T:Vk},{no:18,name:"social_icons",kind:"message",T:Hk,repeated:!0},{no:19,name:"edit_post",kind:"message",T:Nk},{no:20,name:"assets",kind:"message",T:$k}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Gk=class e extends M{enabled=!1;title="";imageUrl="";imageTitle="";buttons=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ProfileModeConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"image_url",kind:"scalar",T:9},{no:4,name:"image_title",kind:"scalar",T:9},{no:5,name:"buttons",kind:"message",T:Yk,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Yk=class e extends M{name="";url="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ButtonConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Vk=class e extends M{title="";content="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.HomeInfoParamsConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"content",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Hk=class e extends M{name="";title="";url="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.SocialIconConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var Pm=class e extends M{prompt="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.InferRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Em=class e extends M{text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.InferResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Om=class e extends M{content;site;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.TypesResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Um},{no:2,name:"site",kind:"message",T:Um}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Cm=class e extends M{contentTypes=[];tags=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.GetSourcesRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"content_types",kind:"scalar",T:9,repeated:!0},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Im=class e extends M{captureDevice=0;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.VoiceInputRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Rm=class e extends M{segment;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.VoiceInputResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:$l}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Mm=class e extends M{parent="";children=[];connect=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.RelateRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"parent",kind:"scalar",T:9},{no:2,name:"children",kind:"scalar",T:9,repeated:!0},{no:3,name:"connect",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Dm=class e extends M{sources=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Sources";static fields=w.util.newFieldList(()=>[{no:1,name:"sources",kind:"message",T:qk,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},qk=class e extends M{source;displayContent=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.EnumeratedSource";static fields=w.util.newFieldList(()=>[{no:1,name:"source",kind:"message",T:Xk},{no:2,name:"display_content",kind:"message",T:Wk,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Wk=class e extends M{title="";description="";type="";content;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.DisplayContent";static fields=w.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"type",kind:"scalar",T:9},{no:4,name:"content",kind:"message",T:Xn}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Xk=class e extends M{name="";type={case:void 0};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Source";static fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"server",kind:"message",T:Kk,oneof:"type"},{no:3,name:"folder",kind:"message",T:Qk,oneof:"type"}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Kk=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Server";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Qk=class e extends M{path="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Folder";static fields=w.util.newFieldList(()=>[{no:2,name:"path",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Nm=class e extends M{contentId="";tags=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.SetTagsRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},$m=class e extends M{groupId="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.TagRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Am=class e extends M{tags=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Tags";static fields=w.util.newFieldList(()=>[{no:1,name:"tags",kind:"message",T:Lm,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Lm=class e extends M{name="";subTags=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Tag";static fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"sub_tags",kind:"message",T:e,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ia=class e extends M{contentIds=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ContentIDs";static fields=w.util.newFieldList(()=>[{no:1,name:"content_ids",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},od=class e extends M{content;tags=[];related=[];parents=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Contents";static fields=w.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Xn},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0},{no:3,name:"related",kind:"message",T:Xn,repeated:!0},{no:4,name:"parents",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Fm=class e extends M{query="";page=0;contentID="";groupID="";tags=[];contentTypes=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Query";static fields=w.util.newFieldList(()=>[{no:1,name:"query",kind:"scalar",T:9},{no:2,name:"page",kind:"scalar",T:13},{no:3,name:"contentID",kind:"scalar",T:9},{no:4,name:"groupID",kind:"scalar",T:9},{no:5,name:"tags",kind:"scalar",T:9,repeated:!0},{no:6,name:"content_types",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Bm=class e extends M{storedContent=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Results";static fields=w.util.newFieldList(()=>[{no:1,name:"storedContent",kind:"message",T:Zk,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Zk=class e extends M{content;id="";related=[];title="";description="";image="";url="";user;tags=[];preview="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.StoredContent";static fields=w.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Xn},{no:2,name:"id",kind:"scalar",T:9},{no:3,name:"related",kind:"message",T:Xn,repeated:!0},{no:4,name:"title",kind:"scalar",T:9},{no:5,name:"description",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"url",kind:"scalar",T:9},{no:9,name:"user",kind:"message",T:Wr},{no:10,name:"tags",kind:"message",T:Lm,repeated:!0},{no:11,name:"preview",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},kA=class e extends M{from="";to="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Edge";static fields=w.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Xn=class e extends M{tags=[];createdAt="";uri="";id="";type={case:void 0};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Content";static fields=w.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"created_at",kind:"scalar",T:9},{no:3,name:"uri",kind:"scalar",T:9},{no:4,name:"id",kind:"scalar",T:9},{no:6,name:"data",kind:"message",T:sd,oneof:"type"},{no:7,name:"normalized",kind:"message",T:e_,oneof:"type"},{no:8,name:"transformed",kind:"message",T:t_,oneof:"type"},{no:9,name:"post",kind:"message",T:Jm,oneof:"type"},{no:10,name:"site",kind:"message",T:f_,oneof:"type"},{no:11,name:"chatgpt_conversation",kind:"message",T:km,oneof:"type"},{no:12,name:"browser_history",kind:"message",T:Nl,oneof:"type"}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Jm=class e extends M{title="";summary="";content="";authors=[];draft=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Post";static fields=w.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"content",kind:"scalar",T:9},{no:4,name:"authors",kind:"scalar",T:9,repeated:!0},{no:6,name:"draft",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},_A=class e extends M{url="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.GitRepo";static fields=w.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},sd=class e extends M{type={case:void 0};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Data";static fields=w.util.newFieldList(()=>[{no:4,name:"text",kind:"message",T:l_,oneof:"type"},{no:5,name:"file",kind:"message",T:s_,oneof:"type"},{no:6,name:"url",kind:"message",T:u_,oneof:"type"}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},e_=class e extends M{type={case:void 0};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Normalized";static fields=w.util.newFieldList(()=>[{no:3,name:"article",kind:"message",T:n_,oneof:"type"},{no:4,name:"html",kind:"message",T:r_,oneof:"type"},{no:6,name:"transcript",kind:"message",T:d_,oneof:"type"},{no:7,name:"readme",kind:"message",T:i_,oneof:"type"}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},t_=class e extends M{type={case:void 0};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Transformed";static fields=w.util.newFieldList(()=>[{no:1,name:"summary",kind:"message",T:a_,oneof:"type"},{no:2,name:"categories",kind:"message",T:o_,oneof:"type"}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},n_=class e extends M{title="";author="";length=0;excerpt="";siteName="";image="";favicon="";text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Article";static fields=w.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"author",kind:"scalar",T:9},{no:3,name:"length",kind:"scalar",T:5},{no:4,name:"excerpt",kind:"scalar",T:9},{no:5,name:"site_name",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"favicon",kind:"scalar",T:9},{no:8,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},r_=class e extends M{html="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.HTML";static fields=w.util.newFieldList(()=>[{no:1,name:"html",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},i_=class e extends M{data="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ReadMe";static fields=w.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},a_=class e extends M{summary="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Summary";static fields=w.util.newFieldList(()=>[{no:1,name:"summary",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},o_=class e extends M{categories=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Categories";static fields=w.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},s_=class e extends M{file="";data=new Uint8Array(0);url="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.File";static fields=w.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9},{no:2,name:"data",kind:"scalar",T:12},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},l_=class e extends M{data="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Text";static fields=w.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},u_=class e extends M{url="";crawl=!1;title="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.URL";static fields=w.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"crawl",kind:"scalar",T:8},{no:3,name:"title",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},c_=class e extends M{id=0;startTime=be.zero;endTime=be.zero;text="";p="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Token";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},$l=class e extends M{num=0;tokens=[];text="";startTime=be.zero;endTime=be.zero;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Segment";static fields=w.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:c_,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},d_=class e extends M{id="";name="";segments=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Transcript";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:$l,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Um=class e extends M{msg;descLookup={};enumLookup={};packageName="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.GRPCTypeInfo";static fields=w.util.newFieldList(()=>[{no:1,name:"msg",kind:"message",T:qr},{no:3,name:"desc_lookup",kind:"map",K:9,V:{kind:"message",T:qr}},{no:4,name:"enum_lookup",kind:"map",K:9,V:{kind:"message",T:Li}},{no:6,name:"package_name",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},f_=class e extends M{sections=[];hugoConfig;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Site";static fields=w.util.newFieldList(()=>[{no:1,name:"sections",kind:"message",T:h_,repeated:!0},{no:2,name:"hugo_config",kind:"message",T:_m}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},h_=class e extends M{tags=[];menu;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Section";static fields=w.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"menu",kind:"message",T:ad}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var jm=class e extends M{text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.AnalyzeConversationRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},zm=class e extends M{prompt="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GenerateImagesRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Gm=class e extends M{images=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GenerateImagesResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"images",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ym=class e extends M{id="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.DeleteSessionRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Al=class e extends M{id="";text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.Prompt";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Vm=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GetPromptsRequest";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Hm=class e extends M{prompts=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GetPromptsResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"prompts",kind:"message",T:Al,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},qm=class e extends M{prompt="";text=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.InferRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Wm=class e extends M{text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.InferResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Xm=class e extends M{content;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.UploadContentRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Xn}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},TA=class e extends M{id="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.UploadContentResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Km=class e extends M{id="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GetSessionRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Qm=class e extends M{session;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GetSessionResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"session",kind:"message",T:nv}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Zm=class e extends M{page=be.zero;limit=be.zero;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GetSessionsRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"page",kind:"scalar",T:4},{no:2,name:"limit",kind:"scalar",T:4}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},ev=class e extends M{sessions=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GetSessionsResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"sessions",kind:"message",T:nv,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},p_=class e extends M{id=0;startTime=be.zero;endTime=be.zero;text="";p="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.Token";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},tv=class e extends M{num=0;tokens=[];text="";startTime=be.zero;endTime=be.zero;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.Segment";static fields=w.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:p_,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},nv=class e extends M{id="";name="";segments=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.Session";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:tv,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},PA=class e extends M{filePath="";model="";language="";translate=!1;offset=be.zero;duration=be.zero;threads=0;speedup=!1;maxLen=0;maxTokens=0;wordThreshold=0;tokens=!1;colorize=!1;out="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.TranscriptionRequest";static fields=w.util.newFieldList(()=>[{no:14,name:"file_path",kind:"scalar",T:9},{no:1,name:"model",kind:"scalar",T:9},{no:2,name:"language",kind:"scalar",T:9},{no:3,name:"translate",kind:"scalar",T:8},{no:4,name:"offset",kind:"scalar",T:3},{no:5,name:"duration",kind:"scalar",T:3},{no:6,name:"threads",kind:"scalar",T:13},{no:7,name:"speedup",kind:"scalar",T:8},{no:8,name:"max_len",kind:"scalar",T:13},{no:9,name:"max_tokens",kind:"scalar",T:13},{no:10,name:"word_threshold",kind:"scalar",T:1},{no:11,name:"tokens",kind:"scalar",T:8},{no:12,name:"colorize",kind:"scalar",T:8},{no:13,name:"out",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},EA=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.RegisterFlags";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},OA=class e extends M{text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.OCRText";static fields=w.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},CA=class e extends M{image=new Uint8Array(0);constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.Image";static fields=w.util.newFieldList(()=>[{no:1,name:"image",kind:"scalar",T:12}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},rv=class e extends M{from="";to="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.ConvertFileRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},iv=class e extends M{captureDevice=0;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.ChatRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},ld=class e extends M{segment;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.ChatResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:tv}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},av=class e extends M{id="";file="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.YouTubeVideo";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"file",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},ud=class e extends M{file="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.FilePath";static fields=w.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},ov=class e extends M{title="";filePath;transcript=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.YouTubeVideoResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"file_path",kind:"message",T:ud},{no:3,name:"transcript",kind:"message",T:$l,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var sv=class e extends M{phoneNumbers=[];summary="";questions=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="ai.AnalyzeConversationResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"phone_numbers",kind:"scalar",T:9,repeated:!0},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"questions",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},IA=class e extends M{categories=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="ai.AnalyzeContent";static fields=w.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var RA={typeName:"protoflow.ProtoflowService",methods:{downloadYouTubeVideo:{name:"DownloadYouTubeVideo",I:av,O:ov,kind:ne.Unary},getSessions:{name:"GetSessions",I:Zm,O:ev,kind:ne.Unary},getSession:{name:"GetSession",I:Km,O:Qm,kind:ne.Unary},deleteSession:{name:"DeleteSession",I:Ym,O:Et,kind:ne.Unary},getPrompts:{name:"GetPrompts",I:Vm,O:Hm,kind:ne.Unary},newPrompt:{name:"NewPrompt",I:Al,O:Al,kind:ne.Unary},uploadContent:{name:"UploadContent",I:Xm,O:ld,kind:ne.ServerStreaming},infer:{name:"Infer",I:qm,O:Wm,kind:ne.ServerStreaming},chat:{name:"Chat",I:iv,O:ld,kind:ne.ServerStreaming},convertFile:{name:"ConvertFile",I:rv,O:ud,kind:ne.Unary},generateImages:{name:"GenerateImages",I:zm,O:Gm,kind:ne.Unary},analyzeConversation:{name:"AnalyzeConversation",I:jm,O:sv,kind:ne.Unary}}};var MA={typeName:"content.ContentService",methods:{save:{name:"Save",I:od,O:Ia,kind:ne.Unary},search:{name:"Search",I:Fm,O:Bm,kind:ne.Unary},relate:{name:"Relate",I:Mm,O:Et,kind:ne.Unary},analyze:{name:"Analyze",I:Xn,O:od,kind:ne.Unary},delete:{name:"Delete",I:Ia,O:Ia,kind:ne.Unary},getTags:{name:"GetTags",I:$m,O:Am,kind:ne.Unary},setTags:{name:"SetTags",I:Nm,O:Et,kind:ne.Unary},publish:{name:"Publish",I:Ia,O:Ia,kind:ne.Unary},getSources:{name:"GetSources",I:Cm,O:Dm,kind:ne.Unary},infer:{name:"Infer",I:Pm,O:Em,kind:ne.ServerStreaming},types:{name:"Types",I:Et,O:Om,kind:ne.Unary},voiceInput:{name:"VoiceInput",I:Im,O:Rm,kind:ne.ServerStreaming}}};var DA={typeName:"user.UserService",methods:{register:{name:"Register",I:Wr,O:Wr,kind:ne.Unary},login:{name:"Login",I:Wr,O:Sm,kind:ne.Unary},logout:{name:"Logout",I:Et,O:Et,kind:ne.Unary},resetPassword:{name:"ResetPassword",I:Wr,O:Et,kind:ne.Unary},verifyUser:{name:"VerifyUser",I:gm,O:Et,kind:ne.Unary},updateConfig:{name:"UpdateConfig",I:id,O:Et,kind:ne.Unary},createGroupInvite:{name:"CreateGroupInvite",I:wm,O:rd,kind:ne.Unary},joinGroup:{name:"JoinGroup",I:rd,O:Fi,kind:ne.Unary},groupInfo:{name:"GroupInfo",I:ym,O:Fi,kind:ne.Unary},createGroup:{name:"CreateGroup",I:Fi,O:Fi,kind:ne.Unary},getGroups:{name:"GetGroups",I:Et,O:xm,kind:ne.Unary},deleteGroup:{name:"DeleteGroup",I:Fi,O:Et,kind:ne.Unary},share:{name:"Share",I:bm,O:Et,kind:ne.Unary}}};var lv=class e extends M{user="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chat.BanUserRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},uv=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chat.BanUserResponse";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},cv=class e extends M{message="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chat.SendMessageRequest";static fields=w.util.newFieldList(()=>[{no:2,name:"message",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},dv=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chat.SendMessageResponse";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},fv=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chat.ReceiveMessagesRequest";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},hv=class e extends M{user="";text="";timestamp=be.zero;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chat.Message";static fields=w.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"timestamp",kind:"scalar",T:3}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var NA={typeName:"chat.ChatService",methods:{sendMessage:{name:"SendMessage",I:cv,O:dv,kind:ne.Unary},receiveMessages:{name:"ReceiveMessages",I:fv,O:hv,kind:ne.ServerStreaming},banUser:{name:"BanUser",I:lv,O:uv,kind:ne.Unary}}};var pv=class e extends M{type={case:void 0};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="event.Metric";static fields=w.util.newFieldList(()=>[{no:1,name:"http",kind:"message",T:m_,oneof:"type"},{no:2,name:"rrweb",kind:"message",T:v_,oneof:"type"}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},m_=class e extends M{method="";path="";query="";headers={};host="";remoteAddr="";userAgent="";referer="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="event.HTTPRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"method",kind:"scalar",T:9},{no:2,name:"path",kind:"scalar",T:9},{no:3,name:"query",kind:"scalar",T:9},{no:4,name:"headers",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"host",kind:"scalar",T:9},{no:6,name:"remoteAddr",kind:"scalar",T:9},{no:7,name:"userAgent",kind:"scalar",T:9},{no:8,name:"referer",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},v_=class e extends M{events="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="event.RRWeb";static fields=w.util.newFieldList(()=>[{no:1,name:"events",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},mv=class e extends M{id="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="event.SendResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var $A={typeName:"event.EventService",methods:{send:{name:"Send",I:pv,O:mv,kind:ne.Unary}}};var we;(function(e){e[e.Canceled=1]="Canceled",e[e.Unknown=2]="Unknown",e[e.InvalidArgument=3]="InvalidArgument",e[e.DeadlineExceeded=4]="DeadlineExceeded",e[e.NotFound=5]="NotFound",e[e.AlreadyExists=6]="AlreadyExists",e[e.PermissionDenied=7]="PermissionDenied",e[e.ResourceExhausted=8]="ResourceExhausted",e[e.FailedPrecondition=9]="FailedPrecondition",e[e.Aborted=10]="Aborted",e[e.OutOfRange=11]="OutOfRange",e[e.Unimplemented=12]="Unimplemented",e[e.Internal=13]="Internal",e[e.Unavailable=14]="Unavailable",e[e.DataLoss=15]="DataLoss",e[e.Unauthenticated=16]="Unauthenticated"})(we||(we={}));function cd(e){let t=we[e];return typeof t!="string"?e.toString():t[0].toLowerCase()+t.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var vv;function AA(e){if(!vv){vv={};for(let t of Object.values(we))typeof t!="string"&&(vv[cd(t)]=t)}return vv[e]}var xt=class e extends Error{constructor(t,n=we.Unknown,r,a,o){super(Tfe(t,n)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=t,this.code=n,this.metadata=new Headers(r??{}),this.details=a??[],this.cause=o}static from(t,n=we.Unknown){return t instanceof e?t:t instanceof Error?t.name=="AbortError"?new e(t.message,we.Canceled):new e(t.message,n,void 0,void 0,t):new e(String(t),n,void 0,void 0,t)}static[Symbol.hasInstance](t){return t instanceof Error?Object.getPrototypeOf(t)===e.prototype?!0:t.name==="ConnectError"&&"code"in t&&typeof t.code=="number"&&"metadata"in t&&"details"in t&&Array.isArray(t.details)&&"rawMessage"in t&&typeof t.rawMessage=="string"&&"cause"in t:!1}findDetails(t){let n="typeName"in t?{findMessage:a=>a===t.typeName?t:void 0}:t,r=[];for(let a of this.details){if(a instanceof M){n.findMessage(a.getType().typeName)&&r.push(a);continue}let o=n.findMessage(a.type);if(o)try{r.push(o.fromBinary(a.value))}catch{}}return r}};function Tfe(e,t){return e.length?`[${cd(t)}] ${e}`:`[${cd(t)}]`}function g_(...e){let t=new Headers;for(let n of e)n.forEach((r,a)=>{t.append(a,r)});return t}function LA(e,t){let n={};for(let[r,a]of Object.entries(e.methods)){let o=t(Object.assign(Object.assign({},a),{localName:r,service:e}));o!=null&&(n[r]=o)}return n}function y_(e){let t,n=new Uint8Array(0);function r(a){let o=new Uint8Array(n.length+a.length);o.set(n),o.set(a,n.length),n=o}return new ReadableStream({start(){t=e.getReader()},async pull(a){let o;for(;;){if(o===void 0&&n.byteLength>=5){let u=0;for(let c=1;c<5;c++)u=(u<<8)+n[c];o={flags:n[0],length:u}}if(o!==void 0&&n.byteLength>=o.length+5)break;let l=await t.read();if(l.done)break;r(l.value)}if(o===void 0){if(n.byteLength==0){a.close();return}a.error(new xt("premature end of stream",we.DataLoss));return}let s=n.subarray(5,5+o.length);n=n.subarray(5+o.length),a.enqueue({flags:o.flags,data:s})}})}function w_(e,t){let n=new Uint8Array(t.length+5);n.set(t,5);let r=new DataView(n.buffer,n.byteOffset,n.byteLength);return r.setUint8(0,e),r.setUint32(1,t.length),n}var Pfe=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=e[o]&&function(s){return new Promise(function(l,u){s=e[o](s),a(l,u,s.done,s.value)})}}function a(o,s,l,u){Promise.resolve(u).then(function(c){o({value:c,done:l})},s)}},dd=function(e){return this instanceof dd?(this.v=e,this):new dd(e)},Efe=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),a,o=[];return a={},l("next"),l("throw"),l("return",s),a[Symbol.asyncIterator]=function(){return this},a;function s(v){return function(y){return Promise.resolve(y).then(v,p)}}function l(v,y){r[v]&&(a[v]=function(_){return new Promise(function(x,S){o.push([v,_,x,S])>1||u(v,_)})},y&&(a[v]=y(a[v])))}function u(v,y){try{c(r[v](y))}catch(_){m(o[0][3],_)}}function c(v){v.value instanceof dd?Promise.resolve(v.value.v).then(f,p):m(o[0][2],v)}function f(v){u("next",v)}function p(v){u("throw",v)}function m(v,y){v(y),o.shift(),o.length&&u(o[0][0],o[0][1])}},Ofe=function(e){var t,n;return t={},r("next"),r("throw",function(a){throw a}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(a,o){t[a]=e[a]?function(s){return(n=!n)?{value:dd(e[a](s)),done:!1}:o?o(s):s}:o}};function FA(e){return Efe(this,arguments,function*(){yield dd(yield*Ofe(Pfe(e)))})}var BA=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=e[o]&&function(s){return new Promise(function(l,u){s=e[o](s),a(l,u,s.done,s.value)})}}function a(o,s,l,u){Promise.resolve(u).then(function(c){o({value:c,done:l})},s)}},Ll=function(e){return this instanceof Ll?(this.v=e,this):new Ll(e)},Cfe=function(e){var t,n;return t={},r("next"),r("throw",function(a){throw a}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(a,o){t[a]=e[a]?function(s){return(n=!n)?{value:Ll(e[a](s)),done:!1}:o?o(s):s}:o}},Ife=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),a,o=[];return a={},l("next"),l("throw"),l("return",s),a[Symbol.asyncIterator]=function(){return this},a;function s(v){return function(y){return Promise.resolve(y).then(v,p)}}function l(v,y){r[v]&&(a[v]=function(_){return new Promise(function(x,S){o.push([v,_,x,S])>1||u(v,_)})},y&&(a[v]=y(a[v])))}function u(v,y){try{c(r[v](y))}catch(_){m(o[0][3],_)}}function c(v){v.value instanceof Ll?Promise.resolve(v.value.v).then(f,p):m(o[0][2],v)}function f(v){u("next",v)}function p(v){u("throw",v)}function m(v,y){v(y),o.shift(),o.length&&u(o[0][0],o[0][1])}};function ko(e,t){return LA(e,n=>{switch(n.kind){case ne.Unary:return Rfe(t,e,n);case ne.ServerStreaming:return Mfe(t,e,n);case ne.ClientStreaming:return Dfe(t,e,n);case ne.BiDiStreaming:return Nfe(t,e,n);default:return null}})}function Rfe(e,t,n){return async function(r,a){var o,s;let l=await e.unary(t,n,a?.signal,a?.timeoutMs,a?.headers,r,a?.contextValues);return(o=a?.onHeader)===null||o===void 0||o.call(a,l.header),(s=a?.onTrailer)===null||s===void 0||s.call(a,l.trailer),l.message}}function Mfe(e,t,n){return function(r,a){return JA(e.stream(t,n,a?.signal,a?.timeoutMs,a?.headers,FA([r]),a?.contextValues),a)}}function Dfe(e,t,n){return async function(r,a){var o,s,l,u,c,f;let p=await e.stream(t,n,a?.signal,a?.timeoutMs,a?.headers,r,a?.contextValues);(c=a?.onHeader)===null||c===void 0||c.call(a,p.header);let m;try{for(var v=!0,y=BA(p.message),_;_=await y.next(),o=_.done,!o;v=!0)u=_.value,v=!1,m=u}catch(x){s={error:x}}finally{try{!v&&!o&&(l=y.return)&&await l.call(y)}finally{if(s)throw s.error}}if(!m)throw new xt("protocol error: missing response message",we.Internal);return(f=a?.onTrailer)===null||f===void 0||f.call(a,p.trailer),m}}function Nfe(e,t,n){return function(r,a){return JA(e.stream(t,n,a?.signal,a?.timeoutMs,a?.headers,r,a?.contextValues),a)}}function JA(e,t){let n=function(){var r,a;return Ife(this,arguments,function*(){let o=yield Ll(e);(r=t?.onHeader)===null||r===void 0||r.call(t,o.header),yield Ll(yield*Cfe(BA(o.message))),(a=t?.onTrailer)===null||a===void 0||a.call(t,o.trailer)})}()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function UA(...e){let t=new AbortController,n=e.filter(a=>a!==void 0).concat(t.signal);for(let a of n){if(a.aborted){r.apply(a);break}a.addEventListener("abort",r)}function r(){t.signal.aborted||t.abort(b_(this));for(let a of n)a.removeEventListener("abort",r)}return t}function jA(e){let t=new AbortController,n=()=>{t.abort(new xt("the operation timed out",we.DeadlineExceeded))},r;return e!==void 0&&(e<=0?n():r=setTimeout(n,e)),{signal:t.signal,cleanup:()=>clearTimeout(r)}}function b_(e){if(!e.aborted)return;if(e.reason!==void 0)return e.reason;let t=new Error("This operation was aborted");return t.name="AbortError",t}function gv(){return{get(e){return e.id in this?this[e.id]:e.defaultValue},set(e,t){return this[e.id]=t,this},delete(e){return delete this[e.id],this}}}function yv(e,t,n){let r=typeof t=="string"?t:t.typeName,a=typeof n=="string"?n:n.name;return e.toString().replace(/\/?$/,`/${r}/${a}`)}function x_(e,t){return t instanceof e?t:new e(t)}function zA(e,t){function n(r){return r.done===!0?r:{done:r.done,value:x_(e,r.value)}}return{[Symbol.asyncIterator](){let r=t[Symbol.asyncIterator](),a={next:()=>r.next().then(n)};return r.throw!==void 0&&(a.throw=o=>r.throw(o).then(n)),r.return!==void 0&&(a.return=o=>r.return(o).then(n)),a}}}function wv(e){var t;let n=Object.assign({},e);return(t=n.ignoreUnknownFields)!==null&&t!==void 0||(n.ignoreUnknownFields=!0),n}function bv(e,t,n,r){let a=t?GA(e.I,r):YA(e.I,n);return{parse:(t?GA(e.O,r):YA(e.O,n)).parse,serialize:a.serialize}}function GA(e,t){return{parse(n){try{return e.fromBinary(n,t)}catch(r){let a=r instanceof Error?r.message:String(r);throw new xt(`parse binary: ${a}`,we.InvalidArgument)}},serialize(n){try{return n.toBinary(t)}catch(r){let a=r instanceof Error?r.message:String(r);throw new xt(`serialize binary: ${a}`,we.Internal)}}}}function YA(e,t){var n,r;let a=(n=t?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,o=(r=t?.textDecoder)!==null&&r!==void 0?r:new TextDecoder,s=wv(t);return{parse(l){try{let u=o.decode(l);return e.fromJsonString(u,s)}catch(u){throw xt.from(u,we.InvalidArgument)}},serialize(l){try{let u=l.toJsonString(s);return a.encode(u)}catch(u){throw xt.from(u,we.Internal)}}}}var $fe=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var VA="application/proto",HA="application/json",qA="application/connect+proto",WA="application/connect+json";function XA(e){let t=e?.match($fe);if(!t)return;let n=!!t[1],r=!!t[3];return{stream:n,binary:r}}function fd(e,t,n){if(t&&new Headers(t).forEach((s,l)=>n.metadata.append(l,s)),typeof e!="object"||e==null||Array.isArray(e)||!("code"in e)||typeof e.code!="string")throw n;let r=AA(e.code);if(r===void 0)throw n;let a=e.message;if(a!=null&&typeof a!="string")throw n;let o=new xt(a??"",r,t);if("details"in e&&Array.isArray(e.details))for(let s of e.details){if(s===null||typeof s!="object"||Array.isArray(s)||typeof s.type!="string"||typeof s.value!="string"||"debug"in s&&typeof s.debug!="object")throw n;try{o.details.push({type:s.type,value:Ea.dec(s.value),debug:s.debug})}catch{throw n}}return o}var xv=2;function S_(e){let t=new xt("invalid end stream",we.InvalidArgument),n;try{n=JSON.parse(typeof e=="string"?e:new TextDecoder().decode(e))}catch{throw t}if(typeof n!="object"||n==null||Array.isArray(n))throw t;let r=new Headers;if("metadata"in n){if(typeof n.metadata!="object"||n.metadata==null||Array.isArray(n.metadata))throw t;for(let[o,s]of Object.entries(n.metadata)){if(!Array.isArray(s)||s.some(l=>typeof l!="string"))throw t;for(let l of s)r.append(o,l)}}let a="error"in n?fd(n.error,r,t):void 0;return{metadata:r,error:a}}var hd="Content-Type",KA="Content-Length",Sv="Content-Encoding";var k_="Accept-Encoding";var QA="Connect-Timeout-Ms",kv="Connect-Protocol-Version",ZA="User-Agent";function eL(e){switch(e){case 400:return we.InvalidArgument;case 401:return we.Unauthenticated;case 403:return we.PermissionDenied;case 404:return we.Unimplemented;case 408:return we.DeadlineExceeded;case 409:return we.Aborted;case 412:return we.FailedPrecondition;case 413:return we.ResourceExhausted;case 415:return we.Internal;case 429:return we.Unavailable;case 431:return we.ResourceExhausted;case 502:return we.Unavailable;case 503:return we.Unavailable;case 504:return we.Unavailable;default:return we.Unknown}}function _v(e){let t=new Headers,n=new Headers;return e.forEach((r,a)=>{a.toLowerCase().startsWith("trailer-")?n.set(a.substring(8),r):t.set(a,r)}),[t,n]}var Tv="1";function Pv(e,t,n,r,a){let o=new Headers(r??{});return n!==void 0&&o.set(QA,`${n}`),o.set(hd,e==ne.Unary?t?VA:HA:t?qA:WA),o.set(kv,Tv),a&&o.set(ZA,"connect-es/1.3.0"),o}function Ev(e,t,n){let r=n.get("Content-Type"),a=XA(r);if(t!==200){let o=new xt(`HTTP ${t}`,eL(t),n);if(e==ne.Unary&&a&&!a.binary)return{isUnaryError:!0,unaryError:o};throw o}return{isUnaryError:!1}}var tL="application/";function Lfe(e,t){return t?Ea.enc(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):encodeURIComponent(new TextDecoder().decode(e))}function __(e,t,n){let r=`?connect=v${Tv}`,a=e.header.get(hd);a?.indexOf(tL)===0&&(r+="&encoding="+encodeURIComponent(a.slice(tL.length)));let o=e.header.get(Sv);o!==null&&o!=="identity"&&(r+="&compression="+encodeURIComponent(o),n=!0),n&&(r+="&base64=1"),r+="&message="+Lfe(t,n);let s=e.url+r,l=new Headers(e.header);return[kv,hd,KA,Sv,k_].forEach(u=>l.delete(u)),Object.assign(Object.assign({},e),{init:Object.assign(Object.assign({},e.init),{method:"GET"}),url:s,header:l})}function T_(e){let t=rL(e.next,e.interceptors),[n,r,a]=nL(e),o=Object.assign(Object.assign({},e.req),{message:x_(e.req.method.I,e.req.message),signal:n});return t(o).then(s=>(a(),s),r)}function P_(e){let t=rL(e.next,e.interceptors),[n,r,a]=nL(e),o=Object.assign(Object.assign({},e.req),{message:zA(e.req.method.I,e.req.message),signal:n}),s=!1;return n.addEventListener("abort",function(){var l,u;let c=e.req.message[Symbol.asyncIterator]();s||(l=c.throw)===null||l===void 0||l.call(c,this.reason).catch(()=>{}),(u=c.return)===null||u===void 0||u.call(c).catch(()=>{})}),t(o).then(l=>Object.assign(Object.assign({},l),{message:{[Symbol.asyncIterator](){let u=l.message[Symbol.asyncIterator]();return{next(){return u.next().then(c=>(c.done==!0&&(s=!0,a()),c),r)}}}}}),r)}function nL(e){let{signal:t,cleanup:n}=jA(e.timeoutMs),r=UA(e.signal,t);return[r.signal,function(o){let s=xt.from(t.aborted?b_(t):o);return r.abort(s),n(),Promise.reject(s)},function(){n(),r.abort()}]}function rL(e,t){var n;return(n=t?.concat().reverse().reduce((r,a)=>a(r),e))!==null&&n!==void 0?n:e}function iL(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var pd=function(e){return this instanceof pd?(this.v=e,this):new pd(e)},Ffe=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),a,o=[];return a={},l("next"),l("throw"),l("return",s),a[Symbol.asyncIterator]=function(){return this},a;function s(v){return function(y){return Promise.resolve(y).then(v,p)}}function l(v,y){r[v]&&(a[v]=function(_){return new Promise(function(x,S){o.push([v,_,x,S])>1||u(v,_)})},y&&(a[v]=y(a[v])))}function u(v,y){try{c(r[v](y))}catch(_){m(o[0][3],_)}}function c(v){v.value instanceof pd?Promise.resolve(v.value.v).then(f,p):m(o[0][2],v)}function f(v){u("next",v)}function p(v){u("throw",v)}function m(v,y){v(y),o.shift(),o.length&&u(o[0][0],o[0][1])}};function E_(e){var t;iL();let n=(t=e.useBinaryFormat)!==null&&t!==void 0?t:!1;return{async unary(r,a,o,s,l,u,c){var f;let{serialize:p,parse:m}=bv(a,n,e.jsonOptions,e.binaryOptions);return s=s===void 0?e.defaultTimeoutMs:s<=0?void 0:s,await T_({interceptors:e.interceptors,signal:o,timeoutMs:s,req:{stream:!1,service:r,method:a,url:yv(e.baseUrl,r,a),init:{method:"POST",credentials:(f=e.credentials)!==null&&f!==void 0?f:"same-origin",redirect:"error",mode:"cors"},header:Pv(a.kind,n,s,l,!1),contextValues:c??gv(),message:u},next:async v=>{var y;let _=e.useHttpGet===!0&&a.idempotency===qc.NoSideEffects,x=null;_?v=__(v,p(v.message),n):x=p(v.message);let k=await((y=e.fetch)!==null&&y!==void 0?y:globalThis.fetch)(v.url,Object.assign(Object.assign({},v.init),{headers:v.header,signal:v.signal,body:x})),{isUnaryError:P,unaryError:C}=Ev(a.kind,k.status,k.headers);if(P)throw fd(await k.json(),g_(..._v(k.headers)),C);let[A,L]=_v(k.headers);return{stream:!1,service:r,method:a,header:A,message:n?m(new Uint8Array(await k.arrayBuffer())):a.O.fromJson(await k.json(),wv(e.jsonOptions)),trailer:L}}})},async stream(r,a,o,s,l,u,c){var f;let{serialize:p,parse:m}=bv(a,n,e.jsonOptions,e.binaryOptions);function v(_,x,S){return Ffe(this,arguments,function*(){let P=y_(_).getReader(),C=!1;for(;;){let A=yield pd(P.read());if(A.done)break;let{flags:L,data:$}=A.value;if((L&xv)===xv){C=!0;let E=S_($);if(E.error){let R=E.error;throw S.forEach((D,F)=>{R.metadata.append(F,D)}),R}E.metadata.forEach((R,D)=>x.set(D,R));continue}yield yield pd(m($))}if(!C)throw"missing EndStreamResponse"})}async function y(_){if(a.kind!=ne.ServerStreaming)throw"The fetch API does not support streaming request bodies";let x=await _[Symbol.asyncIterator]().next();if(x.done==!0)throw"missing request message";return w_(0,p(x.value))}return s=s===void 0?e.defaultTimeoutMs:s<=0?void 0:s,await P_({interceptors:e.interceptors,timeoutMs:s,signal:o,req:{stream:!0,service:r,method:a,url:yv(e.baseUrl,r,a),init:{method:"POST",credentials:(f=e.credentials)!==null&&f!==void 0?f:"same-origin",redirect:"error",mode:"cors"},header:Pv(a.kind,n,s,l,!1),contextValues:c??gv(),message:u},next:async _=>{var x;let k=await((x=e.fetch)!==null&&x!==void 0?x:globalThis.fetch)(_.url,Object.assign(Object.assign({},_.init),{headers:_.header,signal:_.signal,body:await y(_.message)}));if(Ev(a.kind,k.status,k.headers),k.body===null)throw"missing response body";let P=new Headers;return Object.assign(Object.assign({},_),{header:k.headers,trailer:P,message:v(k.body,P,k.headers)})}})}}}var Bfe="https://demo.lunabrain.com",md=E_({baseUrl:`${Bfe}/api`||"error"}),uye=ko(RA,md),aL=ko(MA,md),cye=ko(DA,md),dye=ko(NA,md),fye=ko($A,md);function Jfe(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=Math.random()*16|0,n=e==="x"?t:t&3|8;return n.toString(16)})}function _o(e,t){return new Xn({id:Jfe(),tags:t,type:{case:"data",value:new sd({type:{case:"url",value:{url:e}}})}})}var De=nn(Bi(),1),uL=()=>{let[e,t]=(0,hr.useState)(void 0),[n,r]=(0,hr.useState)(document.title||window.location.href),[a,o]=(0,hr.useState)(void 0),[s,l]=(0,hr.useState)(["browser/save"]),[u,c]=(0,hr.useState)(window.location.href),[f,p]=(0,hr.useState)(""),[m,v]=(0,hr.useState)([]),[y,_]=(0,hr.useState)("tags"),[x,S]=(0,hr.useState)(void 0);(0,hr.useEffect)(()=>{let R=D=>{};return document.addEventListener("keydown",R),document.addEventListener("mouseup",k),()=>{document.removeEventListener("keydown",R),document.removeEventListener("mouseup",k)}},[]);let k=()=>{let R=window.getSelection()?.toString();R&&p(R)},P=R=>{l([...s,R]),o("")},C=()=>{f&&(v([...m,f]),p(""))},A=async()=>{S(void 0);try{let R=await aL.analyze(_o(u,s));console.log(R)}catch(R){console.error(R)}},L=async()=>{t(void 0);let R=_o(u,s);chrome.runtime.sendMessage({action:zp,data:R.toJson()},D=>{console.log("content","save response",D)})},$=R=>{v(m.filter((D,F)=>F!==R))},E=R=>{v(s.filter((D,F)=>F!==R))};return(0,De.jsxs)("div",{id:"floating-panel",children:[(0,De.jsx)("input",{type:"text",value:n,onChange:R=>r(R.target.value)}),(0,De.jsxs)("div",{className:"tablist",children:[(0,De.jsx)("button",{onClick:()=>_("tags"),children:"Tags"}),(0,De.jsx)("button",{onClick:()=>_("annotations"),children:"Annotations"})]}),(0,De.jsxs)("div",{children:[y==="analyze"&&(0,De.jsxs)("div",{children:[(0,De.jsx)("button",{className:"button-primary",onClick:A,children:"Analyze"}),x&&(0,De.jsx)("ul",{children:x.map((R,D)=>R.tags.map((F,j)=>(0,De.jsx)("button",{onClick:()=>P(F),children:F},j)))})]}),y==="tags"&&(0,De.jsxs)("div",{children:[(0,De.jsx)("input",{type:"text",value:a,placeholder:"tag",onChange:R=>o(R.target.value)}),(0,De.jsx)("button",{className:"button-primary",onClick:()=>a&&P(a),children:"Add"}),s.length>0&&(0,De.jsx)("table",{className:"table",children:(0,De.jsx)("tbody",{children:s.map((R,D)=>(0,De.jsx)("tr",{className:"table-row",children:(0,De.jsxs)("td",{className:"table-cell",children:[R,(0,De.jsx)("button",{className:"button-primary",onClick:()=>E(D),children:"Remove"})]})},D))})})]}),y==="annotations"&&(0,De.jsxs)("div",{children:[(0,De.jsx)("textarea",{rows:4,value:f,onChange:R=>p(R.target.value)}),(0,De.jsx)("button",{className:"button-primary",onClick:C,children:"Add"}),m.length>0&&(0,De.jsx)("table",{className:"table",children:(0,De.jsx)("tbody",{children:m.map((R,D)=>(0,De.jsx)("tr",{className:"table-row",children:(0,De.jsxs)("td",{className:"table-cell",children:[R,(0,De.jsx)("button",{className:"button-primary",onClick:()=>$(D),children:"Remove"})]})},D))})})]})]}),(0,De.jsx)("div",{style:{display:"flex",gap:"10px"},children:(0,De.jsx)("button",{className:"button-primary",onClick:L,children:"Save"})}),e&&(0,De.jsx)("div",{style:{color:"red"},children:e})]})};var Mn=nn(Bi(),1),O_=Y$([]),Hfe={padding:"10px",backgroundColor:"white",border:"1px solid #ccc",color:"black",maxHeight:"300px",overflowY:"auto",zIndex:9999,right:"10px",bottom:"10px",position:"fixed"},qfe=e=>{switch(e.type.case){case"data":let t=e.type.value;switch(t.type.case){case"url":return t.type.value.url}break}return"unknown"},cL=()=>{let[e,t]=(0,Fl.useState)(!1),[n,r]=(0,Fl.useState)(void 0),[a,o]=jp(O_);(0,Fl.useEffect)(()=>{let u=c=>{c.ctrlKey&&c.key==="l"&&(c.preventDefault(),t(!e))};return document.addEventListener("keydown",u),()=>{document.removeEventListener("keydown",u)}},[e]),(0,Fl.useEffect)(()=>{chrome.runtime.sendMessage({action:X$,data:"TODO make url?"},u=>{u.data&&(r(u.data),t(!0))})},[]);let s=()=>{if(!n)return;let u=new URL(n.from),c=_o(n.to,["browser/history",u.host]);chrome.runtime.sendMessage({action:zp,data:c},f=>{t(!1)}),r(void 0)},l=()=>{t(!1),r(void 0)};return a.length===0&&!e?null:(0,Mn.jsxs)("div",{id:"floating-panel",style:Hfe,children:[(0,Mn.jsx)("ul",{children:a.map(u=>(0,Mn.jsxs)("li",{children:[(0,Mn.jsx)("button",{className:"btn",style:{userSelect:"none"},onClick:()=>{o(c=>c.filter(f=>f.id!==u.id))},children:"X"}),qfe(u)]}))}),n?(0,Mn.jsxs)(Mn.Fragment,{children:[(0,Mn.jsx)("h5",{children:"Save this page?"}),(0,Mn.jsxs)("div",{className:"flex flex-row",children:[(0,Mn.jsx)("button",{className:"btn",onClick:s,children:"Yes"}),(0,Mn.jsx)("button",{className:"btn",onClick:l,children:"No"})]})]}):(0,Mn.jsx)(uL,{})]})};var et=nn(Bi(),1),Wfe=e=>{let t=new Map,n=0,r=e.nodes.map((o,s)=>{let u=new URL(o.url||"").hostname;t.has(u)||t.set(u,n++);let c=t.get(u);return{id:s,group:c,content:o.title||o.url,start:new Date(o.open||0),end:new Date(o.close||0)}});return{items:Array.from(t.entries()).map(([o,s])=>({id:s,content:o})).sort((o,s)=>{let l=r.filter(p=>p.group===o.id),u=r.filter(p=>p.group===s.id),c=Math.max(...l.map(p=>p.start.getTime()));return Math.max(...u.map(p=>p.start.getTime()))-c}).map((o,s)=>{let l=r.filter(u=>u.group===o.id);return{id:o.id,content:o.content,start:Math.max(...l.map(u=>u.start.getTime())),group:1}}),groups:[{id:1,content:"Visits"}]}},dL=()=>{let[e,t]=(0,Xr.useState)(void 0),[n,r]=(0,Xr.useState)([]),[a,o]=jp(O_),[s,l]=(0,Xr.useState)(void 0),[u,c]=(0,Xr.useState)(15),f=async()=>{let y=await chrome.runtime.sendMessage({action:K$});if(console.log(y),y&&y.data){let _=Nl.fromJsonString(y.data);console.log(_),l(_)}},p=async()=>{await chrome.runtime.sendMessage({action:Q$}),l(void 0)};(0,Xr.useEffect)(()=>{f()},[]);let m=s?.nodes.filter(y=>e?new URL(y.url||"").hostname===e:!0).sort((y,_)=>(_.close||0)-(y.close||0)),v=(0,Xr.useRef)(null);return(0,Xr.useEffect)(()=>{if(v.current&&s){let y=Wfe(s),_=new J$(v.current,y.items,y.groups,{height:"100%"}),x=new Date(new Date().getTime()+60*1e3),S=new Date(x.getTime()-60*u*1e3);return _.setWindow(S,x,{animation:!0}),_.on("select",k=>{t(y.items.find(P=>P.id===k.items[0]).content)}),()=>{_.destroy()}}},[s]),(0,et.jsxs)("div",{style:{height:"500px",width:"100%"},children:[(0,et.jsx)("div",{ref:v,style:{width:"100%",height:"100%"}}),(0,et.jsx)("input",{type:"number",value:u,onChange:y=>c(parseInt(y.target.value))}),(0,et.jsx)("button",{className:"btn",onClick:f,children:"reload"}),(0,et.jsx)("button",{className:"btn",onClick:p,children:"delete"}),e&&(0,et.jsxs)(et.Fragment,{children:[(0,et.jsx)("button",{onClick:()=>t(void 0),children:"clear"}),(0,et.jsxs)("p",{children:["visits to: ",e]})]}),(0,et.jsxs)("table",{children:[(0,et.jsx)("thead",{children:(0,et.jsxs)("tr",{children:[(0,et.jsx)("th",{children:"Add"}),(0,et.jsx)("th",{children:"Domain"}),(0,et.jsx)("th",{children:"URL"})]})}),(0,et.jsx)("tbody",{children:m&&m.map(y=>{let _=new URL(y.url||"");return(0,et.jsxs)("tr",{children:[(0,et.jsx)("td",{children:(0,et.jsx)(lk,{className:"h-3 w-3",onClick:()=>{o(x=>y.url?[...x,_o(y.url,[])]:x)}})}),(0,et.jsx)("td",{children:_.hostname}),(0,et.jsx)("td",{children:(0,et.jsx)("a",{href:y.url,target:"_blank",children:y.url})})]},y.id)})})]})]})};var vd=nn(Bi(),1),pL=document.createElement("div");document.body.appendChild(pL);var Xfe=hL.default.createRoot(pL);Xfe.render((0,vd.jsxs)(fL.default.StrictMode,{children:[(0,vd.jsx)(cL,{}),(0,vd.jsx)(dL,{})]}));})(); +`:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(a){case 0:s=o,a=1;break;case 1:n[r++]=s<<2|(o&48)>>4,s=o,a=2;break;case 2:n[r++]=(s&15)<<4|(o&60)>>2,s=o,a=3;break;case 3:n[r++]=(s&3)<<6|o,a=0;break}}if(a==1)throw Error("invalid base64 string.");return n.subarray(0,r)},enc(e){let t="",n=0,r,a=0;for(let o=0;o>2],a=(r&3)<<4,n=1;break;case 1:t+=Ai[a|r>>4],a=(r&15)<<2,n=2;break;case 2:t+=Ai[a|r>>6],t+=Ai[r&63],n=0;break}return n&&(t+=Ai[a],t+="=",n==1&&(t+="=")),t}};var fA={ignoreUnknownFields:!1},hA={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function vfe(e){return e?Object.assign(Object.assign({},fA),e):fA}function gfe(e){return e?Object.assign(Object.assign({},hA),e):hA}function nm(e){let t=e(yfe,pA);return{makeReadOptions:vfe,makeWriteOptions:gfe,readMessage(n,r,a,o){if(r==null||Array.isArray(r)||typeof r!="object")throw new Error(`cannot decode message ${n.typeName} from JSON: ${this.debug(r)}`);o=o??new n;let s={};for(let[l,u]of Object.entries(r)){let c=n.fields.findJsonName(l);if(!c){if(!a.ignoreUnknownFields)throw new Error(`cannot decode message ${n.typeName} from JSON: key "${l}" is unknown`);continue}let f=c.localName,p=o;if(c.oneof){if(u===null&&c.kind=="scalar")continue;let m=s[c.oneof.localName];if(m)throw new Error(`cannot decode message ${n.typeName} from JSON: multiple keys for oneof "${c.oneof.name}" present: "${m}", "${l}"`);s[c.oneof.localName]=l,p=p[c.oneof.localName]={case:f},f="value"}if(c.repeated){if(u===null)continue;if(!Array.isArray(u))throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`);let m=p[f];for(let v of u){if(v===null)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(v)}`);let y;switch(c.kind){case"message":y=c.T.fromJson(v,a);break;case"enum":if(y=wk(c.T,v,a.ignoreUnknownFields),y===void 0)continue;break;case"scalar":try{y=Yc(c.T,v,c.L)}catch(_){let x=`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(v)}`;throw _ instanceof Error&&_.message.length>0&&(x+=`: ${_.message}`),new Error(x)}break}m.push(y)}}else if(c.kind=="map"){if(u===null)continue;if(Array.isArray(u)||typeof u!="object")throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`);let m=p[f];for(let[v,y]of Object.entries(u)){if(y===null)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: map value null`);let _;switch(c.V.kind){case"message":_=c.V.T.fromJson(y,a);break;case"enum":if(_=wk(c.V.T,y,a.ignoreUnknownFields),_===void 0)continue;break;case"scalar":try{_=Yc(c.V.T,y,fr.BIGINT)}catch(x){let S=`cannot decode map value for field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`;throw x instanceof Error&&x.message.length>0&&(S+=`: ${x.message}`),new Error(S)}break}try{m[Yc(c.K,c.K==z.BOOL?v=="true"?!0:v=="false"?!1:v:v,fr.BIGINT).toString()]=_}catch(x){let S=`cannot decode map key for field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`;throw x instanceof Error&&x.message.length>0&&(S+=`: ${x.message}`),new Error(S)}}}else switch(c.kind){case"message":let m=c.T;if(u===null&&m.typeName!="google.protobuf.Value"){if(c.oneof)throw new Error(`cannot decode field ${n.typeName}.${c.name} from JSON: null is invalid for oneof field "${l}"`);continue}p[f]instanceof M?p[f].fromJson(u,a):(p[f]=m.fromJson(u,a),m.fieldWrapper&&!c.oneof&&(p[f]=m.fieldWrapper.unwrapField(p[f])));break;case"enum":let v=wk(c.T,u,a.ignoreUnknownFields);v!==void 0&&(p[f]=v);break;case"scalar":try{p[f]=Yc(c.T,u,c.L)}catch(y){let _=`cannot decode field ${n.typeName}.${c.name} from JSON: ${this.debug(u)}`;throw y instanceof Error&&y.message.length>0&&(_+=`: ${y.message}`),new Error(_)}break}}return o},writeMessage(n,r){let a=n.getType(),o={},s;try{for(let l of a.fields.byMember()){let u;if(l.kind=="oneof"){let c=n[l.localName];if(c.value===void 0)continue;if(s=l.findField(c.case),!s)throw"oneof case not found: "+c.case;u=t(s,c.value,r)}else s=l,u=t(s,n[s.localName],r);u!==void 0&&(o[r.useProtoFieldName?s.name:s.jsonName]=u)}}catch(l){let u=s?`cannot encode field ${a.typeName}.${s.name} to JSON`:`cannot encode message ${a.typeName} to JSON`,c=l instanceof Error?l.message:String(l);throw new Error(u+(c.length>0?`: ${c}`:""))}return o},readScalar:Yc,writeScalar:pA,debug:mA}}function mA(e){if(e===null)return"null";switch(typeof e){case"object":return Array.isArray(e)?"array":"object";case"string":return e.length>100?"string":`"${e.split('"').join('\\"')}"`;default:return String(e)}}function Yc(e,t,n){switch(e){case z.DOUBLE:case z.FLOAT:if(t===null)return 0;if(t==="NaN")return Number.NaN;if(t==="Infinity")return Number.POSITIVE_INFINITY;if(t==="-Infinity")return Number.NEGATIVE_INFINITY;if(t===""||typeof t=="string"&&t.trim().length!==t.length||typeof t!="string"&&typeof t!="number")break;let r=Number(t);if(Number.isNaN(r)||!Number.isFinite(r))break;return e==z.FLOAT&&Gp(r),r;case z.INT32:case z.FIXED32:case z.SFIXED32:case z.SINT32:case z.UINT32:if(t===null)return 0;let a;if(typeof t=="number"?a=t:typeof t=="string"&&t.length>0&&t.trim().length===t.length&&(a=Number(t)),a===void 0)break;return e==z.UINT32?zc(a):al(a),a;case z.INT64:case z.SFIXED64:case z.SINT64:if(t===null)return be.zero;if(typeof t!="number"&&typeof t!="string")break;let o=be.parse(t);return n?o.toString():o;case z.FIXED64:case z.UINT64:if(t===null)return be.zero;if(typeof t!="number"&&typeof t!="string")break;let s=be.uParse(t);return n?s.toString():s;case z.BOOL:if(t===null)return!1;if(typeof t!="boolean")break;return t;case z.STRING:if(t===null)return"";if(typeof t!="string")break;try{encodeURIComponent(t)}catch{throw new Error("invalid UTF8")}return t;case z.BYTES:if(t===null||t==="")return new Uint8Array(0);if(typeof t!="string")break;return Ea.dec(t)}throw new Error}function wk(e,t,n){if(t===null)return 0;switch(typeof t){case"number":if(Number.isInteger(t))return t;break;case"string":let r=e.findName(t);if(r||n)return r?.no;break}throw new Error(`cannot decode enum ${e.typeName} from JSON: ${mA(t)}`)}function yfe(e,t,n,r){var a;if(t===void 0)return t;if(t===0&&!n)return;if(r)return t;if(e.typeName=="google.protobuf.NullValue")return null;let o=e.findNumber(t);return(a=o?.name)!==null&&a!==void 0?a:t}function pA(e,t,n){if(t!==void 0)switch(e){case z.INT32:case z.SFIXED32:case z.SINT32:case z.FIXED32:case z.UINT32:return st(typeof t=="number"),t!=0||n?t:void 0;case z.FLOAT:case z.DOUBLE:return st(typeof t=="number"),Number.isNaN(t)?"NaN":t===Number.POSITIVE_INFINITY?"Infinity":t===Number.NEGATIVE_INFINITY?"-Infinity":t!==0||n?t:void 0;case z.STRING:return st(typeof t=="string"),t.length>0||n?t:void 0;case z.BOOL:return st(typeof t=="boolean"),t||n?t:void 0;case z.UINT64:case z.FIXED64:case z.INT64:case z.SFIXED64:case z.SINT64:return st(typeof t=="bigint"||typeof t=="string"||typeof t=="number"),n||t!=0?t.toString(10):void 0;case z.BYTES:return st(t instanceof Uint8Array),n||t.byteLength>0?Ea.enc(t):void 0}}function vA(){return nm((e,t)=>function(r,a,o){if(r.kind=="map"){let s={};switch(r.V.kind){case"scalar":for(let[u,c]of Object.entries(a)){let f=t(r.V.T,c,!0);st(f!==void 0),s[u.toString()]=f}break;case"message":for(let[u,c]of Object.entries(a))s[u.toString()]=c.toJson(o);break;case"enum":let l=r.V.T;for(let[u,c]of Object.entries(a)){st(c===void 0||typeof c=="number");let f=e(l,c,!0,o.enumAsInteger);st(f!==void 0),s[u.toString()]=f}break}return o.emitDefaultValues||Object.keys(s).length>0?s:void 0}else if(r.repeated){let s=[];switch(r.kind){case"scalar":for(let l=0;l0?s:void 0}else switch(r.kind){case"scalar":return t(r.T,a,!!r.oneof||r.opt||o.emitDefaultValues);case"enum":return e(r.T,a,!!r.oneof||r.opt||o.emitDefaultValues,o.enumAsInteger);case"message":return a!==void 0?So(r.T,a).toJson(o):void 0}})}function im(){return{setEnumType:fk,initPartial(e,t){if(e===void 0)return;let n=t.getType();for(let r of n.fields.byMember()){let a=r.localName,o=t,s=e;if(s[a]!==void 0)switch(r.kind){case"oneof":let l=s[a].case;if(l===void 0)continue;let u=r.findField(l),c=s[a].value;u&&u.kind=="message"&&!(c instanceof u.T)?c=new u.T(c):u&&u.kind==="scalar"&&u.T===z.BYTES&&(c=Vc(c)),o[a]={case:l,value:c};break;case"scalar":case"enum":let f=s[a];r.T===z.BYTES&&(f=r.repeated?f.map(Vc):Vc(f)),o[a]=f;break;case"map":switch(r.V.kind){case"scalar":case"enum":if(r.V.T===z.BYTES)for(let[v,y]of Object.entries(s[a]))o[a][v]=Vc(y);else Object.assign(o[a],s[a]);break;case"message":let m=r.V.T;for(let v of Object.keys(s[a])){let y=s[a][v];m.fieldWrapper||(y=new m(y)),o[a][v]=y}break}break;case"message":let p=r.T;if(r.repeated)o[a]=s[a].map(m=>m instanceof p?m:new p(m));else if(s[a]!==void 0){let m=s[a];p.fieldWrapper?p.typeName==="google.protobuf.BytesValue"?o[a]=Vc(m):o[a]=m:o[a]=m instanceof p?m:new p(m)}break}}},equals(e,t,n){return t===n?!0:!t||!n?!1:e.fields.byMember().every(r=>{let a=t[r.localName],o=n[r.localName];if(r.repeated){if(a.length!==o.length)return!1;switch(r.kind){case"message":return a.every((s,l)=>r.T.equals(s,o[l]));case"scalar":return a.every((s,l)=>Ni(r.T,s,o[l]));case"enum":return a.every((s,l)=>Ni(z.INT32,s,o[l]))}throw new Error(`repeated cannot contain ${r.kind}`)}switch(r.kind){case"message":return r.T.equals(a,o);case"enum":return Ni(z.INT32,a,o);case"scalar":return Ni(r.T,a,o);case"oneof":if(a.case!==o.case)return!1;let s=r.findField(a.case);if(s===void 0)return!0;switch(s.kind){case"message":return s.T.equals(a.value,o.value);case"enum":return Ni(z.INT32,a.value,o.value);case"scalar":return Ni(s.T,a.value,o.value)}throw new Error(`oneof cannot contain ${s.kind}`);case"map":let l=Object.keys(a).concat(Object.keys(o));switch(r.V.kind){case"message":let u=r.V.T;return l.every(f=>u.equals(a[f],o[f]));case"enum":return l.every(f=>Ni(z.INT32,a[f],o[f]));case"scalar":let c=r.V.T;return l.every(f=>Ni(c,a[f],o[f]))}break}})},clone(e){let t=e.getType(),n=new t,r=n;for(let a of t.fields.byMember()){let o=e[a.localName],s;if(a.repeated)s=o.map(rm);else if(a.kind=="map"){s=r[a.localName];for(let[l,u]of Object.entries(o))s[l]=rm(u)}else a.kind=="oneof"?s=a.findField(o.case)?{case:o.case,value:rm(o.value)}:{case:void 0}:s=rm(o);r[a.localName]=s}return n}}}function rm(e){if(e===void 0)return e;if(e instanceof M)return e.clone();if(e instanceof Uint8Array){let t=new Uint8Array(e.byteLength);return t.set(e),t}return e}function Vc(e){return e instanceof Uint8Array?e:new Uint8Array(e)}var ll=class{constructor(t,n){this._fields=t,this._normalizer=n}findJsonName(t){if(!this.jsonNames){let n={};for(let r of this.list())n[r.jsonName]=n[r.name]=r;this.jsonNames=n}return this.jsonNames[t]}find(t){if(!this.numbers){let n={};for(let r of this.list())n[r.no]=r;this.numbers=n}return this.numbers[t]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((t,n)=>t.no-n.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];let t=this.members,n;for(let r of this.list())r.oneof?r.oneof!==n&&(n=r.oneof,t.push(n)):t.push(r)}return this.members}};function Hc(e,t){let n=yA(e);return t?n:Sfe(xfe(n))}function gA(e){return Hc(e,!1)}var am=yA;function yA(e){let t=!1,n=[];for(let r=0;r`${e}$`,xfe=e=>bfe.has(e)?wA(e):e,Sfe=e=>wfe.has(e)?wA(e):e;var ul=class{constructor(t){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.default=void 0,this.fields=[],this.name=t,this.localName=gA(t)}addField(t){st(t.oneof===this,`field ${t.name} not one of ${this.name}`),this.fields.push(t)}findField(t){if(!this._lookup){this._lookup=Object.create(null);for(let n=0;n0?`: ${l}`:""))}return n.writeUnknownFields&&this.writeUnknownFields(e,t),t}})}function xA(){return nm((e,t)=>function(r,a,o){if(r.kind=="map"){let s={};switch(r.V.kind){case"scalar":for(let[u,c]of Object.entries(a)){let f=t(r.V.T,c,!0);st(f!==void 0),s[u.toString()]=f}break;case"message":for(let[u,c]of Object.entries(a))s[u.toString()]=c.toJson(o);break;case"enum":let l=r.V.T;for(let[u,c]of Object.entries(a)){st(c===void 0||typeof c=="number");let f=e(l,c,!0,o.enumAsInteger);st(f!==void 0),s[u.toString()]=f}break}return o.emitDefaultValues||Object.keys(s).length>0?s:void 0}else if(r.repeated){let s=[];switch(r.kind){case"scalar":for(let l=0;l0?s:void 0}else{if(a===void 0){if(!r.oneof&&!r.opt)throw"required field not set";return}switch(r.kind){case"scalar":return t(r.T,a,!0);case"enum":return e(r.T,a,!0,o.enumAsInteger);case"message":return So(r.T,a).toJson(o)}}})}var N=Yp("proto2",xA(),bA(),Object.assign(Object.assign({},im()),{newFieldList(e){return new ll(e,_fe)},initFields(e){for(let t of e.getType().fields.byMember()){let n=t.localName,r=e;if(t.repeated){r[n]=[];continue}switch(t.kind){case"oneof":r[n]={case:void 0};break;case"map":r[n]={};break;case"scalar":case"enum":case"message":break}}}}));function _fe(e){var t,n,r,a,o;let s=[],l;for(let u of typeof e=="function"?e():e){let c=u;if(c.localName=Hc(u.name,u.oneof!==void 0),c.jsonName=(t=u.jsonName)!==null&&t!==void 0?t:am(u.name),c.repeated=(n=u.repeated)!==null&&n!==void 0?n:!1,u.kind=="scalar"&&(c.L=(r=u.L)!==null&&r!==void 0?r:fr.BIGINT),u.oneof!==void 0){let f=typeof u.oneof=="string"?u.oneof:u.oneof.name;(!l||l.name!=f)&&(l=new ul(f)),c.oneof=l,l.addField(c)}u.kind=="message"&&(c.delimited=(a=u.delimited)!==null&&a!==void 0?a:!1),c.packed=(o=u.packed)!==null&&o!==void 0?o:!1,s.push(c)}return s}var ne;(function(e){e[e.Unary=0]="Unary",e[e.ServerStreaming=1]="ServerStreaming",e[e.ClientStreaming=2]="ClientStreaming",e[e.BiDiStreaming=3]="BiDiStreaming"})(ne||(ne={}));var qc;(function(e){e[e.NoSideEffects=1]="NoSideEffects",e[e.Idempotent=2]="Idempotent"})(qc||(qc={}));var Oa;(function(e){e[e.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",e[e.EDITION_PROTO2=998]="EDITION_PROTO2",e[e.EDITION_PROTO3=999]="EDITION_PROTO3",e[e.EDITION_2023=1e3]="EDITION_2023",e[e.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",e[e.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",e[e.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",e[e.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",e[e.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY"})(Oa||(Oa={}));N.util.setEnumType(Oa,"google.protobuf.Edition",[{no:0,name:"EDITION_UNKNOWN"},{no:998,name:"EDITION_PROTO2"},{no:999,name:"EDITION_PROTO3"},{no:1e3,name:"EDITION_2023"},{no:1,name:"EDITION_1_TEST_ONLY"},{no:2,name:"EDITION_2_TEST_ONLY"},{no:99997,name:"EDITION_99997_TEST_ONLY"},{no:99998,name:"EDITION_99998_TEST_ONLY"},{no:99999,name:"EDITION_99999_TEST_ONLY"}]);var Wc=class e extends M{constructor(t){super(),this.file=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Wc.runtime=N;Wc.typeName="google.protobuf.FileDescriptorSet";Wc.fields=N.util.newFieldList(()=>[{no:1,name:"file",kind:"message",T:cl,repeated:!0}]);var cl=class e extends M{constructor(t){super(),this.dependency=[],this.publicDependency=[],this.weakDependency=[],this.messageType=[],this.enumType=[],this.service=[],this.extension=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};cl.runtime=N;cl.typeName="google.protobuf.FileDescriptorProto";cl.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"package",kind:"scalar",T:9,opt:!0},{no:3,name:"dependency",kind:"scalar",T:9,repeated:!0},{no:10,name:"public_dependency",kind:"scalar",T:5,repeated:!0},{no:11,name:"weak_dependency",kind:"scalar",T:5,repeated:!0},{no:4,name:"message_type",kind:"message",T:qr,repeated:!0},{no:5,name:"enum_type",kind:"message",T:Li,repeated:!0},{no:6,name:"service",kind:"message",T:yl,repeated:!0},{no:7,name:"extension",kind:"message",T:Ca,repeated:!0},{no:8,name:"options",kind:"message",T:bl,opt:!0},{no:9,name:"source_code_info",kind:"message",T:Rl,opt:!0},{no:12,name:"syntax",kind:"scalar",T:9,opt:!0},{no:14,name:"edition",kind:"enum",T:N.getEnumType(Oa),opt:!0}]);var qr=class e extends M{constructor(t){super(),this.field=[],this.extension=[],this.nestedType=[],this.enumType=[],this.extensionRange=[],this.oneofDecl=[],this.reservedRange=[],this.reservedName=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};qr.runtime=N;qr.typeName="google.protobuf.DescriptorProto";qr.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"field",kind:"message",T:Ca,repeated:!0},{no:6,name:"extension",kind:"message",T:Ca,repeated:!0},{no:3,name:"nested_type",kind:"message",T:qr,repeated:!0},{no:4,name:"enum_type",kind:"message",T:Li,repeated:!0},{no:5,name:"extension_range",kind:"message",T:dl,repeated:!0},{no:8,name:"oneof_decl",kind:"message",T:ml,repeated:!0},{no:7,name:"options",kind:"message",T:xl,opt:!0},{no:9,name:"reserved_range",kind:"message",T:fl,repeated:!0},{no:10,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var dl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};dl.runtime=N;dl.typeName="google.protobuf.DescriptorProto.ExtensionRange";dl.fields=N.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:hl,opt:!0}]);var fl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};fl.runtime=N;fl.typeName="google.protobuf.DescriptorProto.ReservedRange";fl.fields=N.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var hl=class e extends M{constructor(t){super(),this.uninterpretedOption=[],this.declaration=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};hl.runtime=N;hl.typeName="google.protobuf.ExtensionRangeOptions";hl.fields=N.util.newFieldList(()=>[{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0},{no:2,name:"declaration",kind:"message",T:pl,repeated:!0},{no:50,name:"features",kind:"message",T:gn,opt:!0},{no:3,name:"verification",kind:"enum",T:N.getEnumType(Xc),opt:!0,default:Xc.UNVERIFIED}]);var Xc;(function(e){e[e.DECLARATION=0]="DECLARATION",e[e.UNVERIFIED=1]="UNVERIFIED"})(Xc||(Xc={}));N.util.setEnumType(Xc,"google.protobuf.ExtensionRangeOptions.VerificationState",[{no:0,name:"DECLARATION"},{no:1,name:"UNVERIFIED"}]);var pl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};pl.runtime=N;pl.typeName="google.protobuf.ExtensionRangeOptions.Declaration";pl.fields=N.util.newFieldList(()=>[{no:1,name:"number",kind:"scalar",T:5,opt:!0},{no:2,name:"full_name",kind:"scalar",T:9,opt:!0},{no:3,name:"type",kind:"scalar",T:9,opt:!0},{no:5,name:"reserved",kind:"scalar",T:8,opt:!0},{no:6,name:"repeated",kind:"scalar",T:8,opt:!0}]);var Ca=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Ca.runtime=N;Ca.typeName="google.protobuf.FieldDescriptorProto";Ca.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:3,name:"number",kind:"scalar",T:5,opt:!0},{no:4,name:"label",kind:"enum",T:N.getEnumType(sm),opt:!0},{no:5,name:"type",kind:"enum",T:N.getEnumType(om),opt:!0},{no:6,name:"type_name",kind:"scalar",T:9,opt:!0},{no:2,name:"extendee",kind:"scalar",T:9,opt:!0},{no:7,name:"default_value",kind:"scalar",T:9,opt:!0},{no:9,name:"oneof_index",kind:"scalar",T:5,opt:!0},{no:10,name:"json_name",kind:"scalar",T:9,opt:!0},{no:8,name:"options",kind:"message",T:Sl,opt:!0},{no:17,name:"proto3_optional",kind:"scalar",T:8,opt:!0}]);var om;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.GROUP=10]="GROUP",e[e.MESSAGE=11]="MESSAGE",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.ENUM=14]="ENUM",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(om||(om={}));N.util.setEnumType(om,"google.protobuf.FieldDescriptorProto.Type",[{no:1,name:"TYPE_DOUBLE"},{no:2,name:"TYPE_FLOAT"},{no:3,name:"TYPE_INT64"},{no:4,name:"TYPE_UINT64"},{no:5,name:"TYPE_INT32"},{no:6,name:"TYPE_FIXED64"},{no:7,name:"TYPE_FIXED32"},{no:8,name:"TYPE_BOOL"},{no:9,name:"TYPE_STRING"},{no:10,name:"TYPE_GROUP"},{no:11,name:"TYPE_MESSAGE"},{no:12,name:"TYPE_BYTES"},{no:13,name:"TYPE_UINT32"},{no:14,name:"TYPE_ENUM"},{no:15,name:"TYPE_SFIXED32"},{no:16,name:"TYPE_SFIXED64"},{no:17,name:"TYPE_SINT32"},{no:18,name:"TYPE_SINT64"}]);var sm;(function(e){e[e.OPTIONAL=1]="OPTIONAL",e[e.REPEATED=3]="REPEATED",e[e.REQUIRED=2]="REQUIRED"})(sm||(sm={}));N.util.setEnumType(sm,"google.protobuf.FieldDescriptorProto.Label",[{no:1,name:"LABEL_OPTIONAL"},{no:3,name:"LABEL_REPEATED"},{no:2,name:"LABEL_REQUIRED"}]);var ml=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};ml.runtime=N;ml.typeName="google.protobuf.OneofDescriptorProto";ml.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"options",kind:"message",T:_l,opt:!0}]);var Li=class e extends M{constructor(t){super(),this.value=[],this.reservedRange=[],this.reservedName=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Li.runtime=N;Li.typeName="google.protobuf.EnumDescriptorProto";Li.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"value",kind:"message",T:gl,repeated:!0},{no:3,name:"options",kind:"message",T:Tl,opt:!0},{no:4,name:"reserved_range",kind:"message",T:vl,repeated:!0},{no:5,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var vl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};vl.runtime=N;vl.typeName="google.protobuf.EnumDescriptorProto.EnumReservedRange";vl.fields=N.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var gl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};gl.runtime=N;gl.typeName="google.protobuf.EnumValueDescriptorProto";gl.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"number",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:Pl,opt:!0}]);var yl=class e extends M{constructor(t){super(),this.method=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};yl.runtime=N;yl.typeName="google.protobuf.ServiceDescriptorProto";yl.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"method",kind:"message",T:wl,repeated:!0},{no:3,name:"options",kind:"message",T:El,opt:!0}]);var wl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};wl.runtime=N;wl.typeName="google.protobuf.MethodDescriptorProto";wl.fields=N.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"input_type",kind:"scalar",T:9,opt:!0},{no:3,name:"output_type",kind:"scalar",T:9,opt:!0},{no:4,name:"options",kind:"message",T:Ol,opt:!0},{no:5,name:"client_streaming",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"server_streaming",kind:"scalar",T:8,opt:!0,default:!1}]);var bl=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};bl.runtime=N;bl.typeName="google.protobuf.FileOptions";bl.fields=N.util.newFieldList(()=>[{no:1,name:"java_package",kind:"scalar",T:9,opt:!0},{no:8,name:"java_outer_classname",kind:"scalar",T:9,opt:!0},{no:10,name:"java_multiple_files",kind:"scalar",T:8,opt:!0,default:!1},{no:20,name:"java_generate_equals_and_hash",kind:"scalar",T:8,opt:!0},{no:27,name:"java_string_check_utf8",kind:"scalar",T:8,opt:!0,default:!1},{no:9,name:"optimize_for",kind:"enum",T:N.getEnumType(Kc),opt:!0,default:Kc.SPEED},{no:11,name:"go_package",kind:"scalar",T:9,opt:!0},{no:16,name:"cc_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"java_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:18,name:"py_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:42,name:"php_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:23,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:31,name:"cc_enable_arenas",kind:"scalar",T:8,opt:!0,default:!0},{no:36,name:"objc_class_prefix",kind:"scalar",T:9,opt:!0},{no:37,name:"csharp_namespace",kind:"scalar",T:9,opt:!0},{no:39,name:"swift_prefix",kind:"scalar",T:9,opt:!0},{no:40,name:"php_class_prefix",kind:"scalar",T:9,opt:!0},{no:41,name:"php_namespace",kind:"scalar",T:9,opt:!0},{no:44,name:"php_metadata_namespace",kind:"scalar",T:9,opt:!0},{no:45,name:"ruby_package",kind:"scalar",T:9,opt:!0},{no:50,name:"features",kind:"message",T:gn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var Kc;(function(e){e[e.SPEED=1]="SPEED",e[e.CODE_SIZE=2]="CODE_SIZE",e[e.LITE_RUNTIME=3]="LITE_RUNTIME"})(Kc||(Kc={}));N.util.setEnumType(Kc,"google.protobuf.FileOptions.OptimizeMode",[{no:1,name:"SPEED"},{no:2,name:"CODE_SIZE"},{no:3,name:"LITE_RUNTIME"}]);var xl=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};xl.runtime=N;xl.typeName="google.protobuf.MessageOptions";xl.fields=N.util.newFieldList(()=>[{no:1,name:"message_set_wire_format",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"no_standard_descriptor_accessor",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:7,name:"map_entry",kind:"scalar",T:8,opt:!0},{no:11,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:12,name:"features",kind:"message",T:gn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var Sl=class e extends M{constructor(t){super(),this.targets=[],this.editionDefaults=[],this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Sl.runtime=N;Sl.typeName="google.protobuf.FieldOptions";Sl.fields=N.util.newFieldList(()=>[{no:1,name:"ctype",kind:"enum",T:N.getEnumType(Qc),opt:!0,default:Qc.STRING},{no:2,name:"packed",kind:"scalar",T:8,opt:!0},{no:6,name:"jstype",kind:"enum",T:N.getEnumType(Zc),opt:!0,default:Zc.JS_NORMAL},{no:5,name:"lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:15,name:"unverified_lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:10,name:"weak",kind:"scalar",T:8,opt:!0,default:!1},{no:16,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"retention",kind:"enum",T:N.getEnumType(lm),opt:!0},{no:19,name:"targets",kind:"enum",T:N.getEnumType(um),repeated:!0},{no:20,name:"edition_defaults",kind:"message",T:kl,repeated:!0},{no:21,name:"features",kind:"message",T:gn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var Qc;(function(e){e[e.STRING=0]="STRING",e[e.CORD=1]="CORD",e[e.STRING_PIECE=2]="STRING_PIECE"})(Qc||(Qc={}));N.util.setEnumType(Qc,"google.protobuf.FieldOptions.CType",[{no:0,name:"STRING"},{no:1,name:"CORD"},{no:2,name:"STRING_PIECE"}]);var Zc;(function(e){e[e.JS_NORMAL=0]="JS_NORMAL",e[e.JS_STRING=1]="JS_STRING",e[e.JS_NUMBER=2]="JS_NUMBER"})(Zc||(Zc={}));N.util.setEnumType(Zc,"google.protobuf.FieldOptions.JSType",[{no:0,name:"JS_NORMAL"},{no:1,name:"JS_STRING"},{no:2,name:"JS_NUMBER"}]);var lm;(function(e){e[e.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",e[e.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",e[e.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(lm||(lm={}));N.util.setEnumType(lm,"google.protobuf.FieldOptions.OptionRetention",[{no:0,name:"RETENTION_UNKNOWN"},{no:1,name:"RETENTION_RUNTIME"},{no:2,name:"RETENTION_SOURCE"}]);var um;(function(e){e[e.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",e[e.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",e[e.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",e[e.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",e[e.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",e[e.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",e[e.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",e[e.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",e[e.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",e[e.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(um||(um={}));N.util.setEnumType(um,"google.protobuf.FieldOptions.OptionTargetType",[{no:0,name:"TARGET_TYPE_UNKNOWN"},{no:1,name:"TARGET_TYPE_FILE"},{no:2,name:"TARGET_TYPE_EXTENSION_RANGE"},{no:3,name:"TARGET_TYPE_MESSAGE"},{no:4,name:"TARGET_TYPE_FIELD"},{no:5,name:"TARGET_TYPE_ONEOF"},{no:6,name:"TARGET_TYPE_ENUM"},{no:7,name:"TARGET_TYPE_ENUM_ENTRY"},{no:8,name:"TARGET_TYPE_SERVICE"},{no:9,name:"TARGET_TYPE_METHOD"}]);var kl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};kl.runtime=N;kl.typeName="google.protobuf.FieldOptions.EditionDefault";kl.fields=N.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:N.getEnumType(Oa),opt:!0},{no:2,name:"value",kind:"scalar",T:9,opt:!0}]);var _l=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};_l.runtime=N;_l.typeName="google.protobuf.OneofOptions";_l.fields=N.util.newFieldList(()=>[{no:1,name:"features",kind:"message",T:gn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var Tl=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Tl.runtime=N;Tl.typeName="google.protobuf.EnumOptions";Tl.fields=N.util.newFieldList(()=>[{no:2,name:"allow_alias",kind:"scalar",T:8,opt:!0},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:7,name:"features",kind:"message",T:gn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var Pl=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Pl.runtime=N;Pl.typeName="google.protobuf.EnumValueOptions";Pl.fields=N.util.newFieldList(()=>[{no:1,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"features",kind:"message",T:gn,opt:!0},{no:3,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var El=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};El.runtime=N;El.typeName="google.protobuf.ServiceOptions";El.fields=N.util.newFieldList(()=>[{no:34,name:"features",kind:"message",T:gn,opt:!0},{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var Ol=class e extends M{constructor(t){super(),this.uninterpretedOption=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Ol.runtime=N;Ol.typeName="google.protobuf.MethodOptions";Ol.fields=N.util.newFieldList(()=>[{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:34,name:"idempotency_level",kind:"enum",T:N.getEnumType(ed),opt:!0,default:ed.IDEMPOTENCY_UNKNOWN},{no:35,name:"features",kind:"message",T:gn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:Rn,repeated:!0}]);var ed;(function(e){e[e.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",e[e.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",e[e.IDEMPOTENT=2]="IDEMPOTENT"})(ed||(ed={}));N.util.setEnumType(ed,"google.protobuf.MethodOptions.IdempotencyLevel",[{no:0,name:"IDEMPOTENCY_UNKNOWN"},{no:1,name:"NO_SIDE_EFFECTS"},{no:2,name:"IDEMPOTENT"}]);var Rn=class e extends M{constructor(t){super(),this.name=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Rn.runtime=N;Rn.typeName="google.protobuf.UninterpretedOption";Rn.fields=N.util.newFieldList(()=>[{no:2,name:"name",kind:"message",T:Cl,repeated:!0},{no:3,name:"identifier_value",kind:"scalar",T:9,opt:!0},{no:4,name:"positive_int_value",kind:"scalar",T:4,opt:!0},{no:5,name:"negative_int_value",kind:"scalar",T:3,opt:!0},{no:6,name:"double_value",kind:"scalar",T:1,opt:!0},{no:7,name:"string_value",kind:"scalar",T:12,opt:!0},{no:8,name:"aggregate_value",kind:"scalar",T:9,opt:!0}]);var Cl=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Cl.runtime=N;Cl.typeName="google.protobuf.UninterpretedOption.NamePart";Cl.fields=N.util.newFieldList(()=>[{no:1,name:"name_part",kind:"scalar",T:9},{no:2,name:"is_extension",kind:"scalar",T:8}]);var gn=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};gn.runtime=N;gn.typeName="google.protobuf.FeatureSet";gn.fields=N.util.newFieldList(()=>[{no:1,name:"field_presence",kind:"enum",T:N.getEnumType(cm),opt:!0},{no:2,name:"enum_type",kind:"enum",T:N.getEnumType(dm),opt:!0},{no:3,name:"repeated_field_encoding",kind:"enum",T:N.getEnumType(fm),opt:!0},{no:4,name:"utf8_validation",kind:"enum",T:N.getEnumType(hm),opt:!0},{no:5,name:"message_encoding",kind:"enum",T:N.getEnumType(pm),opt:!0},{no:6,name:"json_format",kind:"enum",T:N.getEnumType(mm),opt:!0}]);var cm;(function(e){e[e.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",e[e.EXPLICIT=1]="EXPLICIT",e[e.IMPLICIT=2]="IMPLICIT",e[e.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(cm||(cm={}));N.util.setEnumType(cm,"google.protobuf.FeatureSet.FieldPresence",[{no:0,name:"FIELD_PRESENCE_UNKNOWN"},{no:1,name:"EXPLICIT"},{no:2,name:"IMPLICIT"},{no:3,name:"LEGACY_REQUIRED"}]);var dm;(function(e){e[e.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",e[e.OPEN=1]="OPEN",e[e.CLOSED=2]="CLOSED"})(dm||(dm={}));N.util.setEnumType(dm,"google.protobuf.FeatureSet.EnumType",[{no:0,name:"ENUM_TYPE_UNKNOWN"},{no:1,name:"OPEN"},{no:2,name:"CLOSED"}]);var fm;(function(e){e[e.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",e[e.PACKED=1]="PACKED",e[e.EXPANDED=2]="EXPANDED"})(fm||(fm={}));N.util.setEnumType(fm,"google.protobuf.FeatureSet.RepeatedFieldEncoding",[{no:0,name:"REPEATED_FIELD_ENCODING_UNKNOWN"},{no:1,name:"PACKED"},{no:2,name:"EXPANDED"}]);var hm;(function(e){e[e.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",e[e.NONE=1]="NONE",e[e.VERIFY=2]="VERIFY"})(hm||(hm={}));N.util.setEnumType(hm,"google.protobuf.FeatureSet.Utf8Validation",[{no:0,name:"UTF8_VALIDATION_UNKNOWN"},{no:1,name:"NONE"},{no:2,name:"VERIFY"}]);var pm;(function(e){e[e.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",e[e.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",e[e.DELIMITED=2]="DELIMITED"})(pm||(pm={}));N.util.setEnumType(pm,"google.protobuf.FeatureSet.MessageEncoding",[{no:0,name:"MESSAGE_ENCODING_UNKNOWN"},{no:1,name:"LENGTH_PREFIXED"},{no:2,name:"DELIMITED"}]);var mm;(function(e){e[e.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",e[e.ALLOW=1]="ALLOW",e[e.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(mm||(mm={}));N.util.setEnumType(mm,"google.protobuf.FeatureSet.JsonFormat",[{no:0,name:"JSON_FORMAT_UNKNOWN"},{no:1,name:"ALLOW"},{no:2,name:"LEGACY_BEST_EFFORT"}]);var td=class e extends M{constructor(t){super(),this.defaults=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};td.runtime=N;td.typeName="google.protobuf.FeatureSetDefaults";td.fields=N.util.newFieldList(()=>[{no:1,name:"defaults",kind:"message",T:Il,repeated:!0},{no:4,name:"minimum_edition",kind:"enum",T:N.getEnumType(Oa),opt:!0},{no:5,name:"maximum_edition",kind:"enum",T:N.getEnumType(Oa),opt:!0}]);var Il=class e extends M{constructor(t){super(),N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Il.runtime=N;Il.typeName="google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault";Il.fields=N.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:N.getEnumType(Oa),opt:!0},{no:2,name:"features",kind:"message",T:gn,opt:!0}]);var Rl=class e extends M{constructor(t){super(),this.location=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Rl.runtime=N;Rl.typeName="google.protobuf.SourceCodeInfo";Rl.fields=N.util.newFieldList(()=>[{no:1,name:"location",kind:"message",T:Ml,repeated:!0}]);var Ml=class e extends M{constructor(t){super(),this.path=[],this.span=[],this.leadingDetachedComments=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Ml.runtime=N;Ml.typeName="google.protobuf.SourceCodeInfo.Location";Ml.fields=N.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"span",kind:"scalar",T:5,repeated:!0,packed:!0},{no:3,name:"leading_comments",kind:"scalar",T:9,opt:!0},{no:4,name:"trailing_comments",kind:"scalar",T:9,opt:!0},{no:6,name:"leading_detached_comments",kind:"scalar",T:9,repeated:!0}]);var nd=class e extends M{constructor(t){super(),this.annotation=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};nd.runtime=N;nd.typeName="google.protobuf.GeneratedCodeInfo";nd.fields=N.util.newFieldList(()=>[{no:1,name:"annotation",kind:"message",T:Dl,repeated:!0}]);var Dl=class e extends M{constructor(t){super(),this.path=[],N.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return N.util.equals(e,t,n)}};Dl.runtime=N;Dl.typeName="google.protobuf.GeneratedCodeInfo.Annotation";Dl.fields=N.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"source_file",kind:"scalar",T:9,opt:!0},{no:3,name:"begin",kind:"scalar",T:5,opt:!0},{no:4,name:"end",kind:"scalar",T:5,opt:!0},{no:5,name:"semantic",kind:"enum",T:N.getEnumType(vm),opt:!0}]);var vm;(function(e){e[e.NONE=0]="NONE",e[e.SET=1]="SET",e[e.ALIAS=2]="ALIAS"})(vm||(vm={}));N.util.setEnumType(vm,"google.protobuf.GeneratedCodeInfo.Annotation.Semantic",[{no:0,name:"NONE"},{no:1,name:"SET"},{no:2,name:"ALIAS"}]);var Et=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};Et.runtime=w;Et.typeName="google.protobuf.Empty";Et.fields=w.util.newFieldList(()=>[]);var gm=class e extends M{secret="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.VerifyUserRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},ym=class e extends M{secret="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.GroupInfoRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},wm=class e extends M{groupId="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.GroupID";static fields=w.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},bm=class e extends M{contentId="";groupId="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.ShareRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"group_id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},rd=class e extends M{secret="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.GroupInvite";static fields=w.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},xm=class e extends M{groups=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.Groups";static fields=w.util.newFieldList(()=>[{no:1,name:"groups",kind:"message",T:Fi,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},SA=class e extends M{text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.AnalyzeConversationRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Wr=class e extends M{email="";password="";username="";config;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.User";static fields=w.util.newFieldList(()=>[{no:1,name:"email",kind:"scalar",T:9},{no:2,name:"password",kind:"scalar",T:9},{no:3,name:"username",kind:"scalar",T:9},{no:4,name:"config",kind:"message",T:id}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Fi=class e extends M{id="";name="";users=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.Group";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"users",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},id=class e extends M{domainWhitelist=[];offlineVoice=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.Config";static fields=w.util.newFieldList(()=>[{no:1,name:"domain_whitelist",kind:"scalar",T:9,repeated:!0},{no:2,name:"offline_voice",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Sm=class e extends M{user;success=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="user.LoginResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"user",kind:"message",T:Wr},{no:2,name:"success",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var km=class e extends M{title="";createTime=0;updateTime=0;mapping={};conversationId="";conversationTemplateId="";currentNode="";gizmoId="";isArchived=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Conversation";static fields=w.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"create_time",kind:"scalar",T:1},{no:3,name:"update_time",kind:"scalar",T:1},{no:4,name:"mapping",kind:"map",K:9,V:{kind:"message",T:bk}},{no:5,name:"conversation_id",kind:"scalar",T:9},{no:6,name:"conversation_template_id",kind:"scalar",T:9},{no:7,name:"current_node",kind:"scalar",T:9},{no:8,name:"gizmo_id",kind:"scalar",T:9},{no:9,name:"is_archived",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},bk=class e extends M{id="";message;parent="";children=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Node";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"message",kind:"message",T:xk},{no:3,name:"parent",kind:"scalar",T:9},{no:4,name:"children",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},xk=class e extends M{id="";author;createTime=0;content;status="";endTurn=!1;weight=0;metadata;recipient="";updateTime=0;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Message";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"author",kind:"message",T:kk},{no:3,name:"create_time",kind:"scalar",T:1},{no:4,name:"content",kind:"message",T:_k},{no:5,name:"status",kind:"scalar",T:9},{no:6,name:"end_turn",kind:"scalar",T:8},{no:7,name:"weight",kind:"scalar",T:5},{no:8,name:"metadata",kind:"message",T:Sk},{no:9,name:"recipient",kind:"scalar",T:9},{no:10,name:"update_time",kind:"scalar",T:1}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Sk=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.MessageMetadata";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},kk=class e extends M{role="";metadata;name="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Author";static fields=w.util.newFieldList(()=>[{no:1,name:"role",kind:"scalar",T:9},{no:2,name:"metadata",kind:"message",T:Ok},{no:3,name:"name",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},_k=class e extends M{contentType="";textParts=[];imageParts=[];text="";parts=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Content";static fields=w.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"text_parts",kind:"scalar",T:9,repeated:!0},{no:3,name:"image_parts",kind:"message",T:Tk,repeated:!0},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"parts",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Tk=class e extends M{contentType="";assetPointer="";sizeBytes=be.zero;width=0;height=0;fovea=0;metadata;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.ImageAsset";static fields=w.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"asset_pointer",kind:"scalar",T:9},{no:3,name:"size_bytes",kind:"scalar",T:3},{no:4,name:"width",kind:"scalar",T:5},{no:5,name:"height",kind:"scalar",T:5},{no:6,name:"fovea",kind:"scalar",T:5},{no:7,name:"metadata",kind:"message",T:Pk}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Pk=class e extends M{dalle;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Metadata";static fields=w.util.newFieldList(()=>[{no:1,name:"dalle",kind:"message",T:Ek}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ek=class e extends M{genId="";prompt="";seed=0;serializationTitle="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.DalleMetadata";static fields=w.util.newFieldList(()=>[{no:1,name:"gen_id",kind:"scalar",T:9},{no:2,name:"prompt",kind:"scalar",T:9},{no:3,name:"seed",kind:"scalar",T:13},{no:4,name:"serialization_title",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ok=class e extends M{attachments=[];timestamp="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.AuthorMetadata";static fields=w.util.newFieldList(()=>[{no:1,name:"attachments",kind:"message",T:Ck,repeated:!0},{no:2,name:"timestamp_",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ck=class e extends M{id="";name="";mimeType="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chatgpt.Attachment";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"mimeType",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var Nl=class e extends M{nodes=[];edges=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="browser.History";static fields=w.util.newFieldList(()=>[{no:1,name:"nodes",kind:"message",T:Ik,repeated:!0},{no:2,name:"edges",kind:"message",T:Rk,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ik=class e extends M{id="";url="";title="";open=0;close=0;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="browser.Node";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"open",kind:"scalar",T:1},{no:5,name:"close",kind:"scalar",T:1}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Rk=class e extends M{from="";to="";tab="";visitTime=0;visitDuration=0;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="browser.Edge";static fields=w.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9},{no:3,name:"tab",kind:"scalar",T:9},{no:4,name:"visit_time",kind:"scalar",T:1},{no:5,name:"visit_duration",kind:"scalar",T:1}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var _m=class e extends M{publishDir="";baseUrl="";title="";paginate=0;theme=[];enableInlineShortcodes=!1;enableRobotsTxt=!1;buildDrafts=!1;buildFuture=!1;buildExpired=!1;enableEmoji=!1;pygmentsUseClasses=!1;mainSections=[];minify;languages={};outputs={};params;markup;services;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.HugoConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"publish_dir",kind:"scalar",T:9},{no:2,name:"base_url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"paginate",kind:"scalar",T:5},{no:5,name:"theme",kind:"scalar",T:9,repeated:!0},{no:6,name:"enable_inline_shortcodes",kind:"scalar",T:8},{no:7,name:"enable_robots_txt",kind:"scalar",T:8},{no:8,name:"build_drafts",kind:"scalar",T:8},{no:9,name:"build_future",kind:"scalar",T:8},{no:10,name:"build_expired",kind:"scalar",T:8},{no:11,name:"enable_emoji",kind:"scalar",T:8},{no:12,name:"pygments_use_classes",kind:"scalar",T:8},{no:13,name:"main_sections",kind:"scalar",T:9,repeated:!0},{no:14,name:"minify",kind:"message",T:Mk},{no:15,name:"languages",kind:"map",K:9,V:{kind:"message",T:Dk}},{no:16,name:"outputs",kind:"map",K:9,V:{kind:"message",T:Uk}},{no:17,name:"params",kind:"message",T:zk},{no:18,name:"markup",kind:"message",T:Ak},{no:19,name:"services",kind:"message",T:Jk}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Mk=class e extends M{disableXml=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.MinifyConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"disable_xml",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Dk=class e extends M{languageName="";weight=0;title="";taxonomies={};menu={};params={};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.LanguageConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"language_name",kind:"scalar",T:9},{no:2,name:"weight",kind:"scalar",T:5},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"taxonomies",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"menu",kind:"map",K:9,V:{kind:"message",T:jk}},{no:6,name:"params",kind:"map",K:9,V:{kind:"scalar",T:9}}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},ad=class e extends M{name="";url="";weight=0;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.MenuItem";static fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"weight",kind:"scalar",T:5}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Nk=class e extends M{url="";text="";appendFilePath=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.EditPostConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"append_file_path",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},$k=class e extends M{disableHljs=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.AssetsConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"disable_hljs",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ak=class e extends M{goldmark;highlight;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.MarkupConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"goldmark",kind:"message",T:Lk},{no:2,name:"highlight",kind:"message",T:Bk}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Lk=class e extends M{renderer;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.GoldmarkConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"renderer",kind:"message",T:Fk}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Fk=class e extends M{unsafe=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.RendererConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"unsafe",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Bk=class e extends M{noClasses=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.HighlightConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"no_classes",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Jk=class e extends M{instagram;twitter;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ServicesConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"instagram",kind:"message",T:Tm},{no:2,name:"twitter",kind:"message",T:Tm}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Tm=class e extends M{disableInlineCss=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ServiceConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"disable_inline_css",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Uk=class e extends M{values=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.RepeatedString";static fields=w.util.newFieldList(()=>[{no:1,name:"values",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},jk=class e extends M{items=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.RepeatedMenuItem";static fields=w.util.newFieldList(()=>[{no:1,name:"items",kind:"message",T:ad,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},zk=class e extends M{env="";description="";author="";defaultTheme="";showShareButtons=!1;showReadingTime=!1;displayFullLangName=!1;showPostNavLinks=!1;showBreadCrumbs=!1;showCodeCopyButtons=!1;showRssButtonInSectionTermList=!1;showAllPagesInArchive=!1;showPageNums=!1;showToc=!1;images=[];profileMode;homeInfoParams;socialIcons=[];editPost;assets;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ParamsConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"env",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"author",kind:"scalar",T:9},{no:4,name:"default_theme",kind:"scalar",T:9},{no:5,name:"show_share_buttons",kind:"scalar",T:8},{no:6,name:"show_reading_time",kind:"scalar",T:8},{no:7,name:"display_full_lang_name",kind:"scalar",T:8},{no:8,name:"show_post_nav_links",kind:"scalar",T:8},{no:9,name:"show_bread_crumbs",kind:"scalar",T:8},{no:10,name:"show_code_copy_buttons",kind:"scalar",T:8},{no:11,name:"show_rss_button_in_section_term_list",kind:"scalar",T:8},{no:12,name:"show_all_pages_in_archive",kind:"scalar",T:8},{no:13,name:"show_page_nums",kind:"scalar",T:8},{no:14,name:"show_toc",kind:"scalar",T:8},{no:15,name:"images",kind:"scalar",T:9,repeated:!0},{no:16,name:"profile_mode",kind:"message",T:Gk},{no:17,name:"home_info_params",kind:"message",T:Vk},{no:18,name:"social_icons",kind:"message",T:Hk,repeated:!0},{no:19,name:"edit_post",kind:"message",T:Nk},{no:20,name:"assets",kind:"message",T:$k}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Gk=class e extends M{enabled=!1;title="";imageUrl="";imageTitle="";buttons=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ProfileModeConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"image_url",kind:"scalar",T:9},{no:4,name:"image_title",kind:"scalar",T:9},{no:5,name:"buttons",kind:"message",T:Yk,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Yk=class e extends M{name="";url="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ButtonConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Vk=class e extends M{title="";content="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.HomeInfoParamsConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"content",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Hk=class e extends M{name="";title="";url="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.SocialIconConfig";static fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var Pm=class e extends M{prompt="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.InferRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Em=class e extends M{text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.InferResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Om=class e extends M{content;site;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.TypesResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Um},{no:2,name:"site",kind:"message",T:Um}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Cm=class e extends M{contentTypes=[];tags=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.GetSourcesRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"content_types",kind:"scalar",T:9,repeated:!0},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Im=class e extends M{captureDevice=0;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.VoiceInputRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Rm=class e extends M{segment;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.VoiceInputResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:$l}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Mm=class e extends M{parent="";children=[];connect=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.RelateRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"parent",kind:"scalar",T:9},{no:2,name:"children",kind:"scalar",T:9,repeated:!0},{no:3,name:"connect",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Dm=class e extends M{sources=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Sources";static fields=w.util.newFieldList(()=>[{no:1,name:"sources",kind:"message",T:qk,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},qk=class e extends M{source;displayContent=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.EnumeratedSource";static fields=w.util.newFieldList(()=>[{no:1,name:"source",kind:"message",T:Xk},{no:2,name:"display_content",kind:"message",T:Wk,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Wk=class e extends M{title="";description="";type="";content;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.DisplayContent";static fields=w.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"type",kind:"scalar",T:9},{no:4,name:"content",kind:"message",T:Xn}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Xk=class e extends M{name="";type={case:void 0};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Source";static fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"server",kind:"message",T:Kk,oneof:"type"},{no:3,name:"folder",kind:"message",T:Qk,oneof:"type"}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Kk=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Server";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Qk=class e extends M{path="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Folder";static fields=w.util.newFieldList(()=>[{no:2,name:"path",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Nm=class e extends M{contentId="";tags=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.SetTagsRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},$m=class e extends M{groupId="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.TagRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Am=class e extends M{tags=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Tags";static fields=w.util.newFieldList(()=>[{no:1,name:"tags",kind:"message",T:Lm,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Lm=class e extends M{name="";subTags=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Tag";static fields=w.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"sub_tags",kind:"message",T:e,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ia=class e extends M{contentIds=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ContentIDs";static fields=w.util.newFieldList(()=>[{no:1,name:"content_ids",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},od=class e extends M{content;tags=[];related=[];parents=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Contents";static fields=w.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Xn},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0},{no:3,name:"related",kind:"message",T:Xn,repeated:!0},{no:4,name:"parents",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Fm=class e extends M{query="";page=0;contentID="";groupID="";tags=[];contentTypes=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Query";static fields=w.util.newFieldList(()=>[{no:1,name:"query",kind:"scalar",T:9},{no:2,name:"page",kind:"scalar",T:13},{no:3,name:"contentID",kind:"scalar",T:9},{no:4,name:"groupID",kind:"scalar",T:9},{no:5,name:"tags",kind:"scalar",T:9,repeated:!0},{no:6,name:"content_types",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Bm=class e extends M{storedContent=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Results";static fields=w.util.newFieldList(()=>[{no:1,name:"storedContent",kind:"message",T:Zk,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Zk=class e extends M{content;id="";related=[];title="";description="";image="";url="";user;tags=[];preview="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.StoredContent";static fields=w.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Xn},{no:2,name:"id",kind:"scalar",T:9},{no:3,name:"related",kind:"message",T:Xn,repeated:!0},{no:4,name:"title",kind:"scalar",T:9},{no:5,name:"description",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"url",kind:"scalar",T:9},{no:9,name:"user",kind:"message",T:Wr},{no:10,name:"tags",kind:"message",T:Lm,repeated:!0},{no:11,name:"preview",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},kA=class e extends M{from="";to="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Edge";static fields=w.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Xn=class e extends M{tags=[];createdAt="";uri="";id="";type={case:void 0};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Content";static fields=w.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"created_at",kind:"scalar",T:9},{no:3,name:"uri",kind:"scalar",T:9},{no:4,name:"id",kind:"scalar",T:9},{no:6,name:"data",kind:"message",T:sd,oneof:"type"},{no:7,name:"normalized",kind:"message",T:e_,oneof:"type"},{no:8,name:"transformed",kind:"message",T:t_,oneof:"type"},{no:9,name:"post",kind:"message",T:Jm,oneof:"type"},{no:10,name:"site",kind:"message",T:f_,oneof:"type"},{no:11,name:"chatgpt_conversation",kind:"message",T:km,oneof:"type"},{no:12,name:"browser_history",kind:"message",T:Nl,oneof:"type"}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Jm=class e extends M{title="";summary="";content="";authors=[];draft=!1;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Post";static fields=w.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"content",kind:"scalar",T:9},{no:4,name:"authors",kind:"scalar",T:9,repeated:!0},{no:6,name:"draft",kind:"scalar",T:8}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},_A=class e extends M{url="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.GitRepo";static fields=w.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},sd=class e extends M{type={case:void 0};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Data";static fields=w.util.newFieldList(()=>[{no:4,name:"text",kind:"message",T:l_,oneof:"type"},{no:5,name:"file",kind:"message",T:s_,oneof:"type"},{no:6,name:"url",kind:"message",T:u_,oneof:"type"}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},e_=class e extends M{type={case:void 0};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Normalized";static fields=w.util.newFieldList(()=>[{no:3,name:"article",kind:"message",T:n_,oneof:"type"},{no:4,name:"html",kind:"message",T:r_,oneof:"type"},{no:6,name:"transcript",kind:"message",T:d_,oneof:"type"},{no:7,name:"readme",kind:"message",T:i_,oneof:"type"}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},t_=class e extends M{type={case:void 0};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Transformed";static fields=w.util.newFieldList(()=>[{no:1,name:"summary",kind:"message",T:a_,oneof:"type"},{no:2,name:"categories",kind:"message",T:o_,oneof:"type"}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},n_=class e extends M{title="";author="";length=0;excerpt="";siteName="";image="";favicon="";text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Article";static fields=w.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"author",kind:"scalar",T:9},{no:3,name:"length",kind:"scalar",T:5},{no:4,name:"excerpt",kind:"scalar",T:9},{no:5,name:"site_name",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"favicon",kind:"scalar",T:9},{no:8,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},r_=class e extends M{html="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.HTML";static fields=w.util.newFieldList(()=>[{no:1,name:"html",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},i_=class e extends M{data="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.ReadMe";static fields=w.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},a_=class e extends M{summary="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Summary";static fields=w.util.newFieldList(()=>[{no:1,name:"summary",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},o_=class e extends M{categories=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Categories";static fields=w.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},s_=class e extends M{file="";data=new Uint8Array(0);url="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.File";static fields=w.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9},{no:2,name:"data",kind:"scalar",T:12},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},l_=class e extends M{data="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Text";static fields=w.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},u_=class e extends M{url="";crawl=!1;title="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.URL";static fields=w.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"crawl",kind:"scalar",T:8},{no:3,name:"title",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},c_=class e extends M{id=0;startTime=be.zero;endTime=be.zero;text="";p="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Token";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},$l=class e extends M{num=0;tokens=[];text="";startTime=be.zero;endTime=be.zero;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Segment";static fields=w.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:c_,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},d_=class e extends M{id="";name="";segments=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Transcript";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:$l,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Um=class e extends M{msg;descLookup={};enumLookup={};packageName="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.GRPCTypeInfo";static fields=w.util.newFieldList(()=>[{no:1,name:"msg",kind:"message",T:qr},{no:3,name:"desc_lookup",kind:"map",K:9,V:{kind:"message",T:qr}},{no:4,name:"enum_lookup",kind:"map",K:9,V:{kind:"message",T:Li}},{no:6,name:"package_name",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},f_=class e extends M{sections=[];hugoConfig;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Site";static fields=w.util.newFieldList(()=>[{no:1,name:"sections",kind:"message",T:h_,repeated:!0},{no:2,name:"hugo_config",kind:"message",T:_m}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},h_=class e extends M{tags=[];menu;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="content.Section";static fields=w.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"menu",kind:"message",T:ad}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var jm=class e extends M{text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.AnalyzeConversationRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},zm=class e extends M{prompt="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GenerateImagesRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Gm=class e extends M{images=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GenerateImagesResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"images",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Ym=class e extends M{id="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.DeleteSessionRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Al=class e extends M{id="";text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.Prompt";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Vm=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GetPromptsRequest";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Hm=class e extends M{prompts=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GetPromptsResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"prompts",kind:"message",T:Al,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},qm=class e extends M{prompt="";text=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.InferRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Wm=class e extends M{text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.InferResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Xm=class e extends M{content;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.UploadContentRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Xn}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},TA=class e extends M{id="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.UploadContentResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Km=class e extends M{id="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GetSessionRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Qm=class e extends M{session;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GetSessionResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"session",kind:"message",T:nv}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},Zm=class e extends M{page=be.zero;limit=be.zero;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GetSessionsRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"page",kind:"scalar",T:4},{no:2,name:"limit",kind:"scalar",T:4}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},ev=class e extends M{sessions=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.GetSessionsResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"sessions",kind:"message",T:nv,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},p_=class e extends M{id=0;startTime=be.zero;endTime=be.zero;text="";p="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.Token";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},tv=class e extends M{num=0;tokens=[];text="";startTime=be.zero;endTime=be.zero;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.Segment";static fields=w.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:p_,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},nv=class e extends M{id="";name="";segments=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.Session";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:tv,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},PA=class e extends M{filePath="";model="";language="";translate=!1;offset=be.zero;duration=be.zero;threads=0;speedup=!1;maxLen=0;maxTokens=0;wordThreshold=0;tokens=!1;colorize=!1;out="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.TranscriptionRequest";static fields=w.util.newFieldList(()=>[{no:14,name:"file_path",kind:"scalar",T:9},{no:1,name:"model",kind:"scalar",T:9},{no:2,name:"language",kind:"scalar",T:9},{no:3,name:"translate",kind:"scalar",T:8},{no:4,name:"offset",kind:"scalar",T:3},{no:5,name:"duration",kind:"scalar",T:3},{no:6,name:"threads",kind:"scalar",T:13},{no:7,name:"speedup",kind:"scalar",T:8},{no:8,name:"max_len",kind:"scalar",T:13},{no:9,name:"max_tokens",kind:"scalar",T:13},{no:10,name:"word_threshold",kind:"scalar",T:1},{no:11,name:"tokens",kind:"scalar",T:8},{no:12,name:"colorize",kind:"scalar",T:8},{no:13,name:"out",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},EA=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.RegisterFlags";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},OA=class e extends M{text="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.OCRText";static fields=w.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},CA=class e extends M{image=new Uint8Array(0);constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.Image";static fields=w.util.newFieldList(()=>[{no:1,name:"image",kind:"scalar",T:12}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},rv=class e extends M{from="";to="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.ConvertFileRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},iv=class e extends M{captureDevice=0;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.ChatRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},ld=class e extends M{segment;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.ChatResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:tv}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},av=class e extends M{id="";file="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.YouTubeVideo";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"file",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},ud=class e extends M{file="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.FilePath";static fields=w.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},ov=class e extends M{title="";filePath;transcript=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="protoflow.YouTubeVideoResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"file_path",kind:"message",T:ud},{no:3,name:"transcript",kind:"message",T:$l,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var sv=class e extends M{phoneNumbers=[];summary="";questions=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="ai.AnalyzeConversationResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"phone_numbers",kind:"scalar",T:9,repeated:!0},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"questions",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},IA=class e extends M{categories=[];constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="ai.AnalyzeContent";static fields=w.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var RA={typeName:"protoflow.ProtoflowService",methods:{downloadYouTubeVideo:{name:"DownloadYouTubeVideo",I:av,O:ov,kind:ne.Unary},getSessions:{name:"GetSessions",I:Zm,O:ev,kind:ne.Unary},getSession:{name:"GetSession",I:Km,O:Qm,kind:ne.Unary},deleteSession:{name:"DeleteSession",I:Ym,O:Et,kind:ne.Unary},getPrompts:{name:"GetPrompts",I:Vm,O:Hm,kind:ne.Unary},newPrompt:{name:"NewPrompt",I:Al,O:Al,kind:ne.Unary},uploadContent:{name:"UploadContent",I:Xm,O:ld,kind:ne.ServerStreaming},infer:{name:"Infer",I:qm,O:Wm,kind:ne.ServerStreaming},chat:{name:"Chat",I:iv,O:ld,kind:ne.ServerStreaming},convertFile:{name:"ConvertFile",I:rv,O:ud,kind:ne.Unary},generateImages:{name:"GenerateImages",I:zm,O:Gm,kind:ne.Unary},analyzeConversation:{name:"AnalyzeConversation",I:jm,O:sv,kind:ne.Unary}}};var MA={typeName:"content.ContentService",methods:{save:{name:"Save",I:od,O:Ia,kind:ne.Unary},search:{name:"Search",I:Fm,O:Bm,kind:ne.Unary},relate:{name:"Relate",I:Mm,O:Et,kind:ne.Unary},analyze:{name:"Analyze",I:Xn,O:od,kind:ne.Unary},delete:{name:"Delete",I:Ia,O:Ia,kind:ne.Unary},getTags:{name:"GetTags",I:$m,O:Am,kind:ne.Unary},setTags:{name:"SetTags",I:Nm,O:Et,kind:ne.Unary},publish:{name:"Publish",I:Ia,O:Ia,kind:ne.Unary},getSources:{name:"GetSources",I:Cm,O:Dm,kind:ne.Unary},infer:{name:"Infer",I:Pm,O:Em,kind:ne.ServerStreaming},types:{name:"Types",I:Et,O:Om,kind:ne.Unary},voiceInput:{name:"VoiceInput",I:Im,O:Rm,kind:ne.ServerStreaming}}};var DA={typeName:"user.UserService",methods:{register:{name:"Register",I:Wr,O:Wr,kind:ne.Unary},login:{name:"Login",I:Wr,O:Sm,kind:ne.Unary},logout:{name:"Logout",I:Et,O:Et,kind:ne.Unary},resetPassword:{name:"ResetPassword",I:Wr,O:Et,kind:ne.Unary},verifyUser:{name:"VerifyUser",I:gm,O:Et,kind:ne.Unary},updateConfig:{name:"UpdateConfig",I:id,O:Et,kind:ne.Unary},createGroupInvite:{name:"CreateGroupInvite",I:wm,O:rd,kind:ne.Unary},joinGroup:{name:"JoinGroup",I:rd,O:Fi,kind:ne.Unary},groupInfo:{name:"GroupInfo",I:ym,O:Fi,kind:ne.Unary},createGroup:{name:"CreateGroup",I:Fi,O:Fi,kind:ne.Unary},getGroups:{name:"GetGroups",I:Et,O:xm,kind:ne.Unary},deleteGroup:{name:"DeleteGroup",I:Fi,O:Et,kind:ne.Unary},share:{name:"Share",I:bm,O:Et,kind:ne.Unary}}};var lv=class e extends M{user="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chat.BanUserRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},uv=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chat.BanUserResponse";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},cv=class e extends M{message="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chat.SendMessageRequest";static fields=w.util.newFieldList(()=>[{no:2,name:"message",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},dv=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chat.SendMessageResponse";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},fv=class e extends M{constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chat.ReceiveMessagesRequest";static fields=w.util.newFieldList(()=>[]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},hv=class e extends M{user="";text="";timestamp=be.zero;constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="chat.Message";static fields=w.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"timestamp",kind:"scalar",T:3}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var NA={typeName:"chat.ChatService",methods:{sendMessage:{name:"SendMessage",I:cv,O:dv,kind:ne.Unary},receiveMessages:{name:"ReceiveMessages",I:fv,O:hv,kind:ne.ServerStreaming},banUser:{name:"BanUser",I:lv,O:uv,kind:ne.Unary}}};var pv=class e extends M{type={case:void 0};constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="event.Metric";static fields=w.util.newFieldList(()=>[{no:1,name:"http",kind:"message",T:m_,oneof:"type"},{no:2,name:"rrweb",kind:"message",T:v_,oneof:"type"}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},m_=class e extends M{method="";path="";query="";headers={};host="";remoteAddr="";userAgent="";referer="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="event.HTTPRequest";static fields=w.util.newFieldList(()=>[{no:1,name:"method",kind:"scalar",T:9},{no:2,name:"path",kind:"scalar",T:9},{no:3,name:"query",kind:"scalar",T:9},{no:4,name:"headers",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"host",kind:"scalar",T:9},{no:6,name:"remoteAddr",kind:"scalar",T:9},{no:7,name:"userAgent",kind:"scalar",T:9},{no:8,name:"referer",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},v_=class e extends M{events="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="event.RRWeb";static fields=w.util.newFieldList(()=>[{no:1,name:"events",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}},mv=class e extends M{id="";constructor(t){super(),w.util.initPartial(t,this)}static runtime=w;static typeName="event.SendResponse";static fields=w.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return w.util.equals(e,t,n)}};var $A={typeName:"event.EventService",methods:{send:{name:"Send",I:pv,O:mv,kind:ne.Unary}}};var we;(function(e){e[e.Canceled=1]="Canceled",e[e.Unknown=2]="Unknown",e[e.InvalidArgument=3]="InvalidArgument",e[e.DeadlineExceeded=4]="DeadlineExceeded",e[e.NotFound=5]="NotFound",e[e.AlreadyExists=6]="AlreadyExists",e[e.PermissionDenied=7]="PermissionDenied",e[e.ResourceExhausted=8]="ResourceExhausted",e[e.FailedPrecondition=9]="FailedPrecondition",e[e.Aborted=10]="Aborted",e[e.OutOfRange=11]="OutOfRange",e[e.Unimplemented=12]="Unimplemented",e[e.Internal=13]="Internal",e[e.Unavailable=14]="Unavailable",e[e.DataLoss=15]="DataLoss",e[e.Unauthenticated=16]="Unauthenticated"})(we||(we={}));function cd(e){let t=we[e];return typeof t!="string"?e.toString():t[0].toLowerCase()+t.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var vv;function AA(e){if(!vv){vv={};for(let t of Object.values(we))typeof t!="string"&&(vv[cd(t)]=t)}return vv[e]}var xt=class e extends Error{constructor(t,n=we.Unknown,r,a,o){super(Tfe(t,n)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=t,this.code=n,this.metadata=new Headers(r??{}),this.details=a??[],this.cause=o}static from(t,n=we.Unknown){return t instanceof e?t:t instanceof Error?t.name=="AbortError"?new e(t.message,we.Canceled):new e(t.message,n,void 0,void 0,t):new e(String(t),n,void 0,void 0,t)}static[Symbol.hasInstance](t){return t instanceof Error?Object.getPrototypeOf(t)===e.prototype?!0:t.name==="ConnectError"&&"code"in t&&typeof t.code=="number"&&"metadata"in t&&"details"in t&&Array.isArray(t.details)&&"rawMessage"in t&&typeof t.rawMessage=="string"&&"cause"in t:!1}findDetails(t){let n="typeName"in t?{findMessage:a=>a===t.typeName?t:void 0}:t,r=[];for(let a of this.details){if(a instanceof M){n.findMessage(a.getType().typeName)&&r.push(a);continue}let o=n.findMessage(a.type);if(o)try{r.push(o.fromBinary(a.value))}catch{}}return r}};function Tfe(e,t){return e.length?`[${cd(t)}] ${e}`:`[${cd(t)}]`}function g_(...e){let t=new Headers;for(let n of e)n.forEach((r,a)=>{t.append(a,r)});return t}function LA(e,t){let n={};for(let[r,a]of Object.entries(e.methods)){let o=t(Object.assign(Object.assign({},a),{localName:r,service:e}));o!=null&&(n[r]=o)}return n}function y_(e){let t,n=new Uint8Array(0);function r(a){let o=new Uint8Array(n.length+a.length);o.set(n),o.set(a,n.length),n=o}return new ReadableStream({start(){t=e.getReader()},async pull(a){let o;for(;;){if(o===void 0&&n.byteLength>=5){let u=0;for(let c=1;c<5;c++)u=(u<<8)+n[c];o={flags:n[0],length:u}}if(o!==void 0&&n.byteLength>=o.length+5)break;let l=await t.read();if(l.done)break;r(l.value)}if(o===void 0){if(n.byteLength==0){a.close();return}a.error(new xt("premature end of stream",we.DataLoss));return}let s=n.subarray(5,5+o.length);n=n.subarray(5+o.length),a.enqueue({flags:o.flags,data:s})}})}function w_(e,t){let n=new Uint8Array(t.length+5);n.set(t,5);let r=new DataView(n.buffer,n.byteOffset,n.byteLength);return r.setUint8(0,e),r.setUint32(1,t.length),n}var Pfe=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=e[o]&&function(s){return new Promise(function(l,u){s=e[o](s),a(l,u,s.done,s.value)})}}function a(o,s,l,u){Promise.resolve(u).then(function(c){o({value:c,done:l})},s)}},dd=function(e){return this instanceof dd?(this.v=e,this):new dd(e)},Efe=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),a,o=[];return a={},l("next"),l("throw"),l("return",s),a[Symbol.asyncIterator]=function(){return this},a;function s(v){return function(y){return Promise.resolve(y).then(v,p)}}function l(v,y){r[v]&&(a[v]=function(_){return new Promise(function(x,S){o.push([v,_,x,S])>1||u(v,_)})},y&&(a[v]=y(a[v])))}function u(v,y){try{c(r[v](y))}catch(_){m(o[0][3],_)}}function c(v){v.value instanceof dd?Promise.resolve(v.value.v).then(f,p):m(o[0][2],v)}function f(v){u("next",v)}function p(v){u("throw",v)}function m(v,y){v(y),o.shift(),o.length&&u(o[0][0],o[0][1])}},Ofe=function(e){var t,n;return t={},r("next"),r("throw",function(a){throw a}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(a,o){t[a]=e[a]?function(s){return(n=!n)?{value:dd(e[a](s)),done:!1}:o?o(s):s}:o}};function FA(e){return Efe(this,arguments,function*(){yield dd(yield*Ofe(Pfe(e)))})}var BA=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=e[o]&&function(s){return new Promise(function(l,u){s=e[o](s),a(l,u,s.done,s.value)})}}function a(o,s,l,u){Promise.resolve(u).then(function(c){o({value:c,done:l})},s)}},Ll=function(e){return this instanceof Ll?(this.v=e,this):new Ll(e)},Cfe=function(e){var t,n;return t={},r("next"),r("throw",function(a){throw a}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(a,o){t[a]=e[a]?function(s){return(n=!n)?{value:Ll(e[a](s)),done:!1}:o?o(s):s}:o}},Ife=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),a,o=[];return a={},l("next"),l("throw"),l("return",s),a[Symbol.asyncIterator]=function(){return this},a;function s(v){return function(y){return Promise.resolve(y).then(v,p)}}function l(v,y){r[v]&&(a[v]=function(_){return new Promise(function(x,S){o.push([v,_,x,S])>1||u(v,_)})},y&&(a[v]=y(a[v])))}function u(v,y){try{c(r[v](y))}catch(_){m(o[0][3],_)}}function c(v){v.value instanceof Ll?Promise.resolve(v.value.v).then(f,p):m(o[0][2],v)}function f(v){u("next",v)}function p(v){u("throw",v)}function m(v,y){v(y),o.shift(),o.length&&u(o[0][0],o[0][1])}};function ko(e,t){return LA(e,n=>{switch(n.kind){case ne.Unary:return Rfe(t,e,n);case ne.ServerStreaming:return Mfe(t,e,n);case ne.ClientStreaming:return Dfe(t,e,n);case ne.BiDiStreaming:return Nfe(t,e,n);default:return null}})}function Rfe(e,t,n){return async function(r,a){var o,s;let l=await e.unary(t,n,a?.signal,a?.timeoutMs,a?.headers,r,a?.contextValues);return(o=a?.onHeader)===null||o===void 0||o.call(a,l.header),(s=a?.onTrailer)===null||s===void 0||s.call(a,l.trailer),l.message}}function Mfe(e,t,n){return function(r,a){return JA(e.stream(t,n,a?.signal,a?.timeoutMs,a?.headers,FA([r]),a?.contextValues),a)}}function Dfe(e,t,n){return async function(r,a){var o,s,l,u,c,f;let p=await e.stream(t,n,a?.signal,a?.timeoutMs,a?.headers,r,a?.contextValues);(c=a?.onHeader)===null||c===void 0||c.call(a,p.header);let m;try{for(var v=!0,y=BA(p.message),_;_=await y.next(),o=_.done,!o;v=!0)u=_.value,v=!1,m=u}catch(x){s={error:x}}finally{try{!v&&!o&&(l=y.return)&&await l.call(y)}finally{if(s)throw s.error}}if(!m)throw new xt("protocol error: missing response message",we.Internal);return(f=a?.onTrailer)===null||f===void 0||f.call(a,p.trailer),m}}function Nfe(e,t,n){return function(r,a){return JA(e.stream(t,n,a?.signal,a?.timeoutMs,a?.headers,r,a?.contextValues),a)}}function JA(e,t){let n=function(){var r,a;return Ife(this,arguments,function*(){let o=yield Ll(e);(r=t?.onHeader)===null||r===void 0||r.call(t,o.header),yield Ll(yield*Cfe(BA(o.message))),(a=t?.onTrailer)===null||a===void 0||a.call(t,o.trailer)})}()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function UA(...e){let t=new AbortController,n=e.filter(a=>a!==void 0).concat(t.signal);for(let a of n){if(a.aborted){r.apply(a);break}a.addEventListener("abort",r)}function r(){t.signal.aborted||t.abort(b_(this));for(let a of n)a.removeEventListener("abort",r)}return t}function jA(e){let t=new AbortController,n=()=>{t.abort(new xt("the operation timed out",we.DeadlineExceeded))},r;return e!==void 0&&(e<=0?n():r=setTimeout(n,e)),{signal:t.signal,cleanup:()=>clearTimeout(r)}}function b_(e){if(!e.aborted)return;if(e.reason!==void 0)return e.reason;let t=new Error("This operation was aborted");return t.name="AbortError",t}function gv(){return{get(e){return e.id in this?this[e.id]:e.defaultValue},set(e,t){return this[e.id]=t,this},delete(e){return delete this[e.id],this}}}function yv(e,t,n){let r=typeof t=="string"?t:t.typeName,a=typeof n=="string"?n:n.name;return e.toString().replace(/\/?$/,`/${r}/${a}`)}function x_(e,t){return t instanceof e?t:new e(t)}function zA(e,t){function n(r){return r.done===!0?r:{done:r.done,value:x_(e,r.value)}}return{[Symbol.asyncIterator](){let r=t[Symbol.asyncIterator](),a={next:()=>r.next().then(n)};return r.throw!==void 0&&(a.throw=o=>r.throw(o).then(n)),r.return!==void 0&&(a.return=o=>r.return(o).then(n)),a}}}function wv(e){var t;let n=Object.assign({},e);return(t=n.ignoreUnknownFields)!==null&&t!==void 0||(n.ignoreUnknownFields=!0),n}function bv(e,t,n,r){let a=t?GA(e.I,r):YA(e.I,n);return{parse:(t?GA(e.O,r):YA(e.O,n)).parse,serialize:a.serialize}}function GA(e,t){return{parse(n){try{return e.fromBinary(n,t)}catch(r){let a=r instanceof Error?r.message:String(r);throw new xt(`parse binary: ${a}`,we.InvalidArgument)}},serialize(n){try{return n.toBinary(t)}catch(r){let a=r instanceof Error?r.message:String(r);throw new xt(`serialize binary: ${a}`,we.Internal)}}}}function YA(e,t){var n,r;let a=(n=t?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,o=(r=t?.textDecoder)!==null&&r!==void 0?r:new TextDecoder,s=wv(t);return{parse(l){try{let u=o.decode(l);return e.fromJsonString(u,s)}catch(u){throw xt.from(u,we.InvalidArgument)}},serialize(l){try{let u=l.toJsonString(s);return a.encode(u)}catch(u){throw xt.from(u,we.Internal)}}}}var $fe=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var VA="application/proto",HA="application/json",qA="application/connect+proto",WA="application/connect+json";function XA(e){let t=e?.match($fe);if(!t)return;let n=!!t[1],r=!!t[3];return{stream:n,binary:r}}function fd(e,t,n){if(t&&new Headers(t).forEach((s,l)=>n.metadata.append(l,s)),typeof e!="object"||e==null||Array.isArray(e)||!("code"in e)||typeof e.code!="string")throw n;let r=AA(e.code);if(r===void 0)throw n;let a=e.message;if(a!=null&&typeof a!="string")throw n;let o=new xt(a??"",r,t);if("details"in e&&Array.isArray(e.details))for(let s of e.details){if(s===null||typeof s!="object"||Array.isArray(s)||typeof s.type!="string"||typeof s.value!="string"||"debug"in s&&typeof s.debug!="object")throw n;try{o.details.push({type:s.type,value:Ea.dec(s.value),debug:s.debug})}catch{throw n}}return o}var xv=2;function S_(e){let t=new xt("invalid end stream",we.InvalidArgument),n;try{n=JSON.parse(typeof e=="string"?e:new TextDecoder().decode(e))}catch{throw t}if(typeof n!="object"||n==null||Array.isArray(n))throw t;let r=new Headers;if("metadata"in n){if(typeof n.metadata!="object"||n.metadata==null||Array.isArray(n.metadata))throw t;for(let[o,s]of Object.entries(n.metadata)){if(!Array.isArray(s)||s.some(l=>typeof l!="string"))throw t;for(let l of s)r.append(o,l)}}let a="error"in n?fd(n.error,r,t):void 0;return{metadata:r,error:a}}var hd="Content-Type",KA="Content-Length",Sv="Content-Encoding";var k_="Accept-Encoding";var QA="Connect-Timeout-Ms",kv="Connect-Protocol-Version",ZA="User-Agent";function eL(e){switch(e){case 400:return we.InvalidArgument;case 401:return we.Unauthenticated;case 403:return we.PermissionDenied;case 404:return we.Unimplemented;case 408:return we.DeadlineExceeded;case 409:return we.Aborted;case 412:return we.FailedPrecondition;case 413:return we.ResourceExhausted;case 415:return we.Internal;case 429:return we.Unavailable;case 431:return we.ResourceExhausted;case 502:return we.Unavailable;case 503:return we.Unavailable;case 504:return we.Unavailable;default:return we.Unknown}}function _v(e){let t=new Headers,n=new Headers;return e.forEach((r,a)=>{a.toLowerCase().startsWith("trailer-")?n.set(a.substring(8),r):t.set(a,r)}),[t,n]}var Tv="1";function Pv(e,t,n,r,a){let o=new Headers(r??{});return n!==void 0&&o.set(QA,`${n}`),o.set(hd,e==ne.Unary?t?VA:HA:t?qA:WA),o.set(kv,Tv),a&&o.set(ZA,"connect-es/1.3.0"),o}function Ev(e,t,n){let r=n.get("Content-Type"),a=XA(r);if(t!==200){let o=new xt(`HTTP ${t}`,eL(t),n);if(e==ne.Unary&&a&&!a.binary)return{isUnaryError:!0,unaryError:o};throw o}return{isUnaryError:!1}}var tL="application/";function Lfe(e,t){return t?Ea.enc(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):encodeURIComponent(new TextDecoder().decode(e))}function __(e,t,n){let r=`?connect=v${Tv}`,a=e.header.get(hd);a?.indexOf(tL)===0&&(r+="&encoding="+encodeURIComponent(a.slice(tL.length)));let o=e.header.get(Sv);o!==null&&o!=="identity"&&(r+="&compression="+encodeURIComponent(o),n=!0),n&&(r+="&base64=1"),r+="&message="+Lfe(t,n);let s=e.url+r,l=new Headers(e.header);return[kv,hd,KA,Sv,k_].forEach(u=>l.delete(u)),Object.assign(Object.assign({},e),{init:Object.assign(Object.assign({},e.init),{method:"GET"}),url:s,header:l})}function T_(e){let t=rL(e.next,e.interceptors),[n,r,a]=nL(e),o=Object.assign(Object.assign({},e.req),{message:x_(e.req.method.I,e.req.message),signal:n});return t(o).then(s=>(a(),s),r)}function P_(e){let t=rL(e.next,e.interceptors),[n,r,a]=nL(e),o=Object.assign(Object.assign({},e.req),{message:zA(e.req.method.I,e.req.message),signal:n}),s=!1;return n.addEventListener("abort",function(){var l,u;let c=e.req.message[Symbol.asyncIterator]();s||(l=c.throw)===null||l===void 0||l.call(c,this.reason).catch(()=>{}),(u=c.return)===null||u===void 0||u.call(c).catch(()=>{})}),t(o).then(l=>Object.assign(Object.assign({},l),{message:{[Symbol.asyncIterator](){let u=l.message[Symbol.asyncIterator]();return{next(){return u.next().then(c=>(c.done==!0&&(s=!0,a()),c),r)}}}}}),r)}function nL(e){let{signal:t,cleanup:n}=jA(e.timeoutMs),r=UA(e.signal,t);return[r.signal,function(o){let s=xt.from(t.aborted?b_(t):o);return r.abort(s),n(),Promise.reject(s)},function(){n(),r.abort()}]}function rL(e,t){var n;return(n=t?.concat().reverse().reduce((r,a)=>a(r),e))!==null&&n!==void 0?n:e}function iL(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var pd=function(e){return this instanceof pd?(this.v=e,this):new pd(e)},Ffe=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),a,o=[];return a={},l("next"),l("throw"),l("return",s),a[Symbol.asyncIterator]=function(){return this},a;function s(v){return function(y){return Promise.resolve(y).then(v,p)}}function l(v,y){r[v]&&(a[v]=function(_){return new Promise(function(x,S){o.push([v,_,x,S])>1||u(v,_)})},y&&(a[v]=y(a[v])))}function u(v,y){try{c(r[v](y))}catch(_){m(o[0][3],_)}}function c(v){v.value instanceof pd?Promise.resolve(v.value.v).then(f,p):m(o[0][2],v)}function f(v){u("next",v)}function p(v){u("throw",v)}function m(v,y){v(y),o.shift(),o.length&&u(o[0][0],o[0][1])}};function E_(e){var t;iL();let n=(t=e.useBinaryFormat)!==null&&t!==void 0?t:!1;return{async unary(r,a,o,s,l,u,c){var f;let{serialize:p,parse:m}=bv(a,n,e.jsonOptions,e.binaryOptions);return s=s===void 0?e.defaultTimeoutMs:s<=0?void 0:s,await T_({interceptors:e.interceptors,signal:o,timeoutMs:s,req:{stream:!1,service:r,method:a,url:yv(e.baseUrl,r,a),init:{method:"POST",credentials:(f=e.credentials)!==null&&f!==void 0?f:"same-origin",redirect:"error",mode:"cors"},header:Pv(a.kind,n,s,l,!1),contextValues:c??gv(),message:u},next:async v=>{var y;let _=e.useHttpGet===!0&&a.idempotency===qc.NoSideEffects,x=null;_?v=__(v,p(v.message),n):x=p(v.message);let k=await((y=e.fetch)!==null&&y!==void 0?y:globalThis.fetch)(v.url,Object.assign(Object.assign({},v.init),{headers:v.header,signal:v.signal,body:x})),{isUnaryError:P,unaryError:C}=Ev(a.kind,k.status,k.headers);if(P)throw fd(await k.json(),g_(..._v(k.headers)),C);let[A,L]=_v(k.headers);return{stream:!1,service:r,method:a,header:A,message:n?m(new Uint8Array(await k.arrayBuffer())):a.O.fromJson(await k.json(),wv(e.jsonOptions)),trailer:L}}})},async stream(r,a,o,s,l,u,c){var f;let{serialize:p,parse:m}=bv(a,n,e.jsonOptions,e.binaryOptions);function v(_,x,S){return Ffe(this,arguments,function*(){let P=y_(_).getReader(),C=!1;for(;;){let A=yield pd(P.read());if(A.done)break;let{flags:L,data:$}=A.value;if((L&xv)===xv){C=!0;let E=S_($);if(E.error){let R=E.error;throw S.forEach((D,F)=>{R.metadata.append(F,D)}),R}E.metadata.forEach((R,D)=>x.set(D,R));continue}yield yield pd(m($))}if(!C)throw"missing EndStreamResponse"})}async function y(_){if(a.kind!=ne.ServerStreaming)throw"The fetch API does not support streaming request bodies";let x=await _[Symbol.asyncIterator]().next();if(x.done==!0)throw"missing request message";return w_(0,p(x.value))}return s=s===void 0?e.defaultTimeoutMs:s<=0?void 0:s,await P_({interceptors:e.interceptors,timeoutMs:s,signal:o,req:{stream:!0,service:r,method:a,url:yv(e.baseUrl,r,a),init:{method:"POST",credentials:(f=e.credentials)!==null&&f!==void 0?f:"same-origin",redirect:"error",mode:"cors"},header:Pv(a.kind,n,s,l,!1),contextValues:c??gv(),message:u},next:async _=>{var x;let k=await((x=e.fetch)!==null&&x!==void 0?x:globalThis.fetch)(_.url,Object.assign(Object.assign({},_.init),{headers:_.header,signal:_.signal,body:await y(_.message)}));if(Ev(a.kind,k.status,k.headers),k.body===null)throw"missing response body";let P=new Headers;return Object.assign(Object.assign({},_),{header:k.headers,trailer:P,message:v(k.body,P,k.headers)})}})}}}var Bfe="https://demo.justshare.com",md=E_({baseUrl:`${Bfe}/api`||"error"}),uye=ko(RA,md),aL=ko(MA,md),cye=ko(DA,md),dye=ko(NA,md),fye=ko($A,md);function Jfe(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=Math.random()*16|0,n=e==="x"?t:t&3|8;return n.toString(16)})}function _o(e,t){return new Xn({id:Jfe(),tags:t,type:{case:"data",value:new sd({type:{case:"url",value:{url:e}}})}})}var De=nn(Bi(),1),uL=()=>{let[e,t]=(0,hr.useState)(void 0),[n,r]=(0,hr.useState)(document.title||window.location.href),[a,o]=(0,hr.useState)(void 0),[s,l]=(0,hr.useState)(["browser/save"]),[u,c]=(0,hr.useState)(window.location.href),[f,p]=(0,hr.useState)(""),[m,v]=(0,hr.useState)([]),[y,_]=(0,hr.useState)("tags"),[x,S]=(0,hr.useState)(void 0);(0,hr.useEffect)(()=>{let R=D=>{};return document.addEventListener("keydown",R),document.addEventListener("mouseup",k),()=>{document.removeEventListener("keydown",R),document.removeEventListener("mouseup",k)}},[]);let k=()=>{let R=window.getSelection()?.toString();R&&p(R)},P=R=>{l([...s,R]),o("")},C=()=>{f&&(v([...m,f]),p(""))},A=async()=>{S(void 0);try{let R=await aL.analyze(_o(u,s));console.log(R)}catch(R){console.error(R)}},L=async()=>{t(void 0);let R=_o(u,s);chrome.runtime.sendMessage({action:zp,data:R.toJson()},D=>{console.log("content","save response",D)})},$=R=>{v(m.filter((D,F)=>F!==R))},E=R=>{v(s.filter((D,F)=>F!==R))};return(0,De.jsxs)("div",{id:"floating-panel",children:[(0,De.jsx)("input",{type:"text",value:n,onChange:R=>r(R.target.value)}),(0,De.jsxs)("div",{className:"tablist",children:[(0,De.jsx)("button",{onClick:()=>_("tags"),children:"Tags"}),(0,De.jsx)("button",{onClick:()=>_("annotations"),children:"Annotations"})]}),(0,De.jsxs)("div",{children:[y==="analyze"&&(0,De.jsxs)("div",{children:[(0,De.jsx)("button",{className:"button-primary",onClick:A,children:"Analyze"}),x&&(0,De.jsx)("ul",{children:x.map((R,D)=>R.tags.map((F,j)=>(0,De.jsx)("button",{onClick:()=>P(F),children:F},j)))})]}),y==="tags"&&(0,De.jsxs)("div",{children:[(0,De.jsx)("input",{type:"text",value:a,placeholder:"tag",onChange:R=>o(R.target.value)}),(0,De.jsx)("button",{className:"button-primary",onClick:()=>a&&P(a),children:"Add"}),s.length>0&&(0,De.jsx)("table",{className:"table",children:(0,De.jsx)("tbody",{children:s.map((R,D)=>(0,De.jsx)("tr",{className:"table-row",children:(0,De.jsxs)("td",{className:"table-cell",children:[R,(0,De.jsx)("button",{className:"button-primary",onClick:()=>E(D),children:"Remove"})]})},D))})})]}),y==="annotations"&&(0,De.jsxs)("div",{children:[(0,De.jsx)("textarea",{rows:4,value:f,onChange:R=>p(R.target.value)}),(0,De.jsx)("button",{className:"button-primary",onClick:C,children:"Add"}),m.length>0&&(0,De.jsx)("table",{className:"table",children:(0,De.jsx)("tbody",{children:m.map((R,D)=>(0,De.jsx)("tr",{className:"table-row",children:(0,De.jsxs)("td",{className:"table-cell",children:[R,(0,De.jsx)("button",{className:"button-primary",onClick:()=>$(D),children:"Remove"})]})},D))})})]})]}),(0,De.jsx)("div",{style:{display:"flex",gap:"10px"},children:(0,De.jsx)("button",{className:"button-primary",onClick:L,children:"Save"})}),e&&(0,De.jsx)("div",{style:{color:"red"},children:e})]})};var Mn=nn(Bi(),1),O_=Y$([]),Hfe={padding:"10px",backgroundColor:"white",border:"1px solid #ccc",color:"black",maxHeight:"300px",overflowY:"auto",zIndex:9999,right:"10px",bottom:"10px",position:"fixed"},qfe=e=>{switch(e.type.case){case"data":let t=e.type.value;switch(t.type.case){case"url":return t.type.value.url}break}return"unknown"},cL=()=>{let[e,t]=(0,Fl.useState)(!1),[n,r]=(0,Fl.useState)(void 0),[a,o]=jp(O_);(0,Fl.useEffect)(()=>{let u=c=>{c.ctrlKey&&c.key==="l"&&(c.preventDefault(),t(!e))};return document.addEventListener("keydown",u),()=>{document.removeEventListener("keydown",u)}},[e]),(0,Fl.useEffect)(()=>{chrome.runtime.sendMessage({action:X$,data:"TODO make url?"},u=>{u.data&&(r(u.data),t(!0))})},[]);let s=()=>{if(!n)return;let u=new URL(n.from),c=_o(n.to,["browser/history",u.host]);chrome.runtime.sendMessage({action:zp,data:c},f=>{t(!1)}),r(void 0)},l=()=>{t(!1),r(void 0)};return a.length===0&&!e?null:(0,Mn.jsxs)("div",{id:"floating-panel",style:Hfe,children:[(0,Mn.jsx)("ul",{children:a.map(u=>(0,Mn.jsxs)("li",{children:[(0,Mn.jsx)("button",{className:"btn",style:{userSelect:"none"},onClick:()=>{o(c=>c.filter(f=>f.id!==u.id))},children:"X"}),qfe(u)]}))}),n?(0,Mn.jsxs)(Mn.Fragment,{children:[(0,Mn.jsx)("h5",{children:"Save this page?"}),(0,Mn.jsxs)("div",{className:"flex flex-row",children:[(0,Mn.jsx)("button",{className:"btn",onClick:s,children:"Yes"}),(0,Mn.jsx)("button",{className:"btn",onClick:l,children:"No"})]})]}):(0,Mn.jsx)(uL,{})]})};var et=nn(Bi(),1),Wfe=e=>{let t=new Map,n=0,r=e.nodes.map((o,s)=>{let u=new URL(o.url||"").hostname;t.has(u)||t.set(u,n++);let c=t.get(u);return{id:s,group:c,content:o.title||o.url,start:new Date(o.open||0),end:new Date(o.close||0)}});return{items:Array.from(t.entries()).map(([o,s])=>({id:s,content:o})).sort((o,s)=>{let l=r.filter(p=>p.group===o.id),u=r.filter(p=>p.group===s.id),c=Math.max(...l.map(p=>p.start.getTime()));return Math.max(...u.map(p=>p.start.getTime()))-c}).map((o,s)=>{let l=r.filter(u=>u.group===o.id);return{id:o.id,content:o.content,start:Math.max(...l.map(u=>u.start.getTime())),group:1}}),groups:[{id:1,content:"Visits"}]}},dL=()=>{let[e,t]=(0,Xr.useState)(void 0),[n,r]=(0,Xr.useState)([]),[a,o]=jp(O_),[s,l]=(0,Xr.useState)(void 0),[u,c]=(0,Xr.useState)(15),f=async()=>{let y=await chrome.runtime.sendMessage({action:K$});if(console.log(y),y&&y.data){let _=Nl.fromJsonString(y.data);console.log(_),l(_)}},p=async()=>{await chrome.runtime.sendMessage({action:Q$}),l(void 0)};(0,Xr.useEffect)(()=>{f()},[]);let m=s?.nodes.filter(y=>e?new URL(y.url||"").hostname===e:!0).sort((y,_)=>(_.close||0)-(y.close||0)),v=(0,Xr.useRef)(null);return(0,Xr.useEffect)(()=>{if(v.current&&s){let y=Wfe(s),_=new J$(v.current,y.items,y.groups,{height:"100%"}),x=new Date(new Date().getTime()+60*1e3),S=new Date(x.getTime()-60*u*1e3);return _.setWindow(S,x,{animation:!0}),_.on("select",k=>{t(y.items.find(P=>P.id===k.items[0]).content)}),()=>{_.destroy()}}},[s]),(0,et.jsxs)("div",{style:{height:"500px",width:"100%"},children:[(0,et.jsx)("div",{ref:v,style:{width:"100%",height:"100%"}}),(0,et.jsx)("input",{type:"number",value:u,onChange:y=>c(parseInt(y.target.value))}),(0,et.jsx)("button",{className:"btn",onClick:f,children:"reload"}),(0,et.jsx)("button",{className:"btn",onClick:p,children:"delete"}),e&&(0,et.jsxs)(et.Fragment,{children:[(0,et.jsx)("button",{onClick:()=>t(void 0),children:"clear"}),(0,et.jsxs)("p",{children:["visits to: ",e]})]}),(0,et.jsxs)("table",{children:[(0,et.jsx)("thead",{children:(0,et.jsxs)("tr",{children:[(0,et.jsx)("th",{children:"Add"}),(0,et.jsx)("th",{children:"Domain"}),(0,et.jsx)("th",{children:"URL"})]})}),(0,et.jsx)("tbody",{children:m&&m.map(y=>{let _=new URL(y.url||"");return(0,et.jsxs)("tr",{children:[(0,et.jsx)("td",{children:(0,et.jsx)(lk,{className:"h-3 w-3",onClick:()=>{o(x=>y.url?[...x,_o(y.url,[])]:x)}})}),(0,et.jsx)("td",{children:_.hostname}),(0,et.jsx)("td",{children:(0,et.jsx)("a",{href:y.url,target:"_blank",children:y.url})})]},y.id)})})]})]})};var vd=nn(Bi(),1),pL=document.createElement("div");document.body.appendChild(pL);var Xfe=hL.default.createRoot(pL);Xfe.render((0,vd.jsxs)(fL.default.StrictMode,{children:[(0,vd.jsx)(cL,{}),(0,vd.jsx)(dL,{})]}));})(); /*! Bundled license information: react/cjs/react.production.min.js: diff --git a/js/dist/extension/tailwind.css b/js/dist/extension/tailwind.css index a2cbfd02..977d4c2c 100644 --- a/js/dist/extension/tailwind.css +++ b/js/dist/extension/tailwind.css @@ -814,94 +814,40 @@ html { text-decoration-line: underline; } -.\!container { - width: 100% !important; -} - .container { width: 100%; } @media (min-width: 640px) { - .\!container { - max-width: 640px !important; - } - .container { max-width: 640px; } } @media (min-width: 768px) { - .\!container { - max-width: 768px !important; - } - .container { max-width: 768px; } } @media (min-width: 1024px) { - .\!container { - max-width: 1024px !important; - } - .container { max-width: 1024px; } } @media (min-width: 1280px) { - .\!container { - max-width: 1280px !important; - } - .container { max-width: 1280px; } } @media (min-width: 1536px) { - .\!container { - max-width: 1536px !important; - } - .container { max-width: 1536px; } } -.alert { - display: grid; - width: 100%; - grid-auto-flow: row; - align-content: flex-start; - align-items: center; - justify-items: center; - gap: 1rem; - text-align: center; - border-radius: var(--rounded-box, 1rem); - border-width: 1px; - --tw-border-opacity: 1; - border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); - padding: 1rem; - --tw-text-opacity: 1; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); - --alert-bg: var(--fallback-b2,oklch(var(--b2)/1)); - --alert-bg-mix: var(--fallback-b1,oklch(var(--b1)/1)); - background-color: var(--alert-bg); -} - -@media (min-width: 640px) { - .alert { - grid-auto-flow: column; - grid-template-columns: auto minmax(auto,1fr); - justify-items: start; - text-align: start; - } -} - .avatar.placeholder > div { display: flex; align-items: center; @@ -971,11 +917,6 @@ html { border-color: var(--fallback-a,oklch(var(--a)/var(--tw-border-opacity))); } - .\!label a:hover { - --tw-text-opacity: 1 !important; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))) !important; - } - .label a:hover { --tw-text-opacity: 1; color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); @@ -1551,15 +1492,6 @@ html { --tw-text-opacity: 0.2; } - .btm-nav > *.\!disabled:hover { - pointer-events: none !important; - --tw-border-opacity: 0 !important; - background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))) !important; - --tw-bg-opacity: 0.1 !important; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))) !important; - --tw-text-opacity: 0.2 !important; - } - .btn:hover { --tw-border-opacity: 1; border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity))); @@ -1729,24 +1661,6 @@ html { } } -.form-control { - display: flex; - flex-direction: column; -} - -.\!label { - display: flex !important; - -webkit-user-select: none !important; - -moz-user-select: none !important; - user-select: none !important; - align-items: center !important; - justify-content: space-between !important; - padding-left: 0.25rem !important; - padding-right: 0.25rem !important; - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; -} - .label { display: flex; -webkit-user-select: none; @@ -1923,14 +1837,6 @@ html { color: var(--fallback-bc,oklch(var(--bc)/0.3)); } -.menu li.\!disabled { - cursor: not-allowed !important; - -webkit-user-select: none !important; - -moz-user-select: none !important; - user-select: none !important; - color: var(--fallback-bc,oklch(var(--bc)/0.3)) !important; -} - .menu :where(li > .menu-dropdown:not(.menu-dropdown-show)) { display: none; } @@ -2061,19 +1967,6 @@ html { --tw-border-opacity: 0.2; } -.\!range { - height: 1.5rem !important; - width: 100% !important; - cursor: pointer !important; - -moz-appearance: none !important; - appearance: none !important; - -webkit-appearance: none !important; - --range-shdw: var(--fallback-bc,oklch(var(--bc)/1)) !important; - overflow: hidden !important; - border-radius: var(--rounded-box, 1rem) !important; - background-color: transparent !important; -} - .range { height: 1.5rem; width: 100%; @@ -2087,10 +1980,6 @@ html { background-color: transparent; } -.\!range:focus { - outline: none !important; -} - .range:focus { outline: none; } @@ -2156,20 +2045,6 @@ html { opacity: 1; } -.stats { - display: inline-grid; - border-radius: var(--rounded-box, 1rem); - --tw-bg-opacity: 1; - background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); - --tw-text-opacity: 1; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); -} - -:where(.stats) { - grid-auto-flow: column; - overflow-x: auto; -} - .stat { display: inline-grid; width: 100%; @@ -2204,59 +2079,6 @@ html { min-width: 4rem; } -.steps .\!step { - display: grid !important; - grid-template-columns: repeat(1, minmax(0, 1fr)) !important; - grid-template-columns: auto !important; - grid-template-rows: repeat(2, minmax(0, 1fr)) !important; - grid-template-rows: 40px 1fr !important; - place-items: center !important; - text-align: center !important; - min-width: 4rem !important; -} - -.swap { - position: relative; - display: inline-grid; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - place-content: center; - cursor: pointer; -} - -.swap > * { - grid-column-start: 1; - grid-row-start: 1; - transition-duration: 300ms; - transition-timing-function: cubic-bezier(0, 0, 0.2, 1); - transition-property: transform, opacity; -} - -.swap input { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} - -.swap .swap-on, -.swap .swap-indeterminate, -.swap input:indeterminate ~ .swap-on { - opacity: 0; -} - -.swap input:checked ~ .swap-off, -.swap-active .swap-off, -.swap input:indeterminate ~ .swap-off { - opacity: 0; -} - -.swap input:checked ~ .swap-on, -.swap-active .swap-on, -.swap input:indeterminate ~ .swap-indeterminate { - opacity: 1; -} - .tabs { display: grid; align-items: flex-end; @@ -2474,30 +2296,6 @@ input.tab:checked + .tab-content, padding: 1rem; } -.\!toggle { - flex-shrink: 0 !important; - --tglbg: var(--fallback-b1,oklch(var(--b1)/1)) !important; - --handleoffset: 1.5rem !important; - --handleoffsetcalculator: calc(var(--handleoffset) * -1) !important; - --togglehandleborder: 0 0 !important; - height: 1.5rem !important; - width: 3rem !important; - cursor: pointer !important; - -webkit-appearance: none !important; - -moz-appearance: none !important; - appearance: none !important; - border-radius: var(--rounded-badge, 1.9rem) !important; - border-width: 1px !important; - border-color: currentColor !important; - background-color: currentColor !important; - color: var(--fallback-bc,oklch(var(--bc)/0.5)) !important; - transition: background, - box-shadow var(--animation-input, 0.2s) ease-out !important; - box-shadow: var(--handleoffsetcalculator) 0 0 2px var(--tglbg) inset, - 0 0 0 2px var(--tglbg) inset, - var(--togglehandleborder) !important; -} - .toggle { flex-shrink: 0; --tglbg: var(--fallback-b1,oklch(var(--b1)/1)); @@ -2598,25 +2396,11 @@ input.tab:checked + .tab-content, --tw-text-opacity: 0.2; } -.btm-nav > *.\!disabled { - pointer-events: none !important; - --tw-border-opacity: 0 !important; - background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))) !important; - --tw-bg-opacity: 0.1 !important; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))) !important; - --tw-text-opacity: 0.2 !important; -} - .btm-nav > * .label { font-size: 1rem; line-height: 1.5rem; } -.btm-nav > * .\!label { - font-size: 1rem !important; - line-height: 1.5rem !important; -} - .btn:active:hover, .btn:active:focus { animation: button-pop 0s ease-out; @@ -2900,12 +2684,6 @@ input.tab:checked + .tab-content, line-height: 1.25rem; } -.card.\!compact .card-body { - padding: 1rem !important; - font-size: 0.875rem !important; - line-height: 1.25rem !important; -} - .card-title { display: flex; align-items: center; @@ -3479,29 +3257,14 @@ details.collapse summary::-webkit-details-marker { } } -.\!range:focus-visible::-webkit-slider-thumb { - --focus-shadow: 0 0 0 6px var(--fallback-b1,oklch(var(--b1)/1)) inset, 0 0 0 2rem var(--range-shdw) inset !important; -} - .range:focus-visible::-webkit-slider-thumb { --focus-shadow: 0 0 0 6px var(--fallback-b1,oklch(var(--b1)/1)) inset, 0 0 0 2rem var(--range-shdw) inset; } -.\!range:focus-visible::-moz-range-thumb { - --focus-shadow: 0 0 0 6px var(--fallback-b1,oklch(var(--b1)/1)) inset, 0 0 0 2rem var(--range-shdw) inset !important; -} - .range:focus-visible::-moz-range-thumb { --focus-shadow: 0 0 0 6px var(--fallback-b1,oklch(var(--b1)/1)) inset, 0 0 0 2rem var(--range-shdw) inset; } -.\!range::-webkit-slider-runnable-track { - height: 0.5rem !important; - width: 100% !important; - border-radius: var(--rounded-box, 1rem) !important; - background-color: var(--fallback-bc,oklch(var(--bc)/0.1)) !important; -} - .range::-webkit-slider-runnable-track { height: 0.5rem; width: 100%; @@ -3509,13 +3272,6 @@ details.collapse summary::-webkit-details-marker { background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); } -.\!range::-moz-range-track { - height: 0.5rem !important; - width: 100% !important; - border-radius: var(--rounded-box, 1rem) !important; - background-color: var(--fallback-bc,oklch(var(--bc)/0.1)) !important; -} - .range::-moz-range-track { height: 0.5rem; width: 100%; @@ -3523,26 +3279,6 @@ details.collapse summary::-webkit-details-marker { background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); } -.\!range::-webkit-slider-thumb { - position: relative !important; - height: 1.5rem !important; - width: 1.5rem !important; - border-radius: var(--rounded-box, 1rem) !important; - border-style: none !important; - --tw-bg-opacity: 1 !important; - background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))) !important; - appearance: none !important; - -webkit-appearance: none !important; - top: 50% !important; - color: var(--range-shdw) !important; - transform: translateY(-50%) !important; - --filler-size: 100rem !important; - --filler-offset: 0.6rem !important; - box-shadow: 0 0 0 3px var(--range-shdw) inset, - var(--focus-shadow, 0 0), - calc(var(--filler-size) * -1 - var(--filler-offset)) 0 0 var(--filler-size) !important; -} - .range::-webkit-slider-thumb { position: relative; height: 1.5rem; @@ -3563,23 +3299,6 @@ details.collapse summary::-webkit-details-marker { calc(var(--filler-size) * -1 - var(--filler-offset)) 0 0 var(--filler-size); } -.\!range::-moz-range-thumb { - position: relative !important; - height: 1.5rem !important; - width: 1.5rem !important; - border-radius: var(--rounded-box, 1rem) !important; - border-style: none !important; - --tw-bg-opacity: 1 !important; - background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))) !important; - top: 50% !important; - color: var(--range-shdw) !important; - --filler-size: 100rem !important; - --filler-offset: 0.5rem !important; - box-shadow: 0 0 0 3px var(--range-shdw) inset, - var(--focus-shadow, 0 0), - calc(var(--filler-size) * -1 - var(--filler-offset)) 0 0 var(--filler-size) !important; -} - .range::-moz-range-thumb { position: relative; height: 1.5rem; @@ -3665,19 +3384,6 @@ details.collapse summary::-webkit-details-marker { } } -:where(.stats) > :not([hidden]) ~ :not([hidden]) { - --tw-divide-x-reverse: 0; - border-right-width: calc(1px * var(--tw-divide-x-reverse)); - border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse))); - --tw-divide-y-reverse: 0; - border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse))); - border-bottom-width: calc(0px * var(--tw-divide-y-reverse)); -} - -:is([dir="rtl"] .stats > :not([hidden]) ~ :not([hidden])) { - --tw-divide-x-reverse: 1; -} - .steps .step:before { top: 0px; grid-column-start: 1; @@ -3693,21 +3399,6 @@ details.collapse summary::-webkit-details-marker { margin-inline-start: -100%; } -.steps .\!step:before { - top: 0px !important; - grid-column-start: 1 !important; - grid-row-start: 1 !important; - height: 0.5rem !important; - width: 100% !important; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important; - --tw-bg-opacity: 1 !important; - background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity))) !important; - --tw-text-opacity: 1 !important; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))) !important; - content: "" !important; - margin-inline-start: -100% !important; -} - .steps .step:after { content: counter(step); counter-increment: step; @@ -3727,41 +3418,14 @@ details.collapse summary::-webkit-details-marker { color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); } -.steps .\!step:after { - content: counter(step) !important; - counter-increment: step !important; - z-index: 1 !important; - position: relative !important; - grid-column-start: 1 !important; - grid-row-start: 1 !important; - display: grid !important; - height: 2rem !important; - width: 2rem !important; - place-items: center !important; - place-self: center !important; - border-radius: 9999px !important; - --tw-bg-opacity: 1 !important; - background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity))) !important; - --tw-text-opacity: 1 !important; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))) !important; -} - .steps .step:first-child:before { content: none; } -.steps .\!step:first-child:before { - content: none !important; -} - .steps .step[data-content]:after { content: attr(data-content); } -.steps .\!step[data-content]:after { - content: attr(data-content) !important; -} - .steps .step-neutral + .step-neutral:before, .steps .step-neutral:after { --tw-bg-opacity: 1; @@ -4224,21 +3888,10 @@ details.collapse summary::-webkit-details-marker { } } -[dir="rtl"] .\!toggle { - --handleoffsetcalculator: calc(var(--handleoffset) * 1) !important; -} - [dir="rtl"] .toggle { --handleoffsetcalculator: calc(var(--handleoffset) * 1); } -.\!toggle:focus-visible { - outline-style: solid !important; - outline-width: 2px !important; - outline-offset: 2px !important; - outline-color: var(--fallback-bc,oklch(var(--bc)/0.2)) !important; -} - .toggle:focus-visible { outline-style: solid; outline-width: 2px; @@ -4246,23 +3899,10 @@ details.collapse summary::-webkit-details-marker { outline-color: var(--fallback-bc,oklch(var(--bc)/0.2)); } -.\!toggle:hover { - background-color: currentColor !important; -} - .toggle:hover { background-color: currentColor; } -.\!toggle:checked, - .\!toggle[checked="true"], - .\!toggle[aria-checked="true"] { - background-image: none !important; - --handleoffsetcalculator: var(--handleoffset) !important; - --tw-text-opacity: 1 !important; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))) !important; -} - .toggle:checked, .toggle[checked="true"], .toggle[aria-checked="true"] { @@ -4272,35 +3912,10 @@ details.collapse summary::-webkit-details-marker { color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); } -.\!toggle:checked, - .\!toggle[checked="true"], - .\!toggle[aria-checked="true"] { - background-image: none !important; - --handleoffsetcalculator: var(--handleoffset) !important; - --tw-text-opacity: 1 !important; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))) !important; -} - -[dir="rtl"] .\!toggle:checked, [dir="rtl"] .\!toggle[checked="true"], [dir="rtl"] .\!toggle[aria-checked="true"] { - --handleoffsetcalculator: calc(var(--handleoffset) * -1) !important; -} - [dir="rtl"] .toggle:checked, [dir="rtl"] .toggle[checked="true"], [dir="rtl"] .toggle[aria-checked="true"] { --handleoffsetcalculator: calc(var(--handleoffset) * -1); } -[dir="rtl"] .\!toggle:checked, [dir="rtl"] .\!toggle[checked="true"], [dir="rtl"] .\!toggle[aria-checked="true"] { - --handleoffsetcalculator: calc(var(--handleoffset) * -1) !important; -} - -.\!toggle:indeterminate { - --tw-text-opacity: 1 !important; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))) !important; - box-shadow: calc(var(--handleoffset) / 2) 0 0 2px var(--tglbg) inset, - calc(var(--handleoffset) / -2) 0 0 2px var(--tglbg) inset, - 0 0 0 2px var(--tglbg) inset !important; -} - .toggle:indeterminate { --tw-text-opacity: 1; color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); @@ -4309,28 +3924,12 @@ details.collapse summary::-webkit-details-marker { 0 0 0 2px var(--tglbg) inset; } -[dir="rtl"] .\!toggle:indeterminate { - box-shadow: calc(var(--handleoffset) / 2) 0 0 2px var(--tglbg) inset, - calc(var(--handleoffset) / -2) 0 0 2px var(--tglbg) inset, - 0 0 0 2px var(--tglbg) inset !important; -} - [dir="rtl"] .toggle:indeterminate { box-shadow: calc(var(--handleoffset) / 2) 0 0 2px var(--tglbg) inset, calc(var(--handleoffset) / -2) 0 0 2px var(--tglbg) inset, 0 0 0 2px var(--tglbg) inset; } -.\!toggle:disabled { - cursor: not-allowed !important; - --tw-border-opacity: 1 !important; - border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))) !important; - background-color: transparent !important; - opacity: 0.3 !important; - --togglehandleborder: 0 0 0 3px var(--fallback-bc,oklch(var(--bc)/1)) inset, - var(--handleoffsetcalculator) 0 0 3px var(--fallback-bc,oklch(var(--bc)/1)) inset !important; -} - .toggle:disabled { cursor: not-allowed; --tw-border-opacity: 1; @@ -4630,14 +4229,6 @@ details.collapse summary::-webkit-details-marker { position: absolute; } -.steps-horizontal .\!step { - display: grid !important; - grid-template-columns: repeat(1, minmax(0, 1fr)) !important; - grid-template-rows: repeat(2, minmax(0, 1fr)) !important; - place-items: center !important; - text-align: center !important; -} - .steps-horizontal .step { display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); @@ -4646,12 +4237,6 @@ details.collapse summary::-webkit-details-marker { text-align: center; } -.steps-vertical .\!step { - display: grid !important; - grid-template-columns: repeat(2, minmax(0, 1fr)) !important; - grid-template-rows: repeat(1, minmax(0, 1fr)) !important; -} - .steps-vertical .step { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); @@ -4894,28 +4479,12 @@ details.collapse summary::-webkit-details-marker { border-bottom-left-radius: 0px; } -.steps-horizontal .\!step { - grid-template-rows: 40px 1fr !important; - grid-template-columns: auto !important; - min-width: 4rem !important; -} - .steps-horizontal .step { grid-template-rows: 40px 1fr; grid-template-columns: auto; min-width: 4rem; } -.steps-horizontal .\!step:before { - height: 0.5rem !important; - width: 100% !important; - --tw-translate-x: 0px !important; - --tw-translate-y: 0px !important; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important; - content: "" !important; - margin-inline-start: -100% !important; -} - .steps-horizontal .step:before { height: 0.5rem; width: 100%; @@ -4926,24 +4495,11 @@ details.collapse summary::-webkit-details-marker { margin-inline-start: -100%; } -:is([dir="rtl"] .steps-horizontal .\!step):before { - --tw-translate-x: 0px !important; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important; -} - :is([dir="rtl"] .steps-horizontal .step):before { --tw-translate-x: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } -.steps-vertical .\!step { - gap: 0.5rem !important; - grid-template-columns: 40px 1fr !important; - grid-template-rows: auto !important; - min-height: 4rem !important; - justify-items: start !important; -} - .steps-vertical .step { gap: 0.5rem; grid-template-columns: 40px 1fr; @@ -4952,15 +4508,6 @@ details.collapse summary::-webkit-details-marker { justify-items: start; } -.steps-vertical .\!step:before { - height: 100% !important; - width: 0.5rem !important; - --tw-translate-x: -50% !important; - --tw-translate-y: -50% !important; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important; - margin-inline-start: 50% !important; -} - .steps-vertical .step:before { height: 100%; width: 0.5rem; @@ -4970,11 +4517,6 @@ details.collapse summary::-webkit-details-marker { margin-inline-start: 50%; } -:is([dir="rtl"] .steps-vertical .\!step):before { - --tw-translate-x: 50% !important; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important; -} - :is([dir="rtl"] .steps-vertical .step):before { --tw-translate-x: 50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); @@ -5099,10 +4641,6 @@ details.collapse summary::-webkit-details-marker { position: fixed; } -.\!absolute { - position: absolute !important; -} - .absolute { position: absolute; } @@ -5216,14 +4754,6 @@ details.collapse summary::-webkit-details-marker { display: grid; } -.\!contents { - display: contents !important; -} - -.contents { - display: contents; -} - .hidden { display: none; } @@ -5264,18 +4794,10 @@ details.collapse summary::-webkit-details-marker { max-height: 18rem; } -.max-h-\[300px\] { - max-height: 300px; -} - .min-h-full { min-height: 100%; } -.w-1 { - width: 0.25rem; -} - .w-3 { width: 0.75rem; } @@ -5332,18 +4854,10 @@ details.collapse summary::-webkit-details-marker { flex-grow: 1; } -.grow { - flex-grow: 1; -} - .border-collapse { border-collapse: collapse; } -.\!transform { - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important; -} - .transform { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } @@ -5607,18 +5121,10 @@ details.collapse summary::-webkit-details-marker { font-weight: 600; } -.uppercase { - text-transform: uppercase; -} - .lowercase { text-transform: lowercase; } -.capitalize { - text-transform: capitalize; -} - .italic { font-style: italic; } @@ -5673,12 +5179,6 @@ details.collapse summary::-webkit-details-marker { box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } -.shadow-xl { - --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - .outline { outline-style: solid; } @@ -5697,14 +5197,6 @@ details.collapse summary::-webkit-details-marker { filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); } -.\!transition { - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter !important; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter !important; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter !important; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important; - transition-duration: 150ms !important; -} - .transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; diff --git a/js/dist/site/index.html b/js/dist/site/index.html index 672426c2..04d84bcc 100644 --- a/js/dist/site/index.html +++ b/js/dist/site/index.html @@ -4,7 +4,7 @@ - LunaBrain + justshare diff --git a/js/dist/site/index.js b/js/dist/site/index.js index 447f0008..739d1a3a 100644 --- a/js/dist/site/index.js +++ b/js/dist/site/index.js @@ -187,7 +187,7 @@ to { pointer-events: auto; } `,Um=16,yM=({reverseOrder:t,position:e="top-center",toastOptions:n,gutter:r,children:o,containerStyle:i,containerClassName:s})=>{let{toasts:a,handlers:l}=lV(n);return ts.createElement("div",{style:{position:"fixed",zIndex:9999,top:Um,left:Um,right:Um,bottom:Um,pointerEvents:"none",...i},className:s,onMouseEnter:l.startPause,onMouseLeave:l.endPause},a.map(u=>{let c=u.position||e,d=l.calculateOffset(u,{reverseOrder:t,gutter:r,defaultPosition:e}),f=AV(c,d);return ts.createElement(MV,{id:u.id,key:u.id,onHeightUpdate:l.updateHeight,className:u.visible?IV:"",style:f},u.type==="custom"?qm(u.message,u):o?o(u):ts.createElement(PV,{toast:u,position:c}))}))},Xe=br;var Un=Y(Ee());var Re=Y(Ee());function Hm(){return Hm=Object.assign?Object.assign.bind():function(t){for(var e=1;e"u")throw new Error(e)}function Fb(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function LV(){return Math.random().toString(36).substr(2,8)}function wM(t,e){return{usr:t.state,key:t.key,idx:e}}function Db(t,e,n,r){return n===void 0&&(n=null),Hm({pathname:typeof t=="string"?t:t.pathname,search:"",hash:""},typeof e=="string"?Vl(e):e,{state:n,key:e&&e.key||r||LV()})}function $m(t){let{pathname:e="/",search:n="",hash:r=""}=t;return n&&n!=="?"&&(e+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function Vl(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substr(n),t=t.substr(0,n));let r=t.indexOf("?");r>=0&&(e.search=t.substr(r),t=t.substr(0,r)),t&&(e.pathname=t)}return e}function DV(t,e,n,r){r===void 0&&(r={});let{window:o=document.defaultView,v5Compat:i=!1}=r,s=o.history,a=Co.Pop,l=null,u=c();u==null&&(u=0,s.replaceState(Hm({},s.state,{idx:u}),""));function c(){return(s.state||{idx:null}).idx}function d(){a=Co.Pop;let v=c(),g=v==null?null:v-u;u=v,l&&l({action:a,location:y.location,delta:g})}function f(v,g){a=Co.Push;let w=Db(y.location,v,g);n&&n(w,v),u=c()+1;let S=wM(w,u),b=y.createHref(w);try{s.pushState(S,"",b)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;o.location.assign(b)}i&&l&&l({action:a,location:y.location,delta:1})}function p(v,g){a=Co.Replace;let w=Db(y.location,v,g);n&&n(w,v),u=c();let S=wM(w,u),b=y.createHref(w);s.replaceState(S,"",b),i&&l&&l({action:a,location:y.location,delta:0})}function m(v){let g=o.location.origin!=="null"?o.location.origin:o.location.href,w=typeof v=="string"?v:$m(v);return Sr(g,"No window.location.(origin|href) available to create URL for href: "+w),new URL(w,g)}let y={get action(){return a},get location(){return t(o,s)},listen(v){if(l)throw new Error("A history only accepts one active listener");return o.addEventListener(vM,d),l=v,()=>{o.removeEventListener(vM,d),l=null}},createHref(v){return e(o,v)},createURL:m,encodeLocation(v){let g=m(v);return{pathname:g.pathname,search:g.search,hash:g.hash}},push:f,replace:p,go(v){return s.go(v)}};return y}var xM;(function(t){t.data="data",t.deferred="deferred",t.redirect="redirect",t.error="error"})(xM||(xM={}));function Bb(t,e,n){n===void 0&&(n="/");let r=typeof e=="string"?Vl(e):e,o=Gm(r.pathname||"/",n);if(o==null)return null;let i=kM(t);FV(i);let s=null;for(let a=0;s==null&&a{let l={relativePath:a===void 0?i.path||"":a,caseSensitive:i.caseSensitive===!0,childrenIndex:s,route:i};l.relativePath.startsWith("/")&&(Sr(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let u=ns([r,l.relativePath]),c=n.concat(l);i.children&&i.children.length>0&&(Sr(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),kM(i.children,e,c,u)),!(i.path==null&&!i.index)&&e.push({path:u,score:qV(u,i.index),routesMeta:c})};return t.forEach((i,s)=>{var a;if(i.path===""||!((a=i.path)!=null&&a.includes("?")))o(i,s);else for(let l of EM(i.path))o(i,s,l)}),e}function EM(t){let e=t.split("/");if(e.length===0)return[];let[n,...r]=e,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return o?[i,""]:[i];let s=EM(r.join("/")),a=[];return a.push(...s.map(l=>l===""?i:[i,l].join("/"))),o&&a.push(...s),a.map(l=>t.startsWith("/")&&l===""?"/":l)}function FV(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:jV(e.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var BV=/^:\w+$/,_V=3,UV=2,JV=1,zV=10,VV=-2,bM=t=>t==="*";function qV(t,e){let n=t.split("/"),r=n.length;return n.some(bM)&&(r+=VV),e&&(r+=UV),n.filter(o=>!bM(o)).reduce((o,i)=>o+(BV.test(i)?_V:i===""?JV:zV),r)}function jV(t,e){return t.length===e.length&&t.slice(0,-1).every((r,o)=>r===e[o])?t[t.length-1]-e[e.length-1]:0}function HV(t,e){let{routesMeta:n}=t,r={},o="/",i=[];for(let s=0;s{if(c==="*"){let f=a[d]||"";s=i.slice(0,i.length-f.length).replace(/(.)\/+$/,"$1")}return u[c]=WV(a[d]||"",c),u},{}),pathname:i,pathnameBase:s,pattern:t}}function $V(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!0),Fb(t==="*"||!t.endsWith("*")||t.endsWith("/*"),'Route path "'+t+'" will be treated as if it were '+('"'+t.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+t.replace(/\*$/,"/*")+'".'));let r=[],o="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^$?{}|()[\]]/g,"\\$&").replace(/\/:(\w+)/g,(s,a)=>(r.push(a),"/([^\\/]+)"));return t.endsWith("*")?(r.push("*"),o+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":t!==""&&t!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,e?void 0:"i"),r]}function GV(t){try{return decodeURI(t)}catch(e){return Fb(!1,'The URL path "'+t+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+e+").")),t}}function WV(t,e){try{return decodeURIComponent(t)}catch(n){return Fb(!1,'The value for the URL param "'+e+'" will not be decoded because'+(' the string "'+t+'" is a malformed URL segment. This is probably')+(" due to a bad percent encoding ("+n+").")),t}}function Gm(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,r=t.charAt(n);return r&&r!=="/"?null:t.slice(n)||"/"}var ns=t=>t.join("/").replace(/\/\/+/g,"/"),KV=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/");function Ub(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}var RM=["post","put","patch","delete"],zX=new Set(RM),YV=["get",...RM],VX=new Set(YV);var qX=Symbol("deferred");function Jb(){return Jb=Object.assign?Object.assign.bind():function(t){for(var e=1;eObject.assign({},g,{params:Object.assign({},s,g.params),pathname:ns([l,r.encodeLocation?r.encodeLocation(g.pathname).pathname:g.pathname]),pathnameBase:g.pathnameBase==="/"?l:ns([l,r.encodeLocation?r.encodeLocation(g.pathnameBase).pathname:g.pathnameBase])})),o,n);return e&&v?Re.createElement(kd.Provider,{value:{location:Jb({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Co.Pop}},v):v}function eq(){let t=TM(),e=Ub(t)?t.status+" "+t.statusText:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,r="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:r},i={padding:"2px 4px",backgroundColor:r};return Re.createElement(Re.Fragment,null,Re.createElement("h2",null,"Unexpected Application Error!"),Re.createElement("h3",{style:{fontStyle:"italic"}},e),n?Re.createElement("pre",{style:o},n):null,null)}var tq=Re.createElement(eq,null),zb=class extends Re.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,n){return n.location!==e.location||n.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error||n.error,location:n.location,revalidation:e.revalidation||n.revalidation}}componentDidCatch(e,n){console.error("React Router caught the following error during render",e,n)}render(){return this.state.error?Re.createElement(oa.Provider,{value:this.props.routeContext},Re.createElement(CM.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function nq(t){let{routeContext:e,match:n,children:r}=t,o=Re.useContext(qb);return o&&o.static&&o.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=n.route.id),Re.createElement(oa.Provider,{value:e},r)}function rq(t,e,n){var r;if(e===void 0&&(e=[]),n===void 0&&(n=null),t==null){var o;if((o=n)!=null&&o.errors)t=n.matches;else return null}let i=t,s=(r=n)==null?void 0:r.errors;if(s!=null){let a=i.findIndex(l=>l.route.id&&s?.[l.route.id]);a>=0||Sr(!1),i=i.slice(0,Math.min(i.length,a+1))}return i.reduceRight((a,l,u)=>{let c=l.route.id?s?.[l.route.id]:null,d=null;n&&(d=l.route.errorElement||tq);let f=e.concat(i.slice(0,u+1)),p=()=>{let m;return c?m=d:l.route.Component?m=Re.createElement(l.route.Component,null):l.route.element?m=l.route.element:m=a,Re.createElement(nq,{match:l,routeContext:{outlet:a,matches:f,isDataRoute:n!=null},children:m})};return n&&(l.route.ErrorBoundary||l.route.errorElement||u===0)?Re.createElement(zb,{location:n.location,revalidation:n.revalidation,component:d,error:c,children:p(),routeContext:{outlet:null,matches:f,isDataRoute:!0}}):p()},null)}var Vb=function(t){return t.UseBlocker="useBlocker",t.UseLoaderData="useLoaderData",t.UseActionData="useActionData",t.UseRouteError="useRouteError",t.UseNavigation="useNavigation",t.UseRouteLoaderData="useRouteLoaderData",t.UseMatches="useMatches",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t.UseRouteId="useRouteId",t}(Vb||{});function oq(t){let e=Re.useContext(jb);return e||Sr(!1),e}function iq(t){let e=Re.useContext(oa);return e||Sr(!1),e}function sq(t){let e=iq(t),n=e.matches[e.matches.length-1];return n.route.id||Sr(!1),n.route.id}function TM(){var t;let e=Re.useContext(CM),n=oq(Vb.UseRouteError),r=sq(Vb.UseRouteError);return e||((t=n.errors)==null?void 0:t[r])}var aq="startTransition",XX=Re[aq];function Gb(t){let{basename:e="/",children:n=null,location:r,navigationType:o=Co.Pop,navigator:i,static:s=!1}=t;Km()&&Sr(!1);let a=e.replace(/^\/*/,"/"),l=Re.useMemo(()=>({basename:a,navigator:i,static:s}),[a,i,s]);typeof r=="string"&&(r=Vl(r));let{pathname:u="/",search:c="",hash:d="",state:f=null,key:p="default"}=r,m=Re.useMemo(()=>{let y=Gm(u,a);return y==null?null:{location:{pathname:y,search:c,hash:d,state:f,key:p},navigationType:o}},[a,u,c,d,f,p,o]);return m==null?null:Re.createElement(Wm.Provider,{value:l},Re.createElement(kd.Provider,{children:n,value:m}))}var QX=new Promise(()=>{});var gq="startTransition",NM=Un[gq];function MM(t){let{basename:e,children:n,future:r,window:o}=t,i=Un.useRef();i.current==null&&(i.current=SM({window:o,v5Compat:!0}));let s=i.current,[a,l]=Un.useState({action:s.action,location:s.location}),{v7_startTransition:u}=r||{},c=Un.useCallback(d=>{u&&NM?NM(()=>l(d)):l(d)},[l,u]);return Un.useLayoutEffect(()=>s.listen(c),[s,c]),Un.createElement(Gb,{basename:e,children:n,location:a.location,navigationType:a.action,navigator:s})}var MQ=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";var OM;(function(t){t.UseScrollRestoration="useScrollRestoration",t.UseSubmit="useSubmit",t.UseSubmitFetcher="useSubmitFetcher",t.UseFetcher="useFetcher"})(OM||(OM={}));var PM;(function(t){t.UseFetchers="useFetchers",t.UseScrollRestoration="useScrollRestoration"})(PM||(PM={}));var kr=Y(Ee()),yq=(0,kr.createContext)(null),Wb={didCatch:!1,error:null},Ym=class extends kr.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Wb}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){let{error:e}=this.state;if(e!==null){for(var n,r,o=arguments.length,i=new Array(o),s=0;s0&&arguments[0]!==void 0?arguments[0]:[],e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return t.length!==e.length||t.some((n,r)=>!Object.is(n,e[r]))}var DM=Y(Ee(),1),si=Y(we(),1),FM=({error:t,resetErrorBoundary:e})=>{let n=(0,DM.useRef)(null),r=()=>{e()};return(0,si.jsxs)("dialog",{ref:n,className:"p-4 rounded-md shadow-lg bg-white",children:[(0,si.jsx)("div",{className:"text-lg font-semibold",children:"Unhandled Error"}),(0,si.jsxs)("div",{className:"p-4",children:[(0,si.jsx)("h4",{className:"text-md font-medium",children:t.message}),(0,si.jsx)("pre",{className:"whitespace-pre-wrap text-sm",children:t.stack})]}),(0,si.jsx)("div",{className:"flex justify-end mt-4",children:(0,si.jsx)("button",{className:"btn btn-secondary",onClick:r,children:"Close"})})]})};var rp=Y(Ee(),1);var Bg=Y(Ee(),1);var Be={},Rq=0;function nn(t,e){let n=`atom${++Rq}`,r={toString:()=>n};return typeof t=="function"?r.read=t:(r.init=t,r.read=function(o){return o(this)},r.write=function(o,i,s){return i(this,typeof s=="function"?s(o(this)):s)}),e&&(r.write=e),r}var Kb=t=>"init"in t,Yb=t=>!!t.write,Zm=new WeakMap,Cq=(t,e)=>{Zm.set(t,e),t.catch(()=>{}).finally(()=>Zm.delete(t))},BM=(t,e)=>{let n=Zm.get(t);n&&(Zm.delete(t),n(e))},_M=(t,e)=>{t.status="fulfilled",t.value=e},UM=(t,e)=>{t.status="rejected",t.reason=e},Tq=t=>typeof t?.then=="function",Ed=(t,e)=>!!t&&"v"in t&&"v"in e&&Object.is(t.v,e.v),JM=(t,e)=>!!t&&"e"in t&&"e"in e&&Object.is(t.e,e.e),ql=t=>!!t&&"v"in t&&t.v instanceof Promise,Nq=(t,e)=>"v"in t&&"v"in e&&t.v.orig&&t.v.orig===e.v.orig,Qm=t=>{if("e"in t)throw t.e;return t.v},Qb=()=>{let t=new WeakMap,e=new WeakMap,n=new Map,r,o;(Be.env?Be.env.MODE:void 0)!=="production"&&(r=new Set,o=new Set);let i=T=>t.get(T),s=(T,P)=>{(Be.env?Be.env.MODE:void 0)!=="production"&&Object.freeze(P);let J=t.get(T);if(t.set(T,P),n.has(T)||n.set(T,J),ql(J)){let q="v"in P?P.v instanceof Promise?P.v:Promise.resolve(P.v):Promise.reject(P.e);J.v!==q&&BM(J.v,q)}},a=(T,P,J)=>{let q=new Map,A=!1;J.forEach((D,z)=>{!D&&z===T&&(D=P),D?(q.set(z,D),P.d.get(z)!==D&&(A=!0)):(Be.env?Be.env.MODE:void 0)!=="production"&&console.warn("[Bug] atom state not found")}),(A||P.d.size!==q.size)&&(P.d=q)},l=(T,P,J)=>{let q=i(T),A={d:q?.d||new Map,v:P};if(J&&a(T,A,J),Ed(q,A)&&q.d===A.d)return q;if(ql(q)&&ql(A)&&Nq(q,A)){if(q.d===A.d)return q;A.v=q.v}return s(T,A),A},u=(T,P,J,q)=>{if(Tq(P)){let A,D=()=>{let H=i(T);if(!ql(H)||H.v!==z)return;let B=l(T,z,J);e.has(T)&&H.d!==B.d&&k(T,B,H.d)},z=new Promise((H,B)=>{let N=!1;P.then(F=>{N||(N=!0,_M(z,F),H(F),D())},F=>{N||(N=!0,UM(z,F),B(F),D())}),A=F=>{N||(N=!0,F.then(G=>_M(z,G),G=>UM(z,G)),H(F))}});return z.orig=P,z.status="pending",Cq(z,H=>{H&&A(H),q?.()}),l(T,z,J)}return l(T,P,J)},c=(T,P,J)=>{let q=i(T),A={d:q?.d||new Map,e:P};return J&&a(T,A,J),JM(q,A)&&q.d===A.d?q:(s(T,A),A)},d=(T,P)=>{let J=i(T);if(!P&&J&&(e.has(T)||Array.from(J.d).every(([N,F])=>{if(N===T)return!0;let G=d(N);return G===F||Ed(G,F)})))return J;let q=new Map,A=!0,D=N=>{if(N===T){let G=i(N);if(G)return q.set(N,G),Qm(G);if(Kb(N))return q.set(N,void 0),N.init;throw new Error("no atom init")}let F=d(N);return q.set(N,F),Qm(F)},z,H,B={get signal(){return z||(z=new AbortController),z.signal},get setSelf(){return(Be.env?Be.env.MODE:void 0)!=="production"&&!Yb(T)&&console.warn("setSelf function cannot be used with read-only atom"),!H&&Yb(T)&&(H=(...N)=>{if((Be.env?Be.env.MODE:void 0)!=="production"&&A&&console.warn("setSelf function cannot be called in sync"),!A)return w(T,...N)}),H}};try{let N=T.read(D,B);return u(T,N,q,()=>z?.abort())}catch(N){return c(T,N,q)}finally{A=!1}},f=T=>Qm(d(T)),p=T=>{let P=e.get(T);return P||(P=S(T)),P},m=(T,P)=>!P.l.size&&(!P.t.size||P.t.size===1&&P.t.has(T)),y=T=>{let P=e.get(T);P&&m(T,P)&&b(T)},v=T=>{let P=new Map,J=new WeakMap,q=z=>{var H;let B=new Set((H=e.get(z))==null?void 0:H.t);return n.forEach((N,F)=>{var G;(G=i(F))!=null&&G.d.has(z)&&B.add(F)}),B},A=z=>{q(z).forEach(H=>{H!==z&&(P.set(H,(P.get(H)||new Set).add(z)),J.set(H,(J.get(H)||0)+1),A(H))})};A(T);let D=z=>{q(z).forEach(H=>{var B;if(H!==z){let N=J.get(H);if(N&&J.set(H,--N),!N){let F=!!((B=P.get(H))!=null&&B.size);if(F){let G=i(H),E=d(H,!0);F=!Ed(G,E)}F||P.forEach(G=>G.delete(H))}D(H)}})};D(T)},g=(T,...P)=>{let J=!0,q=z=>Qm(d(z)),A=(z,...H)=>{let B;if(z===T){if(!Kb(z))throw new Error("atom not writable");let N=i(z),F=u(z,H[0]);Ed(N,F)||v(z)}else B=g(z,...H);if(!J){let N=x();(Be.env?Be.env.MODE:void 0)!=="production"&&r.forEach(F=>F({type:"async-write",flushed:N}))}return B},D=T.write(q,A,...P);return J=!1,D},w=(T,...P)=>{let J=g(T,...P),q=x();return(Be.env?Be.env.MODE:void 0)!=="production"&&r.forEach(A=>A({type:"write",flushed:q})),J},S=(T,P,J)=>{var q;let A=J||[];(q=i(T))==null||q.d.forEach((z,H)=>{let B=e.get(H);B?B.t.add(T):H!==T&&S(H,T,A)}),d(T);let D={t:new Set(P&&[P]),l:new Set};if(e.set(T,D),(Be.env?Be.env.MODE:void 0)!=="production"&&o.add(T),Yb(T)&&T.onMount){let{onMount:z}=T;A.push(()=>{let H=z((...B)=>w(T,...B));H&&(D.u=H)})}return J||A.forEach(z=>z()),D},b=T=>{var P;let J=(P=e.get(T))==null?void 0:P.u;J&&J(),e.delete(T),(Be.env?Be.env.MODE:void 0)!=="production"&&o.delete(T);let q=i(T);q?(ql(q)&&BM(q.v),q.d.forEach((A,D)=>{if(D!==T){let z=e.get(D);z&&(z.t.delete(T),m(D,z)&&b(D))}})):(Be.env?Be.env.MODE:void 0)!=="production"&&console.warn("[Bug] could not find atom state to unmount",T)},k=(T,P,J)=>{let q=new Set(P.d.keys());J?.forEach((A,D)=>{if(q.has(D)){q.delete(D);return}let z=e.get(D);z&&(z.t.delete(T),m(D,z)&&b(D))}),q.forEach(A=>{let D=e.get(A);D?D.t.add(T):e.has(T)&&S(A,T)})},x=()=>{let T;for((Be.env?Be.env.MODE:void 0)!=="production"&&(T=new Set);n.size;){let P=Array.from(n);n.clear(),P.forEach(([J,q])=>{let A=i(J);if(A){let D=e.get(J);D&&A.d!==q?.d&&k(J,A,q?.d),D&&!(!ql(q)&&(Ed(q,A)||JM(q,A)))&&(D.l.forEach(z=>z()),(Be.env?Be.env.MODE:void 0)!=="production"&&T.add(J))}else(Be.env?Be.env.MODE:void 0)!=="production"&&console.warn("[Bug] no atom state to flush")})}if((Be.env?Be.env.MODE:void 0)!=="production")return T},M=(T,P)=>{let J=p(T),q=x(),A=J.l;return A.add(P),(Be.env?Be.env.MODE:void 0)!=="production"&&r.forEach(D=>D({type:"sub",flushed:q})),()=>{A.delete(P),y(T),(Be.env?Be.env.MODE:void 0)!=="production"&&r.forEach(D=>D({type:"unsub"}))}};return(Be.env?Be.env.MODE:void 0)!=="production"?{get:f,set:w,sub:M,dev_subscribe_store:(T,P)=>{if(P!==2)throw new Error("The current StoreListener revision is 2.");return r.add(T),()=>{r.delete(T)}},dev_get_mounted_atoms:()=>o.values(),dev_get_atom_state:T=>t.get(T),dev_get_mounted:T=>e.get(T),dev_restore_atoms:T=>{for(let[J,q]of T)Kb(J)&&(u(J,q),v(J));let P=x();r.forEach(J=>J({type:"restore",flushed:P}))}}:{get:f,set:w,sub:M}},Xb;(Be.env?Be.env.MODE:void 0)!=="production"&&(typeof globalThis.__NUMBER_OF_JOTAI_INSTANCES__=="number"?++globalThis.__NUMBER_OF_JOTAI_INSTANCES__:globalThis.__NUMBER_OF_JOTAI_INSTANCES__=1);var zM=()=>(Xb||((Be.env?Be.env.MODE:void 0)!=="production"&&globalThis.__NUMBER_OF_JOTAI_INSTANCES__!==1&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"),Xb=Qb()),Xb);var rn=Y(Ee(),1);var VM={},qM=(0,rn.createContext)(void 0),jM=t=>{let e=(0,rn.useContext)(qM);return t?.store||e||zM()},eh=({children:t,store:e})=>{let n=(0,rn.useRef)();return!e&&!n.current&&(n.current=Qb()),(0,rn.createElement)(qM.Provider,{value:e||n.current},t)},Oq=t=>typeof t?.then=="function",Pq=rn.default.use||(t=>{if(t.status==="pending")throw t;if(t.status==="fulfilled")return t.value;throw t.status==="rejected"?t.reason:(t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}),t)});function Mq(t,e){let n=jM(e),[[r,o,i],s]=(0,rn.useReducer)(u=>{let c=n.get(t);return Object.is(u[0],c)&&u[1]===n&&u[2]===t?u:[c,n,t]},void 0,()=>[n.get(t),n,t]),a=r;(o!==n||i!==t)&&(s(),a=n.get(t));let l=e?.delay;return(0,rn.useEffect)(()=>{let u=n.sub(t,()=>{if(typeof l=="number"){setTimeout(s,l);return}s()});return s(),u},[n,t,l]),(0,rn.useDebugValue)(a),Oq(a)?Pq(a):a}function Aq(t,e){let n=jM(e);return(0,rn.useCallback)((...o)=>{if((VM.env?VM.env.MODE:void 0)!=="production"&&!("write"in t))throw new Error("not writable atom");return n.set(t,...o)},[n,t])}function Lt(t,e){return[Mq(t,e),Aq(t,e)]}function gt(t,e){if(!t)throw new Error(e)}var Iq=34028234663852886e22,Lq=-34028234663852886e22,Dq=4294967295,Fq=2147483647,Bq=-2147483648;function jl(t){if(typeof t!="number")throw new Error("invalid int 32: "+typeof t);if(!Number.isInteger(t)||t>Fq||tDq||t<0)throw new Error("invalid uint 32: "+t)}function th(t){if(typeof t!="number")throw new Error("invalid float 32: "+typeof t);if(Number.isFinite(t)&&(t>Iq||t({no:o.no,name:o.name,localName:t[o.no]})),r)}function eS(t,e,n){let r=Object.create(null),o=Object.create(null),i=[];for(let s of e){let a=WM(s);i.push(a),r[s.name]=a,o[s.no]=a}return{typeName:t,values:i,findName(s){return r[s]},findNumber(s){return o[s]}}}function GM(t,e,n){let r={};for(let o of e){let i=WM(o);r[i.localName]=i.no,r[i.no]=i.localName}return Zb(r,t,e,n),r}function WM(t){return"localName"in t?t:Object.assign(Object.assign({},t),{localName:t.name})}var I=class{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,n){let r=this.getType(),o=r.runtime.bin,i=o.makeReadOptions(n);return o.readMessage(this,i.readerFactory(e),e.byteLength,i),this}fromJson(e,n){let r=this.getType(),o=r.runtime.json,i=o.makeReadOptions(n);return o.readMessage(r,e,i,this),this}fromJsonString(e,n){let r;try{r=JSON.parse(e)}catch(o){throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${o instanceof Error?o.message:String(o)}`)}return this.fromJson(r,n)}toBinary(e){let n=this.getType(),r=n.runtime.bin,o=r.makeWriteOptions(e),i=o.writerFactory();return r.writeMessage(this,i,o),i.finish()}toJson(e){let n=this.getType(),r=n.runtime.json,o=r.makeWriteOptions(e);return r.writeMessage(this,o)}toJsonString(e){var n;let r=this.toJson(e);return JSON.stringify(r,null,(n=e?.prettySpaces)!==null&&n!==void 0?n:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}};function KM(t,e,n,r){var o;let i=(o=r?.localName)!==null&&o!==void 0?o:e.substring(e.lastIndexOf(".")+1),s={[i]:function(a){t.util.initFields(this),t.util.initPartial(a,this)}}[i];return Object.setPrototypeOf(s.prototype,new I),Object.assign(s,{runtime:t,typeName:e,fields:t.util.newFieldList(n),fromBinary(a,l){return new s().fromBinary(a,l)},fromJson(a,l){return new s().fromJson(a,l)},fromJsonString(a,l){return new s().fromJsonString(a,l)},equals(a,l){return t.util.equals(s,a,l)}}),s}function nh(t,e,n,r){return{syntax:t,json:e,bin:n,util:r,makeMessageType(o,i,s){return KM(this,o,i,s)},makeEnum:GM,makeEnumType:eS,getEnumType:$M}}var W;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(W||(W={}));var _r;(function(t){t[t.BIGINT=0]="BIGINT",t[t.STRING=1]="STRING"})(_r||(_r={}));function XM(){let t=0,e=0;for(let r=0;r<28;r+=7){let o=this.buf[this.pos++];if(t|=(o&127)<>4,!(n&128))return this.assertBounds(),[t,e];for(let r=3;r<=31;r+=7){let o=this.buf[this.pos++];if(e|=(o&127)<>>i,a=!(!(s>>>7)&&e==0),l=(a?s|128:s)&255;if(n.push(l),!a)return}let r=t>>>28&15|(e&7)<<4,o=!!(e>>3);if(n.push((o?r|128:r)&255),!!o){for(let i=3;i<31;i=i+7){let s=e>>>i,a=!!(s>>>7),l=(a?s|128:s)&255;if(n.push(l),!a)return}n.push(e>>>31&1)}}var rh=4294967296;function tS(t){let e=t[0]==="-";e&&(t=t.slice(1));let n=1e6,r=0,o=0;function i(s,a){let l=Number(t.slice(s,a));o*=n,r=r*n+l,r>=rh&&(o=o+(r/rh|0),r=r%rh)}return i(-24,-18),i(-18,-12),i(-12,-6),i(-6),e?ZM(r,o):rS(r,o)}function QM(t,e){let n=rS(t,e),r=n.hi&2147483648;r&&(n=ZM(n.lo,n.hi));let o=nS(n.lo,n.hi);return r?"-"+o:o}function nS(t,e){if({lo:t,hi:e}=_q(t,e),e<=2097151)return String(rh*e+t);let n=t&16777215,r=(t>>>24|e<<8)&16777215,o=e>>16&65535,i=n+r*6777216+o*6710656,s=r+o*8147497,a=o*2,l=1e7;return i>=l&&(s+=Math.floor(i/l),i%=l),s>=l&&(a+=Math.floor(s/l),s%=l),a.toString()+YM(s)+YM(i)}function _q(t,e){return{lo:t>>>0,hi:e>>>0}}function rS(t,e){return{lo:t|0,hi:e|0}}function ZM(t,e){return e=~e,t?t=~t+1:e+=1,rS(t,e)}var YM=t=>{let e=String(t);return"0000000".slice(e.length)+e};function oS(t,e){if(t>=0){for(;t>127;)e.push(t&127|128),t=t>>>7;e.push(t)}else{for(let n=0;n<9;n++)e.push(t&127|128),t=t>>7;e.push(1)}}function eA(){let t=this.buf[this.pos++],e=t&127;if(!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<7,!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<14,!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<21,!(t&128))return this.assertBounds(),e;t=this.buf[this.pos++],e|=(t&15)<<28;for(let n=5;t&128&&n<10;n++)t=this.buf[this.pos++];if(t&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function Uq(){let t=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){let o=BigInt("-9223372036854775808"),i=BigInt("9223372036854775807"),s=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(l){let u=typeof l=="bigint"?l:BigInt(l);if(u>i||ua||ugt(/^-?[0-9]+$/.test(o),`int64 invalid: ${o}`),r=o=>gt(/^[0-9]+$/.test(o),`uint64 invalid: ${o}`);return{zero:"0",supported:!1,parse(o){return typeof o!="string"&&(o=o.toString()),n(o),o},uParse(o){return typeof o!="string"&&(o=o.toString()),r(o),o},enc(o){return typeof o!="string"&&(o=o.toString()),n(o),tS(o)},uEnc(o){return typeof o!="string"&&(o=o.toString()),r(o),tS(o)},dec(o,i){return QM(o,i)},uDec(o,i){return nS(o,i)}}}var Je=Uq();var et;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(et||(et={}));var ih=class{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let o=0;o>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(Rd(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return jl(e),oS(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let n=this.textEncoder.encode(e);return this.uint32(n.byteLength),this.raw(n)}float(e){th(e);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,e,!0),this.raw(n)}double(e){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,e,!0),this.raw(n)}fixed32(e){Rd(e);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,e,!0),this.raw(n)}sfixed32(e){jl(e);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,e,!0),this.raw(n)}sint32(e){return jl(e),e=(e<<1^e>>31)>>>0,oS(e,this.buf),this}sfixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),o=Je.enc(e);return r.setInt32(0,o.lo,!0),r.setInt32(4,o.hi,!0),this.raw(n)}fixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),o=Je.uEnc(e);return r.setInt32(0,o.lo,!0),r.setInt32(4,o.hi,!0),this.raw(n)}int64(e){let n=Je.enc(e);return oh(n.lo,n.hi,this.buf),this}sint64(e){let n=Je.enc(e),r=n.hi>>31,o=n.lo<<1^r,i=(n.hi<<1|n.lo>>>31)^r;return oh(o,i,this.buf),this}uint64(e){let n=Je.uEnc(e);return oh(n.lo,n.hi,this.buf),this}},sh=class{constructor(e,n){this.varint64=XM,this.uint32=eA,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=n??new TextDecoder}tag(){let e=this.uint32(),n=e>>>3,r=e&7;if(n<=0||r<0||r>5)throw new Error("illegal tag: field no "+n+" wire type "+r);return[n,r]}skip(e){let n=this.pos;switch(e){case et.Varint:for(;this.buf[this.pos++]&128;);break;case et.Bit64:this.pos+=4;case et.Bit32:this.pos+=4;break;case et.LengthDelimited:let r=this.uint32();this.pos+=r;break;case et.StartGroup:let o;for(;(o=this.tag()[1])!==et.EndGroup;)this.skip(o);break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return Je.dec(...this.varint64())}uint64(){return Je.uDec(...this.varint64())}sint64(){let[e,n]=this.varint64(),r=-(e&1);return e=(e>>>1|(n&1)<<31)^r,n=n>>>1^r,Je.dec(e,n)}bool(){let[e,n]=this.varint64();return e!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return Je.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return Je.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),n=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(n,n+e)}string(){return this.textDecoder.decode(this.bytes())}};function sa(t,e){return e instanceof I||!t.fieldWrapper?e:t.fieldWrapper.wrapField(e)}var cZ={"google.protobuf.DoubleValue":W.DOUBLE,"google.protobuf.FloatValue":W.FLOAT,"google.protobuf.Int64Value":W.INT64,"google.protobuf.UInt64Value":W.UINT64,"google.protobuf.Int32Value":W.INT32,"google.protobuf.UInt32Value":W.UINT32,"google.protobuf.BoolValue":W.BOOL,"google.protobuf.StringValue":W.STRING,"google.protobuf.BytesValue":W.BYTES};function ai(t,e,n){if(e===n)return!0;if(t==W.BYTES){if(!(e instanceof Uint8Array)||!(n instanceof Uint8Array)||e.length!==n.length)return!1;for(let r=0;rnew sh(t)},nA={writeUnknownFields:!0,writerFactory:()=>new ih};function Jq(t){return t?Object.assign(Object.assign({},tA),t):tA}function zq(t){return t?Object.assign(Object.assign({},nA),t):nA}function uh(){return{makeReadOptions:Jq,makeWriteOptions:zq,listUnknownFields(t){var e;return(e=t[Hl])!==null&&e!==void 0?e:[]},discardUnknownFields(t){delete t[Hl]},writeUnknownFields(t,e){let r=t[Hl];if(r)for(let o of r)e.tag(o.no,o.wireType).raw(o.data)},onUnknownField(t,e,n,r){let o=t;Array.isArray(o[Hl])||(o[Hl]=[]),o[Hl].push({no:e,wireType:n,data:r})},readMessage(t,e,n,r,o){let i=t.getType(),s=o?e.len:e.pos+n,a,l;for(;e.pos0&&(m=qq),d){let w=c[f];if(l==et.LengthDelimited&&p!=W.STRING&&p!=W.BYTES){let S=e.uint32()+e.pos;for(;e.pos>4,s=i,o=2;break;case 2:n[r++]=(s&15)<<4|(i&60)>>2,s=i,o=3;break;case 3:n[r++]=(s&3)<<6|i,o=0;break}}if(o==1)throw Error("invalid base64 string.");return n.subarray(0,r)},enc(t){let e="",n=0,r,o=0;for(let i=0;i>2],o=(r&3)<<4,n=1;break;case 1:e+=ui[o|r>>4],o=(r&15)<<2,n=2;break;case 2:e+=ui[o|r>>6],e+=ui[r&63],n=0;break}return n&&(e+=ui[o],e+="=",n==1&&(e+="=")),e}};var oA={ignoreUnknownFields:!1},iA={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function jq(t){return t?Object.assign(Object.assign({},oA),t):oA}function Hq(t){return t?Object.assign(Object.assign({},iA),t):iA}function ph(t){let e=t($q,sA);return{makeReadOptions:jq,makeWriteOptions:Hq,readMessage(n,r,o,i){if(r==null||Array.isArray(r)||typeof r!="object")throw new Error(`cannot decode message ${n.typeName} from JSON: ${this.debug(r)}`);i=i??new n;let s={};for(let[a,l]of Object.entries(r)){let u=n.fields.findJsonName(a);if(!u){if(!o.ignoreUnknownFields)throw new Error(`cannot decode message ${n.typeName} from JSON: key "${a}" is unknown`);continue}let c=u.localName,d=i;if(u.oneof){if(l===null&&u.kind=="scalar")continue;let f=s[u.oneof.localName];if(f)throw new Error(`cannot decode message ${n.typeName} from JSON: multiple keys for oneof "${u.oneof.name}" present: "${f}", "${a}"`);s[u.oneof.localName]=a,d=d[u.oneof.localName]={case:c},c="value"}if(u.repeated){if(l===null)continue;if(!Array.isArray(l))throw new Error(`cannot decode field ${n.typeName}.${u.name} from JSON: ${this.debug(l)}`);let f=d[c];for(let p of l){if(p===null)throw new Error(`cannot decode field ${n.typeName}.${u.name} from JSON: ${this.debug(p)}`);let m;switch(u.kind){case"message":m=u.T.fromJson(p,o);break;case"enum":if(m=sS(u.T,p,o.ignoreUnknownFields),m===void 0)continue;break;case"scalar":try{m=Td(u.T,p,u.L)}catch(y){let v=`cannot decode field ${n.typeName}.${u.name} from JSON: ${this.debug(p)}`;throw y instanceof Error&&y.message.length>0&&(v+=`: ${y.message}`),new Error(v)}break}f.push(m)}}else if(u.kind=="map"){if(l===null)continue;if(Array.isArray(l)||typeof l!="object")throw new Error(`cannot decode field ${n.typeName}.${u.name} from JSON: ${this.debug(l)}`);let f=d[c];for(let[p,m]of Object.entries(l)){if(m===null)throw new Error(`cannot decode field ${n.typeName}.${u.name} from JSON: map value null`);let y;switch(u.V.kind){case"message":y=u.V.T.fromJson(m,o);break;case"enum":if(y=sS(u.V.T,m,o.ignoreUnknownFields),y===void 0)continue;break;case"scalar":try{y=Td(u.V.T,m,_r.BIGINT)}catch(v){let g=`cannot decode map value for field ${n.typeName}.${u.name} from JSON: ${this.debug(l)}`;throw v instanceof Error&&v.message.length>0&&(g+=`: ${v.message}`),new Error(g)}break}try{f[Td(u.K,u.K==W.BOOL?p=="true"?!0:p=="false"?!1:p:p,_r.BIGINT).toString()]=y}catch(v){let g=`cannot decode map key for field ${n.typeName}.${u.name} from JSON: ${this.debug(l)}`;throw v instanceof Error&&v.message.length>0&&(g+=`: ${v.message}`),new Error(g)}}}else switch(u.kind){case"message":let f=u.T;if(l===null&&f.typeName!="google.protobuf.Value"){if(u.oneof)throw new Error(`cannot decode field ${n.typeName}.${u.name} from JSON: null is invalid for oneof field "${a}"`);continue}d[c]instanceof I?d[c].fromJson(l,o):(d[c]=f.fromJson(l,o),f.fieldWrapper&&!u.oneof&&(d[c]=f.fieldWrapper.unwrapField(d[c])));break;case"enum":let p=sS(u.T,l,o.ignoreUnknownFields);p!==void 0&&(d[c]=p);break;case"scalar":try{d[c]=Td(u.T,l,u.L)}catch(m){let y=`cannot decode field ${n.typeName}.${u.name} from JSON: ${this.debug(l)}`;throw m instanceof Error&&m.message.length>0&&(y+=`: ${m.message}`),new Error(y)}break}}return i},writeMessage(n,r){let o=n.getType(),i={},s;try{for(let a of o.fields.byMember()){let l;if(a.kind=="oneof"){let u=n[a.localName];if(u.value===void 0)continue;if(s=a.findField(u.case),!s)throw"oneof case not found: "+u.case;l=e(s,u.value,r)}else s=a,l=e(s,n[s.localName],r);l!==void 0&&(i[r.useProtoFieldName?s.name:s.jsonName]=l)}}catch(a){let l=s?`cannot encode field ${o.typeName}.${s.name} to JSON`:`cannot encode message ${o.typeName} to JSON`,u=a instanceof Error?a.message:String(a);throw new Error(l+(u.length>0?`: ${u}`:""))}return i},readScalar:Td,writeScalar:sA,debug:aA}}function aA(t){if(t===null)return"null";switch(typeof t){case"object":return Array.isArray(t)?"array":"object";case"string":return t.length>100?"string":`"${t.split('"').join('\\"')}"`;default:return String(t)}}function Td(t,e,n){switch(t){case W.DOUBLE:case W.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""||typeof e=="string"&&e.trim().length!==e.length||typeof e!="string"&&typeof e!="number")break;let r=Number(e);if(Number.isNaN(r)||!Number.isFinite(r))break;return t==W.FLOAT&&th(r),r;case W.INT32:case W.FIXED32:case W.SFIXED32:case W.SINT32:case W.UINT32:if(e===null)return 0;let o;if(typeof e=="number"?o=e:typeof e=="string"&&e.length>0&&e.trim().length===e.length&&(o=Number(e)),o===void 0)break;return t==W.UINT32?Rd(o):jl(o),o;case W.INT64:case W.SFIXED64:case W.SINT64:if(e===null)return Je.zero;if(typeof e!="number"&&typeof e!="string")break;let i=Je.parse(e);return n?i.toString():i;case W.FIXED64:case W.UINT64:if(e===null)return Je.zero;if(typeof e!="number"&&typeof e!="string")break;let s=Je.uParse(e);return n?s.toString():s;case W.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case W.STRING:if(e===null)return"";if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case W.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return rs.dec(e)}throw new Error}function sS(t,e,n){if(e===null)return 0;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":let r=t.findName(e);if(r||n)return r?.no;break}throw new Error(`cannot decode enum ${t.typeName} from JSON: ${aA(e)}`)}function $q(t,e,n,r){var o;if(e===void 0)return e;if(e===0&&!n)return;if(r)return e;if(t.typeName=="google.protobuf.NullValue")return null;let i=t.findNumber(e);return(o=i?.name)!==null&&o!==void 0?o:e}function sA(t,e,n){if(e!==void 0)switch(t){case W.INT32:case W.SFIXED32:case W.SINT32:case W.FIXED32:case W.UINT32:return gt(typeof e=="number"),e!=0||n?e:void 0;case W.FLOAT:case W.DOUBLE:return gt(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e!==0||n?e:void 0;case W.STRING:return gt(typeof e=="string"),e.length>0||n?e:void 0;case W.BOOL:return gt(typeof e=="boolean"),e||n?e:void 0;case W.UINT64:case W.FIXED64:case W.INT64:case W.SFIXED64:case W.SINT64:return gt(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),n||e!=0?e.toString(10):void 0;case W.BYTES:return gt(e instanceof Uint8Array),n||e.byteLength>0?rs.enc(e):void 0}}function lA(){return ph((t,e)=>function(r,o,i){if(r.kind=="map"){let s={};switch(r.V.kind){case"scalar":for(let[l,u]of Object.entries(o)){let c=e(r.V.T,u,!0);gt(c!==void 0),s[l.toString()]=c}break;case"message":for(let[l,u]of Object.entries(o))s[l.toString()]=u.toJson(i);break;case"enum":let a=r.V.T;for(let[l,u]of Object.entries(o)){gt(u===void 0||typeof u=="number");let c=t(a,u,!0,i.enumAsInteger);gt(c!==void 0),s[l.toString()]=c}break}return i.emitDefaultValues||Object.keys(s).length>0?s:void 0}else if(r.repeated){let s=[];switch(r.kind){case"scalar":for(let a=0;a0?s:void 0}else switch(r.kind){case"scalar":return e(r.T,o,!!r.oneof||r.opt||i.emitDefaultValues);case"enum":return t(r.T,o,!!r.oneof||r.opt||i.emitDefaultValues,i.enumAsInteger);case"message":return o!==void 0?sa(r.T,o).toJson(i):void 0}})}function hh(){return{setEnumType:Zb,initPartial(t,e){if(t===void 0)return;let n=e.getType();for(let r of n.fields.byMember()){let o=r.localName,i=e,s=t;if(s[o]!==void 0)switch(r.kind){case"oneof":let a=s[o].case;if(a===void 0)continue;let l=r.findField(a),u=s[o].value;l&&l.kind=="message"&&!(u instanceof l.T)?u=new l.T(u):l&&l.kind==="scalar"&&l.T===W.BYTES&&(u=Nd(u)),i[o]={case:a,value:u};break;case"scalar":case"enum":let c=s[o];r.T===W.BYTES&&(c=r.repeated?c.map(Nd):Nd(c)),i[o]=c;break;case"map":switch(r.V.kind){case"scalar":case"enum":if(r.V.T===W.BYTES)for(let[p,m]of Object.entries(s[o]))i[o][p]=Nd(m);else Object.assign(i[o],s[o]);break;case"message":let f=r.V.T;for(let p of Object.keys(s[o])){let m=s[o][p];f.fieldWrapper||(m=new f(m)),i[o][p]=m}break}break;case"message":let d=r.T;if(r.repeated)i[o]=s[o].map(f=>f instanceof d?f:new d(f));else if(s[o]!==void 0){let f=s[o];d.fieldWrapper?d.typeName==="google.protobuf.BytesValue"?i[o]=Nd(f):i[o]=f:i[o]=f instanceof d?f:new d(f)}break}}},equals(t,e,n){return e===n?!0:!e||!n?!1:t.fields.byMember().every(r=>{let o=e[r.localName],i=n[r.localName];if(r.repeated){if(o.length!==i.length)return!1;switch(r.kind){case"message":return o.every((s,a)=>r.T.equals(s,i[a]));case"scalar":return o.every((s,a)=>ai(r.T,s,i[a]));case"enum":return o.every((s,a)=>ai(W.INT32,s,i[a]))}throw new Error(`repeated cannot contain ${r.kind}`)}switch(r.kind){case"message":return r.T.equals(o,i);case"enum":return ai(W.INT32,o,i);case"scalar":return ai(r.T,o,i);case"oneof":if(o.case!==i.case)return!1;let s=r.findField(o.case);if(s===void 0)return!0;switch(s.kind){case"message":return s.T.equals(o.value,i.value);case"enum":return ai(W.INT32,o.value,i.value);case"scalar":return ai(s.T,o.value,i.value)}throw new Error(`oneof cannot contain ${s.kind}`);case"map":let a=Object.keys(o).concat(Object.keys(i));switch(r.V.kind){case"message":let l=r.V.T;return a.every(c=>l.equals(o[c],i[c]));case"enum":return a.every(c=>ai(W.INT32,o[c],i[c]));case"scalar":let u=r.V.T;return a.every(c=>ai(u,o[c],i[c]))}break}})},clone(t){let e=t.getType(),n=new e,r=n;for(let o of e.fields.byMember()){let i=t[o.localName],s;if(o.repeated)s=i.map(mh);else if(o.kind=="map"){s=r[o.localName];for(let[a,l]of Object.entries(i))s[a]=mh(l)}else o.kind=="oneof"?s=o.findField(i.case)?{case:i.case,value:mh(i.value)}:{case:void 0}:s=mh(i);r[o.localName]=s}return n}}}function mh(t){if(t===void 0)return t;if(t instanceof I)return t.clone();if(t instanceof Uint8Array){let e=new Uint8Array(t.byteLength);return e.set(t),e}return t}function Nd(t){return t instanceof Uint8Array?t:new Uint8Array(t)}var Gl=class{constructor(e,n){this._fields=e,this._normalizer=n}findJsonName(e){if(!this.jsonNames){let n={};for(let r of this.list())n[r.jsonName]=n[r.name]=r;this.jsonNames=n}return this.jsonNames[e]}find(e){if(!this.numbers){let n={};for(let r of this.list())n[r.no]=r;this.numbers=n}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,n)=>e.no-n.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];let e=this.members,n;for(let r of this.list())r.oneof?r.oneof!==n&&(n=r.oneof,e.push(n)):e.push(r)}return this.members}};function Od(t,e){let n=cA(t);return e?n:Yq(Kq(n))}function uA(t){return Od(t,!1)}var gh=cA;function cA(t){let e=!1,n=[];for(let r=0;r`${t}$`,Kq=t=>Wq.has(t)?dA(t):t,Yq=t=>Gq.has(t)?dA(t):t;var Wl=class{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=uA(e)}addField(e){gt(e.oneof===this,`field ${e.name} not one of ${this.name}`),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let n=0;n0?`: ${a}`:""))}return n.writeUnknownFields&&this.writeUnknownFields(t,e),e}})}function pA(){return ph((t,e)=>function(r,o,i){if(r.kind=="map"){let s={};switch(r.V.kind){case"scalar":for(let[l,u]of Object.entries(o)){let c=e(r.V.T,u,!0);gt(c!==void 0),s[l.toString()]=c}break;case"message":for(let[l,u]of Object.entries(o))s[l.toString()]=u.toJson(i);break;case"enum":let a=r.V.T;for(let[l,u]of Object.entries(o)){gt(u===void 0||typeof u=="number");let c=t(a,u,!0,i.enumAsInteger);gt(c!==void 0),s[l.toString()]=c}break}return i.emitDefaultValues||Object.keys(s).length>0?s:void 0}else if(r.repeated){let s=[];switch(r.kind){case"scalar":for(let a=0;a0?s:void 0}else{if(o===void 0){if(!r.oneof&&!r.opt)throw"required field not set";return}switch(r.kind){case"scalar":return e(r.T,o,!0);case"enum":return t(r.T,o,!0,i.enumAsInteger);case"message":return sa(r.T,o).toJson(i)}}})}var U=nh("proto2",pA(),fA(),Object.assign(Object.assign({},hh()),{newFieldList(t){return new Gl(t,Qq)},initFields(t){for(let e of t.getType().fields.byMember()){let n=e.localName,r=t;if(e.repeated){r[n]=[];continue}switch(e.kind){case"oneof":r[n]={case:void 0};break;case"map":r[n]={};break;case"scalar":case"enum":case"message":break}}}}));function Qq(t){var e,n,r,o,i;let s=[],a;for(let l of typeof t=="function"?t():t){let u=l;if(u.localName=Od(l.name,l.oneof!==void 0),u.jsonName=(e=l.jsonName)!==null&&e!==void 0?e:gh(l.name),u.repeated=(n=l.repeated)!==null&&n!==void 0?n:!1,l.kind=="scalar"&&(u.L=(r=l.L)!==null&&r!==void 0?r:_r.BIGINT),l.oneof!==void 0){let c=typeof l.oneof=="string"?l.oneof:l.oneof.name;(!a||a.name!=c)&&(a=new Wl(c)),u.oneof=a,a.addField(u)}l.kind=="message"&&(u.delimited=(o=l.delimited)!==null&&o!==void 0?o:!1),u.packed=(i=l.packed)!==null&&i!==void 0?i:!1,s.push(u)}return s}var he;(function(t){t[t.Unary=0]="Unary",t[t.ServerStreaming=1]="ServerStreaming",t[t.ClientStreaming=2]="ClientStreaming",t[t.BiDiStreaming=3]="BiDiStreaming"})(he||(he={}));var Pd;(function(t){t[t.NoSideEffects=1]="NoSideEffects",t[t.Idempotent=2]="Idempotent"})(Pd||(Pd={}));var is;(function(t){t[t.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",t[t.EDITION_PROTO2=998]="EDITION_PROTO2",t[t.EDITION_PROTO3=999]="EDITION_PROTO3",t[t.EDITION_2023=1e3]="EDITION_2023",t[t.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",t[t.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",t[t.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",t[t.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",t[t.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY"})(is||(is={}));U.util.setEnumType(is,"google.protobuf.Edition",[{no:0,name:"EDITION_UNKNOWN"},{no:998,name:"EDITION_PROTO2"},{no:999,name:"EDITION_PROTO3"},{no:1e3,name:"EDITION_2023"},{no:1,name:"EDITION_1_TEST_ONLY"},{no:2,name:"EDITION_2_TEST_ONLY"},{no:99997,name:"EDITION_99997_TEST_ONLY"},{no:99998,name:"EDITION_99998_TEST_ONLY"},{no:99999,name:"EDITION_99999_TEST_ONLY"}]);var Md=class t extends I{constructor(e){super(),this.file=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Md.runtime=U;Md.typeName="google.protobuf.FileDescriptorSet";Md.fields=U.util.newFieldList(()=>[{no:1,name:"file",kind:"message",T:Kl,repeated:!0}]);var Kl=class t extends I{constructor(e){super(),this.dependency=[],this.publicDependency=[],this.weakDependency=[],this.messageType=[],this.enumType=[],this.service=[],this.extension=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Kl.runtime=U;Kl.typeName="google.protobuf.FileDescriptorProto";Kl.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"package",kind:"scalar",T:9,opt:!0},{no:3,name:"dependency",kind:"scalar",T:9,repeated:!0},{no:10,name:"public_dependency",kind:"scalar",T:5,repeated:!0},{no:11,name:"weak_dependency",kind:"scalar",T:5,repeated:!0},{no:4,name:"message_type",kind:"message",T:To,repeated:!0},{no:5,name:"enum_type",kind:"message",T:ci,repeated:!0},{no:6,name:"service",kind:"message",T:ou,repeated:!0},{no:7,name:"extension",kind:"message",T:ss,repeated:!0},{no:8,name:"options",kind:"message",T:su,opt:!0},{no:9,name:"source_code_info",kind:"message",T:yu,opt:!0},{no:12,name:"syntax",kind:"scalar",T:9,opt:!0},{no:14,name:"edition",kind:"enum",T:U.getEnumType(is),opt:!0}]);var To=class t extends I{constructor(e){super(),this.field=[],this.extension=[],this.nestedType=[],this.enumType=[],this.extensionRange=[],this.oneofDecl=[],this.reservedRange=[],this.reservedName=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};To.runtime=U;To.typeName="google.protobuf.DescriptorProto";To.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"field",kind:"message",T:ss,repeated:!0},{no:6,name:"extension",kind:"message",T:ss,repeated:!0},{no:3,name:"nested_type",kind:"message",T:To,repeated:!0},{no:4,name:"enum_type",kind:"message",T:ci,repeated:!0},{no:5,name:"extension_range",kind:"message",T:Yl,repeated:!0},{no:8,name:"oneof_decl",kind:"message",T:tu,repeated:!0},{no:7,name:"options",kind:"message",T:au,opt:!0},{no:9,name:"reserved_range",kind:"message",T:Xl,repeated:!0},{no:10,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var Yl=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Yl.runtime=U;Yl.typeName="google.protobuf.DescriptorProto.ExtensionRange";Yl.fields=U.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:Ql,opt:!0}]);var Xl=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Xl.runtime=U;Xl.typeName="google.protobuf.DescriptorProto.ReservedRange";Xl.fields=U.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var Ql=class t extends I{constructor(e){super(),this.uninterpretedOption=[],this.declaration=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Ql.runtime=U;Ql.typeName="google.protobuf.ExtensionRangeOptions";Ql.fields=U.util.newFieldList(()=>[{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0},{no:2,name:"declaration",kind:"message",T:Zl,repeated:!0},{no:50,name:"features",kind:"message",T:Jn,opt:!0},{no:3,name:"verification",kind:"enum",T:U.getEnumType(Ad),opt:!0,default:Ad.UNVERIFIED}]);var Ad;(function(t){t[t.DECLARATION=0]="DECLARATION",t[t.UNVERIFIED=1]="UNVERIFIED"})(Ad||(Ad={}));U.util.setEnumType(Ad,"google.protobuf.ExtensionRangeOptions.VerificationState",[{no:0,name:"DECLARATION"},{no:1,name:"UNVERIFIED"}]);var Zl=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Zl.runtime=U;Zl.typeName="google.protobuf.ExtensionRangeOptions.Declaration";Zl.fields=U.util.newFieldList(()=>[{no:1,name:"number",kind:"scalar",T:5,opt:!0},{no:2,name:"full_name",kind:"scalar",T:9,opt:!0},{no:3,name:"type",kind:"scalar",T:9,opt:!0},{no:5,name:"reserved",kind:"scalar",T:8,opt:!0},{no:6,name:"repeated",kind:"scalar",T:8,opt:!0}]);var ss=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};ss.runtime=U;ss.typeName="google.protobuf.FieldDescriptorProto";ss.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:3,name:"number",kind:"scalar",T:5,opt:!0},{no:4,name:"label",kind:"enum",T:U.getEnumType(eu),opt:!0},{no:5,name:"type",kind:"enum",T:U.getEnumType(yt),opt:!0},{no:6,name:"type_name",kind:"scalar",T:9,opt:!0},{no:2,name:"extendee",kind:"scalar",T:9,opt:!0},{no:7,name:"default_value",kind:"scalar",T:9,opt:!0},{no:9,name:"oneof_index",kind:"scalar",T:5,opt:!0},{no:10,name:"json_name",kind:"scalar",T:9,opt:!0},{no:8,name:"options",kind:"message",T:lu,opt:!0},{no:17,name:"proto3_optional",kind:"scalar",T:8,opt:!0}]);var yt;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.GROUP=10]="GROUP",t[t.MESSAGE=11]="MESSAGE",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.ENUM=14]="ENUM",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(yt||(yt={}));U.util.setEnumType(yt,"google.protobuf.FieldDescriptorProto.Type",[{no:1,name:"TYPE_DOUBLE"},{no:2,name:"TYPE_FLOAT"},{no:3,name:"TYPE_INT64"},{no:4,name:"TYPE_UINT64"},{no:5,name:"TYPE_INT32"},{no:6,name:"TYPE_FIXED64"},{no:7,name:"TYPE_FIXED32"},{no:8,name:"TYPE_BOOL"},{no:9,name:"TYPE_STRING"},{no:10,name:"TYPE_GROUP"},{no:11,name:"TYPE_MESSAGE"},{no:12,name:"TYPE_BYTES"},{no:13,name:"TYPE_UINT32"},{no:14,name:"TYPE_ENUM"},{no:15,name:"TYPE_SFIXED32"},{no:16,name:"TYPE_SFIXED64"},{no:17,name:"TYPE_SINT32"},{no:18,name:"TYPE_SINT64"}]);var eu;(function(t){t[t.OPTIONAL=1]="OPTIONAL",t[t.REPEATED=3]="REPEATED",t[t.REQUIRED=2]="REQUIRED"})(eu||(eu={}));U.util.setEnumType(eu,"google.protobuf.FieldDescriptorProto.Label",[{no:1,name:"LABEL_OPTIONAL"},{no:3,name:"LABEL_REPEATED"},{no:2,name:"LABEL_REQUIRED"}]);var tu=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};tu.runtime=U;tu.typeName="google.protobuf.OneofDescriptorProto";tu.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"options",kind:"message",T:cu,opt:!0}]);var ci=class t extends I{constructor(e){super(),this.value=[],this.reservedRange=[],this.reservedName=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};ci.runtime=U;ci.typeName="google.protobuf.EnumDescriptorProto";ci.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"value",kind:"message",T:ru,repeated:!0},{no:3,name:"options",kind:"message",T:du,opt:!0},{no:4,name:"reserved_range",kind:"message",T:nu,repeated:!0},{no:5,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var nu=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};nu.runtime=U;nu.typeName="google.protobuf.EnumDescriptorProto.EnumReservedRange";nu.fields=U.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var ru=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};ru.runtime=U;ru.typeName="google.protobuf.EnumValueDescriptorProto";ru.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"number",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:fu,opt:!0}]);var ou=class t extends I{constructor(e){super(),this.method=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};ou.runtime=U;ou.typeName="google.protobuf.ServiceDescriptorProto";ou.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"method",kind:"message",T:iu,repeated:!0},{no:3,name:"options",kind:"message",T:pu,opt:!0}]);var iu=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};iu.runtime=U;iu.typeName="google.protobuf.MethodDescriptorProto";iu.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"input_type",kind:"scalar",T:9,opt:!0},{no:3,name:"output_type",kind:"scalar",T:9,opt:!0},{no:4,name:"options",kind:"message",T:mu,opt:!0},{no:5,name:"client_streaming",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"server_streaming",kind:"scalar",T:8,opt:!0,default:!1}]);var su=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};su.runtime=U;su.typeName="google.protobuf.FileOptions";su.fields=U.util.newFieldList(()=>[{no:1,name:"java_package",kind:"scalar",T:9,opt:!0},{no:8,name:"java_outer_classname",kind:"scalar",T:9,opt:!0},{no:10,name:"java_multiple_files",kind:"scalar",T:8,opt:!0,default:!1},{no:20,name:"java_generate_equals_and_hash",kind:"scalar",T:8,opt:!0},{no:27,name:"java_string_check_utf8",kind:"scalar",T:8,opt:!0,default:!1},{no:9,name:"optimize_for",kind:"enum",T:U.getEnumType(Id),opt:!0,default:Id.SPEED},{no:11,name:"go_package",kind:"scalar",T:9,opt:!0},{no:16,name:"cc_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"java_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:18,name:"py_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:42,name:"php_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:23,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:31,name:"cc_enable_arenas",kind:"scalar",T:8,opt:!0,default:!0},{no:36,name:"objc_class_prefix",kind:"scalar",T:9,opt:!0},{no:37,name:"csharp_namespace",kind:"scalar",T:9,opt:!0},{no:39,name:"swift_prefix",kind:"scalar",T:9,opt:!0},{no:40,name:"php_class_prefix",kind:"scalar",T:9,opt:!0},{no:41,name:"php_namespace",kind:"scalar",T:9,opt:!0},{no:44,name:"php_metadata_namespace",kind:"scalar",T:9,opt:!0},{no:45,name:"ruby_package",kind:"scalar",T:9,opt:!0},{no:50,name:"features",kind:"message",T:Jn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var Id;(function(t){t[t.SPEED=1]="SPEED",t[t.CODE_SIZE=2]="CODE_SIZE",t[t.LITE_RUNTIME=3]="LITE_RUNTIME"})(Id||(Id={}));U.util.setEnumType(Id,"google.protobuf.FileOptions.OptimizeMode",[{no:1,name:"SPEED"},{no:2,name:"CODE_SIZE"},{no:3,name:"LITE_RUNTIME"}]);var au=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};au.runtime=U;au.typeName="google.protobuf.MessageOptions";au.fields=U.util.newFieldList(()=>[{no:1,name:"message_set_wire_format",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"no_standard_descriptor_accessor",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:7,name:"map_entry",kind:"scalar",T:8,opt:!0},{no:11,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:12,name:"features",kind:"message",T:Jn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var lu=class t extends I{constructor(e){super(),this.targets=[],this.editionDefaults=[],this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};lu.runtime=U;lu.typeName="google.protobuf.FieldOptions";lu.fields=U.util.newFieldList(()=>[{no:1,name:"ctype",kind:"enum",T:U.getEnumType(Ld),opt:!0,default:Ld.STRING},{no:2,name:"packed",kind:"scalar",T:8,opt:!0},{no:6,name:"jstype",kind:"enum",T:U.getEnumType(Dd),opt:!0,default:Dd.JS_NORMAL},{no:5,name:"lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:15,name:"unverified_lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:10,name:"weak",kind:"scalar",T:8,opt:!0,default:!1},{no:16,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"retention",kind:"enum",T:U.getEnumType(yh),opt:!0},{no:19,name:"targets",kind:"enum",T:U.getEnumType(vh),repeated:!0},{no:20,name:"edition_defaults",kind:"message",T:uu,repeated:!0},{no:21,name:"features",kind:"message",T:Jn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var Ld;(function(t){t[t.STRING=0]="STRING",t[t.CORD=1]="CORD",t[t.STRING_PIECE=2]="STRING_PIECE"})(Ld||(Ld={}));U.util.setEnumType(Ld,"google.protobuf.FieldOptions.CType",[{no:0,name:"STRING"},{no:1,name:"CORD"},{no:2,name:"STRING_PIECE"}]);var Dd;(function(t){t[t.JS_NORMAL=0]="JS_NORMAL",t[t.JS_STRING=1]="JS_STRING",t[t.JS_NUMBER=2]="JS_NUMBER"})(Dd||(Dd={}));U.util.setEnumType(Dd,"google.protobuf.FieldOptions.JSType",[{no:0,name:"JS_NORMAL"},{no:1,name:"JS_STRING"},{no:2,name:"JS_NUMBER"}]);var yh;(function(t){t[t.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",t[t.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",t[t.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(yh||(yh={}));U.util.setEnumType(yh,"google.protobuf.FieldOptions.OptionRetention",[{no:0,name:"RETENTION_UNKNOWN"},{no:1,name:"RETENTION_RUNTIME"},{no:2,name:"RETENTION_SOURCE"}]);var vh;(function(t){t[t.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",t[t.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",t[t.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",t[t.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",t[t.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",t[t.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",t[t.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",t[t.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",t[t.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",t[t.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(vh||(vh={}));U.util.setEnumType(vh,"google.protobuf.FieldOptions.OptionTargetType",[{no:0,name:"TARGET_TYPE_UNKNOWN"},{no:1,name:"TARGET_TYPE_FILE"},{no:2,name:"TARGET_TYPE_EXTENSION_RANGE"},{no:3,name:"TARGET_TYPE_MESSAGE"},{no:4,name:"TARGET_TYPE_FIELD"},{no:5,name:"TARGET_TYPE_ONEOF"},{no:6,name:"TARGET_TYPE_ENUM"},{no:7,name:"TARGET_TYPE_ENUM_ENTRY"},{no:8,name:"TARGET_TYPE_SERVICE"},{no:9,name:"TARGET_TYPE_METHOD"}]);var uu=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};uu.runtime=U;uu.typeName="google.protobuf.FieldOptions.EditionDefault";uu.fields=U.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:U.getEnumType(is),opt:!0},{no:2,name:"value",kind:"scalar",T:9,opt:!0}]);var cu=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};cu.runtime=U;cu.typeName="google.protobuf.OneofOptions";cu.fields=U.util.newFieldList(()=>[{no:1,name:"features",kind:"message",T:Jn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var du=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};du.runtime=U;du.typeName="google.protobuf.EnumOptions";du.fields=U.util.newFieldList(()=>[{no:2,name:"allow_alias",kind:"scalar",T:8,opt:!0},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:7,name:"features",kind:"message",T:Jn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var fu=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};fu.runtime=U;fu.typeName="google.protobuf.EnumValueOptions";fu.fields=U.util.newFieldList(()=>[{no:1,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"features",kind:"message",T:Jn,opt:!0},{no:3,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var pu=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};pu.runtime=U;pu.typeName="google.protobuf.ServiceOptions";pu.fields=U.util.newFieldList(()=>[{no:34,name:"features",kind:"message",T:Jn,opt:!0},{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var mu=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};mu.runtime=U;mu.typeName="google.protobuf.MethodOptions";mu.fields=U.util.newFieldList(()=>[{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:34,name:"idempotency_level",kind:"enum",T:U.getEnumType(Fd),opt:!0,default:Fd.IDEMPOTENCY_UNKNOWN},{no:35,name:"features",kind:"message",T:Jn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var Fd;(function(t){t[t.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",t[t.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",t[t.IDEMPOTENT=2]="IDEMPOTENT"})(Fd||(Fd={}));U.util.setEnumType(Fd,"google.protobuf.MethodOptions.IdempotencyLevel",[{no:0,name:"IDEMPOTENCY_UNKNOWN"},{no:1,name:"NO_SIDE_EFFECTS"},{no:2,name:"IDEMPOTENT"}]);var sr=class t extends I{constructor(e){super(),this.name=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};sr.runtime=U;sr.typeName="google.protobuf.UninterpretedOption";sr.fields=U.util.newFieldList(()=>[{no:2,name:"name",kind:"message",T:hu,repeated:!0},{no:3,name:"identifier_value",kind:"scalar",T:9,opt:!0},{no:4,name:"positive_int_value",kind:"scalar",T:4,opt:!0},{no:5,name:"negative_int_value",kind:"scalar",T:3,opt:!0},{no:6,name:"double_value",kind:"scalar",T:1,opt:!0},{no:7,name:"string_value",kind:"scalar",T:12,opt:!0},{no:8,name:"aggregate_value",kind:"scalar",T:9,opt:!0}]);var hu=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};hu.runtime=U;hu.typeName="google.protobuf.UninterpretedOption.NamePart";hu.fields=U.util.newFieldList(()=>[{no:1,name:"name_part",kind:"scalar",T:9},{no:2,name:"is_extension",kind:"scalar",T:8}]);var Jn=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Jn.runtime=U;Jn.typeName="google.protobuf.FeatureSet";Jn.fields=U.util.newFieldList(()=>[{no:1,name:"field_presence",kind:"enum",T:U.getEnumType(wh),opt:!0},{no:2,name:"enum_type",kind:"enum",T:U.getEnumType(xh),opt:!0},{no:3,name:"repeated_field_encoding",kind:"enum",T:U.getEnumType(bh),opt:!0},{no:4,name:"utf8_validation",kind:"enum",T:U.getEnumType(Sh),opt:!0},{no:5,name:"message_encoding",kind:"enum",T:U.getEnumType(kh),opt:!0},{no:6,name:"json_format",kind:"enum",T:U.getEnumType(Eh),opt:!0}]);var wh;(function(t){t[t.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",t[t.EXPLICIT=1]="EXPLICIT",t[t.IMPLICIT=2]="IMPLICIT",t[t.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(wh||(wh={}));U.util.setEnumType(wh,"google.protobuf.FeatureSet.FieldPresence",[{no:0,name:"FIELD_PRESENCE_UNKNOWN"},{no:1,name:"EXPLICIT"},{no:2,name:"IMPLICIT"},{no:3,name:"LEGACY_REQUIRED"}]);var xh;(function(t){t[t.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",t[t.OPEN=1]="OPEN",t[t.CLOSED=2]="CLOSED"})(xh||(xh={}));U.util.setEnumType(xh,"google.protobuf.FeatureSet.EnumType",[{no:0,name:"ENUM_TYPE_UNKNOWN"},{no:1,name:"OPEN"},{no:2,name:"CLOSED"}]);var bh;(function(t){t[t.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",t[t.PACKED=1]="PACKED",t[t.EXPANDED=2]="EXPANDED"})(bh||(bh={}));U.util.setEnumType(bh,"google.protobuf.FeatureSet.RepeatedFieldEncoding",[{no:0,name:"REPEATED_FIELD_ENCODING_UNKNOWN"},{no:1,name:"PACKED"},{no:2,name:"EXPANDED"}]);var Sh;(function(t){t[t.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",t[t.NONE=1]="NONE",t[t.VERIFY=2]="VERIFY"})(Sh||(Sh={}));U.util.setEnumType(Sh,"google.protobuf.FeatureSet.Utf8Validation",[{no:0,name:"UTF8_VALIDATION_UNKNOWN"},{no:1,name:"NONE"},{no:2,name:"VERIFY"}]);var kh;(function(t){t[t.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",t[t.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",t[t.DELIMITED=2]="DELIMITED"})(kh||(kh={}));U.util.setEnumType(kh,"google.protobuf.FeatureSet.MessageEncoding",[{no:0,name:"MESSAGE_ENCODING_UNKNOWN"},{no:1,name:"LENGTH_PREFIXED"},{no:2,name:"DELIMITED"}]);var Eh;(function(t){t[t.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",t[t.ALLOW=1]="ALLOW",t[t.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(Eh||(Eh={}));U.util.setEnumType(Eh,"google.protobuf.FeatureSet.JsonFormat",[{no:0,name:"JSON_FORMAT_UNKNOWN"},{no:1,name:"ALLOW"},{no:2,name:"LEGACY_BEST_EFFORT"}]);var Bd=class t extends I{constructor(e){super(),this.defaults=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Bd.runtime=U;Bd.typeName="google.protobuf.FeatureSetDefaults";Bd.fields=U.util.newFieldList(()=>[{no:1,name:"defaults",kind:"message",T:gu,repeated:!0},{no:4,name:"minimum_edition",kind:"enum",T:U.getEnumType(is),opt:!0},{no:5,name:"maximum_edition",kind:"enum",T:U.getEnumType(is),opt:!0}]);var gu=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};gu.runtime=U;gu.typeName="google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault";gu.fields=U.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:U.getEnumType(is),opt:!0},{no:2,name:"features",kind:"message",T:Jn,opt:!0}]);var yu=class t extends I{constructor(e){super(),this.location=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};yu.runtime=U;yu.typeName="google.protobuf.SourceCodeInfo";yu.fields=U.util.newFieldList(()=>[{no:1,name:"location",kind:"message",T:vu,repeated:!0}]);var vu=class t extends I{constructor(e){super(),this.path=[],this.span=[],this.leadingDetachedComments=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};vu.runtime=U;vu.typeName="google.protobuf.SourceCodeInfo.Location";vu.fields=U.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"span",kind:"scalar",T:5,repeated:!0,packed:!0},{no:3,name:"leading_comments",kind:"scalar",T:9,opt:!0},{no:4,name:"trailing_comments",kind:"scalar",T:9,opt:!0},{no:6,name:"leading_detached_comments",kind:"scalar",T:9,repeated:!0}]);var _d=class t extends I{constructor(e){super(),this.annotation=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};_d.runtime=U;_d.typeName="google.protobuf.GeneratedCodeInfo";_d.fields=U.util.newFieldList(()=>[{no:1,name:"annotation",kind:"message",T:wu,repeated:!0}]);var wu=class t extends I{constructor(e){super(),this.path=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};wu.runtime=U;wu.typeName="google.protobuf.GeneratedCodeInfo.Annotation";wu.fields=U.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"source_file",kind:"scalar",T:9,opt:!0},{no:3,name:"begin",kind:"scalar",T:5,opt:!0},{no:4,name:"end",kind:"scalar",T:5,opt:!0},{no:5,name:"semantic",kind:"enum",T:U.getEnumType(Rh),opt:!0}]);var Rh;(function(t){t[t.NONE=0]="NONE",t[t.SET=1]="SET",t[t.ALIAS=2]="ALIAS"})(Rh||(Rh={}));U.util.setEnumType(Rh,"google.protobuf.GeneratedCodeInfo.Annotation.Semantic",[{no:0,name:"NONE"},{no:1,name:"SET"},{no:2,name:"ALIAS"}]);var jt=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};jt.runtime=h;jt.typeName="google.protobuf.Empty";jt.fields=h.util.newFieldList(()=>[]);var Ch=class t extends I{secret="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.VerifyUserRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Th=class t extends I{secret="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.GroupInfoRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Nh=class t extends I{groupId="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.GroupID";static fields=h.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Oh=class t extends I{contentId="";groupId="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.ShareRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Ud=class t extends I{secret="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.GroupInvite";static fields=h.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Ph=class t extends I{groups=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.Groups";static fields=h.util.newFieldList(()=>[{no:1,name:"groups",kind:"message",T:di,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},mA=class t extends I{text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.AnalyzeConversationRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},No=class t extends I{email="";password="";username="";config;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.User";static fields=h.util.newFieldList(()=>[{no:1,name:"email",kind:"scalar",T:9},{no:2,name:"password",kind:"scalar",T:9},{no:3,name:"username",kind:"scalar",T:9},{no:4,name:"config",kind:"message",T:Jd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},di=class t extends I{id="";name="";users=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.Group";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"users",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Jd=class t extends I{domainWhitelist=[];offlineVoice=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.Config";static fields=h.util.newFieldList(()=>[{no:1,name:"domain_whitelist",kind:"scalar",T:9,repeated:!0},{no:2,name:"offline_voice",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Mh=class t extends I{user;success=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.LoginResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"user",kind:"message",T:No},{no:2,name:"success",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var Ah=class t extends I{title="";createTime=0;updateTime=0;mapping={};conversationId="";conversationTemplateId="";currentNode="";gizmoId="";isArchived=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Conversation";static fields=h.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"create_time",kind:"scalar",T:1},{no:3,name:"update_time",kind:"scalar",T:1},{no:4,name:"mapping",kind:"map",K:9,V:{kind:"message",T:aS}},{no:5,name:"conversation_id",kind:"scalar",T:9},{no:6,name:"conversation_template_id",kind:"scalar",T:9},{no:7,name:"current_node",kind:"scalar",T:9},{no:8,name:"gizmo_id",kind:"scalar",T:9},{no:9,name:"is_archived",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},aS=class t extends I{id="";message;parent="";children=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Node";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"message",kind:"message",T:lS},{no:3,name:"parent",kind:"scalar",T:9},{no:4,name:"children",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},lS=class t extends I{id="";author;createTime=0;content;status="";endTurn=!1;weight=0;metadata;recipient="";updateTime=0;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Message";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"author",kind:"message",T:cS},{no:3,name:"create_time",kind:"scalar",T:1},{no:4,name:"content",kind:"message",T:dS},{no:5,name:"status",kind:"scalar",T:9},{no:6,name:"end_turn",kind:"scalar",T:8},{no:7,name:"weight",kind:"scalar",T:5},{no:8,name:"metadata",kind:"message",T:uS},{no:9,name:"recipient",kind:"scalar",T:9},{no:10,name:"update_time",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},uS=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.MessageMetadata";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},cS=class t extends I{role="";metadata;name="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Author";static fields=h.util.newFieldList(()=>[{no:1,name:"role",kind:"scalar",T:9},{no:2,name:"metadata",kind:"message",T:hS},{no:3,name:"name",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},dS=class t extends I{contentType="";textParts=[];imageParts=[];text="";parts=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Content";static fields=h.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"text_parts",kind:"scalar",T:9,repeated:!0},{no:3,name:"image_parts",kind:"message",T:fS,repeated:!0},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"parts",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},fS=class t extends I{contentType="";assetPointer="";sizeBytes=Je.zero;width=0;height=0;fovea=0;metadata;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.ImageAsset";static fields=h.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"asset_pointer",kind:"scalar",T:9},{no:3,name:"size_bytes",kind:"scalar",T:3},{no:4,name:"width",kind:"scalar",T:5},{no:5,name:"height",kind:"scalar",T:5},{no:6,name:"fovea",kind:"scalar",T:5},{no:7,name:"metadata",kind:"message",T:pS}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},pS=class t extends I{dalle;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Metadata";static fields=h.util.newFieldList(()=>[{no:1,name:"dalle",kind:"message",T:mS}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},mS=class t extends I{genId="";prompt="";seed=0;serializationTitle="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.DalleMetadata";static fields=h.util.newFieldList(()=>[{no:1,name:"gen_id",kind:"scalar",T:9},{no:2,name:"prompt",kind:"scalar",T:9},{no:3,name:"seed",kind:"scalar",T:13},{no:4,name:"serialization_title",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},hS=class t extends I{attachments=[];timestamp="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.AuthorMetadata";static fields=h.util.newFieldList(()=>[{no:1,name:"attachments",kind:"message",T:gS,repeated:!0},{no:2,name:"timestamp_",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},gS=class t extends I{id="";name="";mimeType="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Attachment";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"mimeType",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var Ih=class t extends I{nodes=[];edges=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="browser.History";static fields=h.util.newFieldList(()=>[{no:1,name:"nodes",kind:"message",T:yS,repeated:!0},{no:2,name:"edges",kind:"message",T:vS,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},yS=class t extends I{id="";url="";title="";open=0;close=0;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="browser.Node";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"open",kind:"scalar",T:1},{no:5,name:"close",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},vS=class t extends I{from="";to="";tab="";visitTime=0;visitDuration=0;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="browser.Edge";static fields=h.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9},{no:3,name:"tab",kind:"scalar",T:9},{no:4,name:"visit_time",kind:"scalar",T:1},{no:5,name:"visit_duration",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var Lh=class t extends I{publishDir="";baseUrl="";title="";paginate=0;theme=[];enableInlineShortcodes=!1;enableRobotsTxt=!1;buildDrafts=!1;buildFuture=!1;buildExpired=!1;enableEmoji=!1;pygmentsUseClasses=!1;mainSections=[];minify;languages={};outputs={};params;markup;services;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.HugoConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"publish_dir",kind:"scalar",T:9},{no:2,name:"base_url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"paginate",kind:"scalar",T:5},{no:5,name:"theme",kind:"scalar",T:9,repeated:!0},{no:6,name:"enable_inline_shortcodes",kind:"scalar",T:8},{no:7,name:"enable_robots_txt",kind:"scalar",T:8},{no:8,name:"build_drafts",kind:"scalar",T:8},{no:9,name:"build_future",kind:"scalar",T:8},{no:10,name:"build_expired",kind:"scalar",T:8},{no:11,name:"enable_emoji",kind:"scalar",T:8},{no:12,name:"pygments_use_classes",kind:"scalar",T:8},{no:13,name:"main_sections",kind:"scalar",T:9,repeated:!0},{no:14,name:"minify",kind:"message",T:wS},{no:15,name:"languages",kind:"map",K:9,V:{kind:"message",T:xS}},{no:16,name:"outputs",kind:"map",K:9,V:{kind:"message",T:NS}},{no:17,name:"params",kind:"message",T:PS},{no:18,name:"markup",kind:"message",T:kS},{no:19,name:"services",kind:"message",T:TS}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},wS=class t extends I{disableXml=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.MinifyConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"disable_xml",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},xS=class t extends I{languageName="";weight=0;title="";taxonomies={};menu={};params={};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.LanguageConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"language_name",kind:"scalar",T:9},{no:2,name:"weight",kind:"scalar",T:5},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"taxonomies",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"menu",kind:"map",K:9,V:{kind:"message",T:OS}},{no:6,name:"params",kind:"map",K:9,V:{kind:"scalar",T:9}}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},aa=class t extends I{name="";url="";weight=0;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.MenuItem";static fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"weight",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},bS=class t extends I{url="";text="";appendFilePath=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.EditPostConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"append_file_path",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},SS=class t extends I{disableHljs=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.AssetsConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"disable_hljs",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},kS=class t extends I{goldmark;highlight;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.MarkupConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"goldmark",kind:"message",T:ES},{no:2,name:"highlight",kind:"message",T:CS}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ES=class t extends I{renderer;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.GoldmarkConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"renderer",kind:"message",T:RS}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},RS=class t extends I{unsafe=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.RendererConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"unsafe",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},CS=class t extends I{noClasses=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.HighlightConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"no_classes",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},TS=class t extends I{instagram;twitter;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ServicesConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"instagram",kind:"message",T:Dh},{no:2,name:"twitter",kind:"message",T:Dh}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Dh=class t extends I{disableInlineCss=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ServiceConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"disable_inline_css",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},NS=class t extends I{values=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.RepeatedString";static fields=h.util.newFieldList(()=>[{no:1,name:"values",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},OS=class t extends I{items=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.RepeatedMenuItem";static fields=h.util.newFieldList(()=>[{no:1,name:"items",kind:"message",T:aa,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},PS=class t extends I{env="";description="";author="";defaultTheme="";showShareButtons=!1;showReadingTime=!1;displayFullLangName=!1;showPostNavLinks=!1;showBreadCrumbs=!1;showCodeCopyButtons=!1;showRssButtonInSectionTermList=!1;showAllPagesInArchive=!1;showPageNums=!1;showToc=!1;images=[];profileMode;homeInfoParams;socialIcons=[];editPost;assets;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ParamsConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"env",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"author",kind:"scalar",T:9},{no:4,name:"default_theme",kind:"scalar",T:9},{no:5,name:"show_share_buttons",kind:"scalar",T:8},{no:6,name:"show_reading_time",kind:"scalar",T:8},{no:7,name:"display_full_lang_name",kind:"scalar",T:8},{no:8,name:"show_post_nav_links",kind:"scalar",T:8},{no:9,name:"show_bread_crumbs",kind:"scalar",T:8},{no:10,name:"show_code_copy_buttons",kind:"scalar",T:8},{no:11,name:"show_rss_button_in_section_term_list",kind:"scalar",T:8},{no:12,name:"show_all_pages_in_archive",kind:"scalar",T:8},{no:13,name:"show_page_nums",kind:"scalar",T:8},{no:14,name:"show_toc",kind:"scalar",T:8},{no:15,name:"images",kind:"scalar",T:9,repeated:!0},{no:16,name:"profile_mode",kind:"message",T:MS},{no:17,name:"home_info_params",kind:"message",T:IS},{no:18,name:"social_icons",kind:"message",T:LS,repeated:!0},{no:19,name:"edit_post",kind:"message",T:bS},{no:20,name:"assets",kind:"message",T:SS}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},MS=class t extends I{enabled=!1;title="";imageUrl="";imageTitle="";buttons=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ProfileModeConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"image_url",kind:"scalar",T:9},{no:4,name:"image_title",kind:"scalar",T:9},{no:5,name:"buttons",kind:"message",T:AS,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},AS=class t extends I{name="";url="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ButtonConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},IS=class t extends I{title="";content="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.HomeInfoParamsConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"content",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},LS=class t extends I{name="";title="";url="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.SocialIconConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var Fh=class t extends I{prompt="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.InferRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Bh=class t extends I{text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.InferResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},_h=class t extends I{content;site;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.TypesResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Yh},{no:2,name:"site",kind:"message",T:Yh}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Uh=class t extends I{contentTypes=[];tags=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.GetSourcesRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"content_types",kind:"scalar",T:9,repeated:!0},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Jh=class t extends I{captureDevice=0;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.VoiceInputRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},zh=class t extends I{segment;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.VoiceInputResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:xu}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Vh=class t extends I{parent="";children=[];connect=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.RelateRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"parent",kind:"scalar",T:9},{no:2,name:"children",kind:"scalar",T:9,repeated:!0},{no:3,name:"connect",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},qh=class t extends I{sources=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Sources";static fields=h.util.newFieldList(()=>[{no:1,name:"sources",kind:"message",T:DS,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},DS=class t extends I{source;displayContent=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.EnumeratedSource";static fields=h.util.newFieldList(()=>[{no:1,name:"source",kind:"message",T:BS},{no:2,name:"display_content",kind:"message",T:FS,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},FS=class t extends I{title="";description="";type="";content;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.DisplayContent";static fields=h.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"type",kind:"scalar",T:9},{no:4,name:"content",kind:"message",T:Qe}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},BS=class t extends I{name="";type={case:void 0};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Source";static fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"server",kind:"message",T:_S,oneof:"type"},{no:3,name:"folder",kind:"message",T:US,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},_S=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Server";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},US=class t extends I{path="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Folder";static fields=h.util.newFieldList(()=>[{no:2,name:"path",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},jh=class t extends I{contentId="";tags=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.SetTagsRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Hh=class t extends I{groupId="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.TagRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},$h=class t extends I{tags=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Tags";static fields=h.util.newFieldList(()=>[{no:1,name:"tags",kind:"message",T:Gh,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Gh=class t extends I{name="";subTags=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Tag";static fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"sub_tags",kind:"message",T:t,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},as=class t extends I{contentIds=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ContentIDs";static fields=h.util.newFieldList(()=>[{no:1,name:"content_ids",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},zd=class t extends I{content;tags=[];related=[];parents=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Contents";static fields=h.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Qe},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0},{no:3,name:"related",kind:"message",T:Qe,repeated:!0},{no:4,name:"parents",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Wh=class t extends I{query="";page=0;contentID="";groupID="";tags=[];contentTypes=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Query";static fields=h.util.newFieldList(()=>[{no:1,name:"query",kind:"scalar",T:9},{no:2,name:"page",kind:"scalar",T:13},{no:3,name:"contentID",kind:"scalar",T:9},{no:4,name:"groupID",kind:"scalar",T:9},{no:5,name:"tags",kind:"scalar",T:9,repeated:!0},{no:6,name:"content_types",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Kh=class t extends I{storedContent=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Results";static fields=h.util.newFieldList(()=>[{no:1,name:"storedContent",kind:"message",T:JS,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},JS=class t extends I{content;id="";related=[];title="";description="";image="";url="";user;tags=[];preview="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.StoredContent";static fields=h.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Qe},{no:2,name:"id",kind:"scalar",T:9},{no:3,name:"related",kind:"message",T:Qe,repeated:!0},{no:4,name:"title",kind:"scalar",T:9},{no:5,name:"description",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"url",kind:"scalar",T:9},{no:9,name:"user",kind:"message",T:No},{no:10,name:"tags",kind:"message",T:Gh,repeated:!0},{no:11,name:"preview",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},hA=class t extends I{from="";to="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Edge";static fields=h.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Qe=class t extends I{tags=[];createdAt="";uri="";id="";type={case:void 0};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Content";static fields=h.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"created_at",kind:"scalar",T:9},{no:3,name:"uri",kind:"scalar",T:9},{no:4,name:"id",kind:"scalar",T:9},{no:6,name:"data",kind:"message",T:Vd,oneof:"type"},{no:7,name:"normalized",kind:"message",T:zS,oneof:"type"},{no:8,name:"transformed",kind:"message",T:VS,oneof:"type"},{no:9,name:"post",kind:"message",T:la,oneof:"type"},{no:10,name:"site",kind:"message",T:ls,oneof:"type"},{no:11,name:"chatgpt_conversation",kind:"message",T:Ah,oneof:"type"},{no:12,name:"browser_history",kind:"message",T:Ih,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},la=class t extends I{title="";summary="";content="";authors=[];draft=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Post";static fields=h.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"content",kind:"scalar",T:9},{no:4,name:"authors",kind:"scalar",T:9,repeated:!0},{no:6,name:"draft",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},gA=class t extends I{url="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.GitRepo";static fields=h.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Vd=class t extends I{type={case:void 0};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Data";static fields=h.util.newFieldList(()=>[{no:4,name:"text",kind:"message",T:KS,oneof:"type"},{no:5,name:"file",kind:"message",T:WS,oneof:"type"},{no:6,name:"url",kind:"message",T:YS,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},zS=class t extends I{type={case:void 0};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Normalized";static fields=h.util.newFieldList(()=>[{no:3,name:"article",kind:"message",T:qS,oneof:"type"},{no:4,name:"html",kind:"message",T:jS,oneof:"type"},{no:6,name:"transcript",kind:"message",T:QS,oneof:"type"},{no:7,name:"readme",kind:"message",T:HS,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},VS=class t extends I{type={case:void 0};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Transformed";static fields=h.util.newFieldList(()=>[{no:1,name:"summary",kind:"message",T:$S,oneof:"type"},{no:2,name:"categories",kind:"message",T:GS,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},qS=class t extends I{title="";author="";length=0;excerpt="";siteName="";image="";favicon="";text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Article";static fields=h.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"author",kind:"scalar",T:9},{no:3,name:"length",kind:"scalar",T:5},{no:4,name:"excerpt",kind:"scalar",T:9},{no:5,name:"site_name",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"favicon",kind:"scalar",T:9},{no:8,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},jS=class t extends I{html="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.HTML";static fields=h.util.newFieldList(()=>[{no:1,name:"html",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},HS=class t extends I{data="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ReadMe";static fields=h.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},$S=class t extends I{summary="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Summary";static fields=h.util.newFieldList(()=>[{no:1,name:"summary",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},GS=class t extends I{categories=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Categories";static fields=h.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},WS=class t extends I{file="";data=new Uint8Array(0);url="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.File";static fields=h.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9},{no:2,name:"data",kind:"scalar",T:12},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},KS=class t extends I{data="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Text";static fields=h.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},YS=class t extends I{url="";crawl=!1;title="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.URL";static fields=h.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"crawl",kind:"scalar",T:8},{no:3,name:"title",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},XS=class t extends I{id=0;startTime=Je.zero;endTime=Je.zero;text="";p="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Token";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},xu=class t extends I{num=0;tokens=[];text="";startTime=Je.zero;endTime=Je.zero;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Segment";static fields=h.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:XS,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},QS=class t extends I{id="";name="";segments=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Transcript";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:xu,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Yh=class t extends I{msg;descLookup={};enumLookup={};packageName="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.GRPCTypeInfo";static fields=h.util.newFieldList(()=>[{no:1,name:"msg",kind:"message",T:To},{no:3,name:"desc_lookup",kind:"map",K:9,V:{kind:"message",T:To}},{no:4,name:"enum_lookup",kind:"map",K:9,V:{kind:"message",T:ci}},{no:6,name:"package_name",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ls=class t extends I{sections=[];hugoConfig;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Site";static fields=h.util.newFieldList(()=>[{no:1,name:"sections",kind:"message",T:fi,repeated:!0},{no:2,name:"hugo_config",kind:"message",T:Lh}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},fi=class t extends I{tags=[];menu;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Section";static fields=h.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"menu",kind:"message",T:aa}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var Xh=class t extends I{text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.AnalyzeConversationRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Qh=class t extends I{prompt="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GenerateImagesRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Zh=class t extends I{images=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GenerateImagesResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"images",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},eg=class t extends I{id="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.DeleteSessionRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},bu=class t extends I{id="";text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.Prompt";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},tg=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GetPromptsRequest";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ng=class t extends I{prompts=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GetPromptsResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"prompts",kind:"message",T:bu,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},rg=class t extends I{prompt="";text=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.InferRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},og=class t extends I{text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.InferResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ig=class t extends I{content;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.UploadContentRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Qe}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},yA=class t extends I{id="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.UploadContentResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},sg=class t extends I{id="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GetSessionRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ag=class t extends I{session;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GetSessionResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"session",kind:"message",T:cg}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},lg=class t extends I{page=Je.zero;limit=Je.zero;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GetSessionsRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"page",kind:"scalar",T:4},{no:2,name:"limit",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ug=class t extends I{sessions=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GetSessionsResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"sessions",kind:"message",T:cg,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ZS=class t extends I{id=0;startTime=Je.zero;endTime=Je.zero;text="";p="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.Token";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},qd=class t extends I{num=0;tokens=[];text="";startTime=Je.zero;endTime=Je.zero;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.Segment";static fields=h.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:ZS,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},cg=class t extends I{id="";name="";segments=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.Session";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:qd,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},vA=class t extends I{filePath="";model="";language="";translate=!1;offset=Je.zero;duration=Je.zero;threads=0;speedup=!1;maxLen=0;maxTokens=0;wordThreshold=0;tokens=!1;colorize=!1;out="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.TranscriptionRequest";static fields=h.util.newFieldList(()=>[{no:14,name:"file_path",kind:"scalar",T:9},{no:1,name:"model",kind:"scalar",T:9},{no:2,name:"language",kind:"scalar",T:9},{no:3,name:"translate",kind:"scalar",T:8},{no:4,name:"offset",kind:"scalar",T:3},{no:5,name:"duration",kind:"scalar",T:3},{no:6,name:"threads",kind:"scalar",T:13},{no:7,name:"speedup",kind:"scalar",T:8},{no:8,name:"max_len",kind:"scalar",T:13},{no:9,name:"max_tokens",kind:"scalar",T:13},{no:10,name:"word_threshold",kind:"scalar",T:1},{no:11,name:"tokens",kind:"scalar",T:8},{no:12,name:"colorize",kind:"scalar",T:8},{no:13,name:"out",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},wA=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.RegisterFlags";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},xA=class t extends I{text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.OCRText";static fields=h.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},bA=class t extends I{image=new Uint8Array(0);constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.Image";static fields=h.util.newFieldList(()=>[{no:1,name:"image",kind:"scalar",T:12}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},dg=class t extends I{from="";to="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.ConvertFileRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},fg=class t extends I{captureDevice=0;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.ChatRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},jd=class t extends I{segment;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.ChatResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:qd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},pg=class t extends I{id="";file="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.YouTubeVideo";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"file",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Hd=class t extends I{file="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.FilePath";static fields=h.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},mg=class t extends I{title="";filePath;transcript=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.YouTubeVideoResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"file_path",kind:"message",T:Hd},{no:3,name:"transcript",kind:"message",T:xu,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var hg=class t extends I{phoneNumbers=[];summary="";questions=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="ai.AnalyzeConversationResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"phone_numbers",kind:"scalar",T:9,repeated:!0},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"questions",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},SA=class t extends I{categories=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="ai.AnalyzeContent";static fields=h.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var kA={typeName:"protoflow.ProtoflowService",methods:{downloadYouTubeVideo:{name:"DownloadYouTubeVideo",I:pg,O:mg,kind:he.Unary},getSessions:{name:"GetSessions",I:lg,O:ug,kind:he.Unary},getSession:{name:"GetSession",I:sg,O:ag,kind:he.Unary},deleteSession:{name:"DeleteSession",I:eg,O:jt,kind:he.Unary},getPrompts:{name:"GetPrompts",I:tg,O:ng,kind:he.Unary},newPrompt:{name:"NewPrompt",I:bu,O:bu,kind:he.Unary},uploadContent:{name:"UploadContent",I:ig,O:jd,kind:he.ServerStreaming},infer:{name:"Infer",I:rg,O:og,kind:he.ServerStreaming},chat:{name:"Chat",I:fg,O:jd,kind:he.ServerStreaming},convertFile:{name:"ConvertFile",I:dg,O:Hd,kind:he.Unary},generateImages:{name:"GenerateImages",I:Qh,O:Zh,kind:he.Unary},analyzeConversation:{name:"AnalyzeConversation",I:Xh,O:hg,kind:he.Unary}}};var EA={typeName:"content.ContentService",methods:{save:{name:"Save",I:zd,O:as,kind:he.Unary},search:{name:"Search",I:Wh,O:Kh,kind:he.Unary},relate:{name:"Relate",I:Vh,O:jt,kind:he.Unary},analyze:{name:"Analyze",I:Qe,O:zd,kind:he.Unary},delete:{name:"Delete",I:as,O:as,kind:he.Unary},getTags:{name:"GetTags",I:Hh,O:$h,kind:he.Unary},setTags:{name:"SetTags",I:jh,O:jt,kind:he.Unary},publish:{name:"Publish",I:as,O:as,kind:he.Unary},getSources:{name:"GetSources",I:Uh,O:qh,kind:he.Unary},infer:{name:"Infer",I:Fh,O:Bh,kind:he.ServerStreaming},types:{name:"Types",I:jt,O:_h,kind:he.Unary},voiceInput:{name:"VoiceInput",I:Jh,O:zh,kind:he.ServerStreaming}}};var RA={typeName:"user.UserService",methods:{register:{name:"Register",I:No,O:No,kind:he.Unary},login:{name:"Login",I:No,O:Mh,kind:he.Unary},logout:{name:"Logout",I:jt,O:jt,kind:he.Unary},resetPassword:{name:"ResetPassword",I:No,O:jt,kind:he.Unary},verifyUser:{name:"VerifyUser",I:Ch,O:jt,kind:he.Unary},updateConfig:{name:"UpdateConfig",I:Jd,O:jt,kind:he.Unary},createGroupInvite:{name:"CreateGroupInvite",I:Nh,O:Ud,kind:he.Unary},joinGroup:{name:"JoinGroup",I:Ud,O:di,kind:he.Unary},groupInfo:{name:"GroupInfo",I:Th,O:di,kind:he.Unary},createGroup:{name:"CreateGroup",I:di,O:di,kind:he.Unary},getGroups:{name:"GetGroups",I:jt,O:Ph,kind:he.Unary},deleteGroup:{name:"DeleteGroup",I:di,O:jt,kind:he.Unary},share:{name:"Share",I:Oh,O:jt,kind:he.Unary}}};var gg=class t extends I{user="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chat.BanUserRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},yg=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chat.BanUserResponse";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},vg=class t extends I{message="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chat.SendMessageRequest";static fields=h.util.newFieldList(()=>[{no:2,name:"message",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},wg=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chat.SendMessageResponse";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},xg=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chat.ReceiveMessagesRequest";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},bg=class t extends I{user="";text="";timestamp=Je.zero;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chat.Message";static fields=h.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"timestamp",kind:"scalar",T:3}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var CA={typeName:"chat.ChatService",methods:{sendMessage:{name:"SendMessage",I:vg,O:wg,kind:he.Unary},receiveMessages:{name:"ReceiveMessages",I:xg,O:bg,kind:he.ServerStreaming},banUser:{name:"BanUser",I:gg,O:yg,kind:he.Unary}}};var Sg=class t extends I{type={case:void 0};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="event.Metric";static fields=h.util.newFieldList(()=>[{no:1,name:"http",kind:"message",T:ek,oneof:"type"},{no:2,name:"rrweb",kind:"message",T:tk,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ek=class t extends I{method="";path="";query="";headers={};host="";remoteAddr="";userAgent="";referer="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="event.HTTPRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"method",kind:"scalar",T:9},{no:2,name:"path",kind:"scalar",T:9},{no:3,name:"query",kind:"scalar",T:9},{no:4,name:"headers",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"host",kind:"scalar",T:9},{no:6,name:"remoteAddr",kind:"scalar",T:9},{no:7,name:"userAgent",kind:"scalar",T:9},{no:8,name:"referer",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},tk=class t extends I{events="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="event.RRWeb";static fields=h.util.newFieldList(()=>[{no:1,name:"events",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},kg=class t extends I{id="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="event.SendResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var TA={typeName:"event.EventService",methods:{send:{name:"Send",I:Sg,O:kg,kind:he.Unary}}};var _e;(function(t){t[t.Canceled=1]="Canceled",t[t.Unknown=2]="Unknown",t[t.InvalidArgument=3]="InvalidArgument",t[t.DeadlineExceeded=4]="DeadlineExceeded",t[t.NotFound=5]="NotFound",t[t.AlreadyExists=6]="AlreadyExists",t[t.PermissionDenied=7]="PermissionDenied",t[t.ResourceExhausted=8]="ResourceExhausted",t[t.FailedPrecondition=9]="FailedPrecondition",t[t.Aborted=10]="Aborted",t[t.OutOfRange=11]="OutOfRange",t[t.Unimplemented=12]="Unimplemented",t[t.Internal=13]="Internal",t[t.Unavailable=14]="Unavailable",t[t.DataLoss=15]="DataLoss",t[t.Unauthenticated=16]="Unauthenticated"})(_e||(_e={}));function $d(t){let e=_e[t];return typeof e!="string"?t.toString():e[0].toLowerCase()+e.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var Eg;function NA(t){if(!Eg){Eg={};for(let e of Object.values(_e))typeof e!="string"&&(Eg[$d(e)]=e)}return Eg[t]}var Dt=class t extends Error{constructor(e,n=_e.Unknown,r,o,i){super(Zq(e,n)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=e,this.code=n,this.metadata=new Headers(r??{}),this.details=o??[],this.cause=i}static from(e,n=_e.Unknown){return e instanceof t?e:e instanceof Error?e.name=="AbortError"?new t(e.message,_e.Canceled):new t(e.message,n,void 0,void 0,e):new t(String(e),n,void 0,void 0,e)}static[Symbol.hasInstance](e){return e instanceof Error?Object.getPrototypeOf(e)===t.prototype?!0:e.name==="ConnectError"&&"code"in e&&typeof e.code=="number"&&"metadata"in e&&"details"in e&&Array.isArray(e.details)&&"rawMessage"in e&&typeof e.rawMessage=="string"&&"cause"in e:!1}findDetails(e){let n="typeName"in e?{findMessage:o=>o===e.typeName?e:void 0}:e,r=[];for(let o of this.details){if(o instanceof I){n.findMessage(o.getType().typeName)&&r.push(o);continue}let i=n.findMessage(o.type);if(i)try{r.push(i.fromBinary(o.value))}catch{}}return r}};function Zq(t,e){return t.length?`[${$d(e)}] ${t}`:`[${$d(e)}]`}function nk(...t){let e=new Headers;for(let n of t)n.forEach((r,o)=>{e.append(o,r)});return e}function OA(t,e){let n={};for(let[r,o]of Object.entries(t.methods)){let i=e(Object.assign(Object.assign({},o),{localName:r,service:t}));i!=null&&(n[r]=i)}return n}function rk(t){let e,n=new Uint8Array(0);function r(o){let i=new Uint8Array(n.length+o.length);i.set(n),i.set(o,n.length),n=i}return new ReadableStream({start(){e=t.getReader()},async pull(o){let i;for(;;){if(i===void 0&&n.byteLength>=5){let l=0;for(let u=1;u<5;u++)l=(l<<8)+n[u];i={flags:n[0],length:l}}if(i!==void 0&&n.byteLength>=i.length+5)break;let a=await e.read();if(a.done)break;r(a.value)}if(i===void 0){if(n.byteLength==0){o.close();return}o.error(new Dt("premature end of stream",_e.DataLoss));return}let s=n.subarray(5,5+i.length);n=n.subarray(5+i.length),o.enqueue({flags:i.flags,data:s})}})}function ok(t,e){let n=new Uint8Array(e.length+5);n.set(e,5);let r=new DataView(n.buffer,n.byteOffset,n.byteLength);return r.setUint8(0,t),r.setUint32(1,e.length),n}var e5=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=t[i]&&function(s){return new Promise(function(a,l){s=t[i](s),o(a,l,s.done,s.value)})}}function o(i,s,a,l){Promise.resolve(l).then(function(u){i({value:u,done:a})},s)}},Gd=function(t){return this instanceof Gd?(this.v=t,this):new Gd(t)},t5=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),o,i=[];return o={},a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(p){return function(m){return Promise.resolve(m).then(p,d)}}function a(p,m){r[p]&&(o[p]=function(y){return new Promise(function(v,g){i.push([p,y,v,g])>1||l(p,y)})},m&&(o[p]=m(o[p])))}function l(p,m){try{u(r[p](m))}catch(y){f(i[0][3],y)}}function u(p){p.value instanceof Gd?Promise.resolve(p.value.v).then(c,d):f(i[0][2],p)}function c(p){l("next",p)}function d(p){l("throw",p)}function f(p,m){p(m),i.shift(),i.length&&l(i[0][0],i[0][1])}},n5=function(t){var e,n;return e={},r("next"),r("throw",function(o){throw o}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(o,i){e[o]=t[o]?function(s){return(n=!n)?{value:Gd(t[o](s)),done:!1}:i?i(s):s}:i}};function PA(t){return t5(this,arguments,function*(){yield Gd(yield*n5(e5(t)))})}var MA=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=t[i]&&function(s){return new Promise(function(a,l){s=t[i](s),o(a,l,s.done,s.value)})}}function o(i,s,a,l){Promise.resolve(l).then(function(u){i({value:u,done:a})},s)}},Su=function(t){return this instanceof Su?(this.v=t,this):new Su(t)},r5=function(t){var e,n;return e={},r("next"),r("throw",function(o){throw o}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(o,i){e[o]=t[o]?function(s){return(n=!n)?{value:Su(t[o](s)),done:!1}:i?i(s):s}:i}},o5=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),o,i=[];return o={},a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(p){return function(m){return Promise.resolve(m).then(p,d)}}function a(p,m){r[p]&&(o[p]=function(y){return new Promise(function(v,g){i.push([p,y,v,g])>1||l(p,y)})},m&&(o[p]=m(o[p])))}function l(p,m){try{u(r[p](m))}catch(y){f(i[0][3],y)}}function u(p){p.value instanceof Su?Promise.resolve(p.value.v).then(c,d):f(i[0][2],p)}function c(p){l("next",p)}function d(p){l("throw",p)}function f(p,m){p(m),i.shift(),i.length&&l(i[0][0],i[0][1])}};function ua(t,e){return OA(t,n=>{switch(n.kind){case he.Unary:return i5(e,t,n);case he.ServerStreaming:return s5(e,t,n);case he.ClientStreaming:return a5(e,t,n);case he.BiDiStreaming:return l5(e,t,n);default:return null}})}function i5(t,e,n){return async function(r,o){var i,s;let a=await t.unary(e,n,o?.signal,o?.timeoutMs,o?.headers,r,o?.contextValues);return(i=o?.onHeader)===null||i===void 0||i.call(o,a.header),(s=o?.onTrailer)===null||s===void 0||s.call(o,a.trailer),a.message}}function s5(t,e,n){return function(r,o){return AA(t.stream(e,n,o?.signal,o?.timeoutMs,o?.headers,PA([r]),o?.contextValues),o)}}function a5(t,e,n){return async function(r,o){var i,s,a,l,u,c;let d=await t.stream(e,n,o?.signal,o?.timeoutMs,o?.headers,r,o?.contextValues);(u=o?.onHeader)===null||u===void 0||u.call(o,d.header);let f;try{for(var p=!0,m=MA(d.message),y;y=await m.next(),i=y.done,!i;p=!0)l=y.value,p=!1,f=l}catch(v){s={error:v}}finally{try{!p&&!i&&(a=m.return)&&await a.call(m)}finally{if(s)throw s.error}}if(!f)throw new Dt("protocol error: missing response message",_e.Internal);return(c=o?.onTrailer)===null||c===void 0||c.call(o,d.trailer),f}}function l5(t,e,n){return function(r,o){return AA(t.stream(e,n,o?.signal,o?.timeoutMs,o?.headers,r,o?.contextValues),o)}}function AA(t,e){let n=function(){var r,o;return o5(this,arguments,function*(){let i=yield Su(t);(r=e?.onHeader)===null||r===void 0||r.call(e,i.header),yield Su(yield*r5(MA(i.message))),(o=e?.onTrailer)===null||o===void 0||o.call(e,i.trailer)})}()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function IA(...t){let e=new AbortController,n=t.filter(o=>o!==void 0).concat(e.signal);for(let o of n){if(o.aborted){r.apply(o);break}o.addEventListener("abort",r)}function r(){e.signal.aborted||e.abort(ik(this));for(let o of n)o.removeEventListener("abort",r)}return e}function LA(t){let e=new AbortController,n=()=>{e.abort(new Dt("the operation timed out",_e.DeadlineExceeded))},r;return t!==void 0&&(t<=0?n():r=setTimeout(n,t)),{signal:e.signal,cleanup:()=>clearTimeout(r)}}function ik(t){if(!t.aborted)return;if(t.reason!==void 0)return t.reason;let e=new Error("This operation was aborted");return e.name="AbortError",e}function Rg(){return{get(t){return t.id in this?this[t.id]:t.defaultValue},set(t,e){return this[t.id]=e,this},delete(t){return delete this[t.id],this}}}function Cg(t,e,n){let r=typeof e=="string"?e:e.typeName,o=typeof n=="string"?n:n.name;return t.toString().replace(/\/?$/,`/${r}/${o}`)}function sk(t,e){return e instanceof t?e:new t(e)}function DA(t,e){function n(r){return r.done===!0?r:{done:r.done,value:sk(t,r.value)}}return{[Symbol.asyncIterator](){let r=e[Symbol.asyncIterator](),o={next:()=>r.next().then(n)};return r.throw!==void 0&&(o.throw=i=>r.throw(i).then(n)),r.return!==void 0&&(o.return=i=>r.return(i).then(n)),o}}}function Tg(t){var e;let n=Object.assign({},t);return(e=n.ignoreUnknownFields)!==null&&e!==void 0||(n.ignoreUnknownFields=!0),n}function Ng(t,e,n,r){let o=e?FA(t.I,r):BA(t.I,n);return{parse:(e?FA(t.O,r):BA(t.O,n)).parse,serialize:o.serialize}}function FA(t,e){return{parse(n){try{return t.fromBinary(n,e)}catch(r){let o=r instanceof Error?r.message:String(r);throw new Dt(`parse binary: ${o}`,_e.InvalidArgument)}},serialize(n){try{return n.toBinary(e)}catch(r){let o=r instanceof Error?r.message:String(r);throw new Dt(`serialize binary: ${o}`,_e.Internal)}}}}function BA(t,e){var n,r;let o=(n=e?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,i=(r=e?.textDecoder)!==null&&r!==void 0?r:new TextDecoder,s=Tg(e);return{parse(a){try{let l=i.decode(a);return t.fromJsonString(l,s)}catch(l){throw Dt.from(l,_e.InvalidArgument)}},serialize(a){try{let l=a.toJsonString(s);return o.encode(l)}catch(l){throw Dt.from(l,_e.Internal)}}}}var u5=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var _A="application/proto",UA="application/json",JA="application/connect+proto",zA="application/connect+json";function VA(t){let e=t?.match(u5);if(!e)return;let n=!!e[1],r=!!e[3];return{stream:n,binary:r}}function Wd(t,e,n){if(e&&new Headers(e).forEach((s,a)=>n.metadata.append(a,s)),typeof t!="object"||t==null||Array.isArray(t)||!("code"in t)||typeof t.code!="string")throw n;let r=NA(t.code);if(r===void 0)throw n;let o=t.message;if(o!=null&&typeof o!="string")throw n;let i=new Dt(o??"",r,e);if("details"in t&&Array.isArray(t.details))for(let s of t.details){if(s===null||typeof s!="object"||Array.isArray(s)||typeof s.type!="string"||typeof s.value!="string"||"debug"in s&&typeof s.debug!="object")throw n;try{i.details.push({type:s.type,value:rs.dec(s.value),debug:s.debug})}catch{throw n}}return i}var Og=2;function ak(t){let e=new Dt("invalid end stream",_e.InvalidArgument),n;try{n=JSON.parse(typeof t=="string"?t:new TextDecoder().decode(t))}catch{throw e}if(typeof n!="object"||n==null||Array.isArray(n))throw e;let r=new Headers;if("metadata"in n){if(typeof n.metadata!="object"||n.metadata==null||Array.isArray(n.metadata))throw e;for(let[i,s]of Object.entries(n.metadata)){if(!Array.isArray(s)||s.some(a=>typeof a!="string"))throw e;for(let a of s)r.append(i,a)}}let o="error"in n?Wd(n.error,r,e):void 0;return{metadata:r,error:o}}var Kd="Content-Type",qA="Content-Length",Pg="Content-Encoding";var lk="Accept-Encoding";var jA="Connect-Timeout-Ms",Mg="Connect-Protocol-Version",HA="User-Agent";function $A(t){switch(t){case 400:return _e.InvalidArgument;case 401:return _e.Unauthenticated;case 403:return _e.PermissionDenied;case 404:return _e.Unimplemented;case 408:return _e.DeadlineExceeded;case 409:return _e.Aborted;case 412:return _e.FailedPrecondition;case 413:return _e.ResourceExhausted;case 415:return _e.Internal;case 429:return _e.Unavailable;case 431:return _e.ResourceExhausted;case 502:return _e.Unavailable;case 503:return _e.Unavailable;case 504:return _e.Unavailable;default:return _e.Unknown}}function Ag(t){let e=new Headers,n=new Headers;return t.forEach((r,o)=>{o.toLowerCase().startsWith("trailer-")?n.set(o.substring(8),r):e.set(o,r)}),[e,n]}var Ig="1";function Lg(t,e,n,r,o){let i=new Headers(r??{});return n!==void 0&&i.set(jA,`${n}`),i.set(Kd,t==he.Unary?e?_A:UA:e?JA:zA),i.set(Mg,Ig),o&&i.set(HA,"connect-es/1.3.0"),i}function Dg(t,e,n){let r=n.get("Content-Type"),o=VA(r);if(e!==200){let i=new Dt(`HTTP ${e}`,$A(e),n);if(t==he.Unary&&o&&!o.binary)return{isUnaryError:!0,unaryError:i};throw i}return{isUnaryError:!1}}var GA="application/";function d5(t,e){return e?rs.enc(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):encodeURIComponent(new TextDecoder().decode(t))}function uk(t,e,n){let r=`?connect=v${Ig}`,o=t.header.get(Kd);o?.indexOf(GA)===0&&(r+="&encoding="+encodeURIComponent(o.slice(GA.length)));let i=t.header.get(Pg);i!==null&&i!=="identity"&&(r+="&compression="+encodeURIComponent(i),n=!0),n&&(r+="&base64=1"),r+="&message="+d5(e,n);let s=t.url+r,a=new Headers(t.header);return[Mg,Kd,qA,Pg,lk].forEach(l=>a.delete(l)),Object.assign(Object.assign({},t),{init:Object.assign(Object.assign({},t.init),{method:"GET"}),url:s,header:a})}function ck(t){let e=KA(t.next,t.interceptors),[n,r,o]=WA(t),i=Object.assign(Object.assign({},t.req),{message:sk(t.req.method.I,t.req.message),signal:n});return e(i).then(s=>(o(),s),r)}function dk(t){let e=KA(t.next,t.interceptors),[n,r,o]=WA(t),i=Object.assign(Object.assign({},t.req),{message:DA(t.req.method.I,t.req.message),signal:n}),s=!1;return n.addEventListener("abort",function(){var a,l;let u=t.req.message[Symbol.asyncIterator]();s||(a=u.throw)===null||a===void 0||a.call(u,this.reason).catch(()=>{}),(l=u.return)===null||l===void 0||l.call(u).catch(()=>{})}),e(i).then(a=>Object.assign(Object.assign({},a),{message:{[Symbol.asyncIterator](){let l=a.message[Symbol.asyncIterator]();return{next(){return l.next().then(u=>(u.done==!0&&(s=!0,o()),u),r)}}}}}),r)}function WA(t){let{signal:e,cleanup:n}=LA(t.timeoutMs),r=IA(t.signal,e);return[r.signal,function(i){let s=Dt.from(e.aborted?ik(e):i);return r.abort(s),n(),Promise.reject(s)},function(){n(),r.abort()}]}function KA(t,e){var n;return(n=e?.concat().reverse().reduce((r,o)=>o(r),t))!==null&&n!==void 0?n:t}function YA(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var Yd=function(t){return this instanceof Yd?(this.v=t,this):new Yd(t)},f5=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),o,i=[];return o={},a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(p){return function(m){return Promise.resolve(m).then(p,d)}}function a(p,m){r[p]&&(o[p]=function(y){return new Promise(function(v,g){i.push([p,y,v,g])>1||l(p,y)})},m&&(o[p]=m(o[p])))}function l(p,m){try{u(r[p](m))}catch(y){f(i[0][3],y)}}function u(p){p.value instanceof Yd?Promise.resolve(p.value.v).then(c,d):f(i[0][2],p)}function c(p){l("next",p)}function d(p){l("throw",p)}function f(p,m){p(m),i.shift(),i.length&&l(i[0][0],i[0][1])}};function fk(t){var e;YA();let n=(e=t.useBinaryFormat)!==null&&e!==void 0?e:!1;return{async unary(r,o,i,s,a,l,u){var c;let{serialize:d,parse:f}=Ng(o,n,t.jsonOptions,t.binaryOptions);return s=s===void 0?t.defaultTimeoutMs:s<=0?void 0:s,await ck({interceptors:t.interceptors,signal:i,timeoutMs:s,req:{stream:!1,service:r,method:o,url:Cg(t.baseUrl,r,o),init:{method:"POST",credentials:(c=t.credentials)!==null&&c!==void 0?c:"same-origin",redirect:"error",mode:"cors"},header:Lg(o.kind,n,s,a,!1),contextValues:u??Rg(),message:l},next:async p=>{var m;let y=t.useHttpGet===!0&&o.idempotency===Pd.NoSideEffects,v=null;y?p=uk(p,d(p.message),n):v=d(p.message);let w=await((m=t.fetch)!==null&&m!==void 0?m:globalThis.fetch)(p.url,Object.assign(Object.assign({},p.init),{headers:p.header,signal:p.signal,body:v})),{isUnaryError:S,unaryError:b}=Dg(o.kind,w.status,w.headers);if(S)throw Wd(await w.json(),nk(...Ag(w.headers)),b);let[k,x]=Ag(w.headers);return{stream:!1,service:r,method:o,header:k,message:n?f(new Uint8Array(await w.arrayBuffer())):o.O.fromJson(await w.json(),Tg(t.jsonOptions)),trailer:x}}})},async stream(r,o,i,s,a,l,u){var c;let{serialize:d,parse:f}=Ng(o,n,t.jsonOptions,t.binaryOptions);function p(y,v,g){return f5(this,arguments,function*(){let S=rk(y).getReader(),b=!1;for(;;){let k=yield Yd(S.read());if(k.done)break;let{flags:x,data:M}=k.value;if((x&Og)===Og){b=!0;let T=ak(M);if(T.error){let P=T.error;throw g.forEach((J,q)=>{P.metadata.append(q,J)}),P}T.metadata.forEach((P,J)=>v.set(J,P));continue}yield yield Yd(f(M))}if(!b)throw"missing EndStreamResponse"})}async function m(y){if(o.kind!=he.ServerStreaming)throw"The fetch API does not support streaming request bodies";let v=await y[Symbol.asyncIterator]().next();if(v.done==!0)throw"missing request message";return ok(0,d(v.value))}return s=s===void 0?t.defaultTimeoutMs:s<=0?void 0:s,await dk({interceptors:t.interceptors,timeoutMs:s,signal:i,req:{stream:!0,service:r,method:o,url:Cg(t.baseUrl,r,o),init:{method:"POST",credentials:(c=t.credentials)!==null&&c!==void 0?c:"same-origin",redirect:"error",mode:"cors"},header:Lg(o.kind,n,s,a,!1),contextValues:u??Rg(),message:l},next:async y=>{var v;let w=await((v=t.fetch)!==null&&v!==void 0?v:globalThis.fetch)(y.url,Object.assign(Object.assign({},y.init),{headers:y.header,signal:y.signal,body:await m(y.message)}));if(Dg(o.kind,w.status,w.headers),w.body===null)throw"missing response body";let S=new Headers;return Object.assign(Object.assign({},y),{header:w.headers,trailer:S,message:p(w.body,S,w.headers)})}})}}}var p5="https://demo.lunabrain.com",Xd=fk({baseUrl:`${p5}/api`||"error"}),m5=ua(kA,Xd),Ft=ua(EA,Xd),Oo=ua(RA,Xd),Fg=ua(CA,Xd),Dre=ua(TA,Xd);var XA=nn(void 0);XA.debugLabel="userAtom";var Po=()=>{let[t,e]=Lt(XA);return{user:t,register:async(s,a)=>{try{let l=await Oo.register({email:s,password:a});e(l),Xe.success("Successfully registered!")}catch(l){console.error(l),Xe.error("Failed to register: "+l.message)}},tryLogin:async()=>{try{let s=await Oo.login({});s.success&&e(s.user)}catch(s){console.error(s),Xe.error("Failed to login: "+s.message)}},login:async(s,a)=>{try{let l=await Oo.login({email:s,password:a});e(l.user),Xe.success("Logged in")}catch(l){Xe.error("Failed to login"),console.error("failed to login",l)}},logout:async()=>{try{let s=await Oo.logout({});e(void 0),console.log(s),Xe.success("Logged out")}catch(s){Xe.error("Failed to logout"),console.error("failed to logout",s)}}}};var gn=Y(we(),1),us=({next:t,allowRegister:e})=>{let[n,r]=(0,Bg.useState)(""),[o,i]=(0,Bg.useState)(""),{login:s,register:a}=Po(),[l,u]=(0,Bg.useState)("login");return(0,gn.jsx)(gn.Fragment,{children:(0,gn.jsx)("div",{className:"mt-4",children:(0,gn.jsx)("div",{className:"items-center px-5 py-12 lg:px-20",children:(0,gn.jsxs)("div",{className:"flex flex-col w-full max-w-md p-10 mx-auto",children:[(0,gn.jsx)("a",{className:"btn",href:`/auth/google${t?"?next="+t:""}`,children:"login with google"}),(0,gn.jsx)("div",{className:"divider",children:"or"}),(0,gn.jsxs)("div",{className:"tabs tabs-lifted",children:[(0,gn.jsx)("a",{className:`tab ${l==="login"?"tab-active":""}`,onClick:()=>u("login"),children:"login"}),e&&(0,gn.jsx)("a",{className:`tab ${l==="register"?"tab-active":""}`,onClick:()=>u("register"),children:"register"})]}),(0,gn.jsxs)("div",{className:"space-y-2 w-full mx-auto my-6",children:[(0,gn.jsx)("input",{className:"input input-bordered w-full",type:"email",placeholder:"email",value:n,onChange:c=>r(c.target.value)}),(0,gn.jsx)("input",{className:"input input-bordered w-full",type:"password",placeholder:"password",value:o,onChange:c=>i(c.target.value)})]}),(0,gn.jsx)("button",{className:"btn btn-primary",onClick:()=>{l==="login"?s(n,o):a(n,o)},children:l==="login"?"login":"register"})]})})})})};var ca=Y(Ee(),1);var g5=Y(we(),1),h5=(0,ca.createContext)({}),QA=()=>(0,ca.useContext)(h5);var OC=Y(Ee(),1);var ZA=Y(Ee(),1),eI=nn(void 0);eI.debugLabel="sourcesAtom";var tI=nn(void 0);tI.debugLabel="selectedSourceAtom";var nI=nn([]);nI.debugLabel="typesAtom";var rI=nn([]);rI.debugLabel="tagsAtom";var da=()=>{let[t,e]=Lt(eI),[n,r]=Lt(tI),[o,i]=Lt(nI),[s,a]=Lt(rI);return{sources:t,selected:n,setSelected:r,getSources:async()=>{let u=await Ft.getSources({contentTypes:o,tags:s});e(u.sources),u.sources.length>0&&r(u.sources[0])},types:o,setTypes:i,tags:s,setTags:a}},pk="editorContent",oI=nn(new Qe({type:{case:"post",value:new la({content:localStorage.getItem(pk)||"don't think, write."})}}));oI.debugLabel="editedContentAtom";var iI=nn(void 0);iI.debugLabel="selectedContentAtom";var sI=nn(!1);sI.debugLabel="newContent";var fa=()=>{let[t,e]=Lt(oI),[n,r]=Lt(iI),[o,i]=Lt(sI);return{editedContent:t,editContent:u=>{u===void 0?(window.history.pushState({},"","/app"),e(void 0)):(u.id!==void 0&&u.id!==""&&window.history.pushState({},"",`/app/content/${u.id}`),e(u))},selectedContent:n,selectContent:u=>{u===void 0?(window.history.pushState({},"","/app"),r(void 0)):(u.id!==void 0&&u.id!==""&&window.history.pushState({},"",`/app/content/${u.id}`),r(u))},changeContent:u=>{window.history.pushState({},"","/app"),e(u),i(!0)},newContent:o,setNewContent:i}},y5=nn(!1);y5.debugLabel="recordingAtom";var aI=Y(we(),1);var Yn=Y(Ee(),1);function Nn(t){this.content=t}Nn.prototype={constructor:Nn,find:function(t){for(var e=0;e>1}};Nn.from=function(t){if(t instanceof Nn)return t;var e=[];if(t)for(var n in t)e.push(n,t[n]);return new Nn(e)};var mk=Nn;function mI(t,e,n){for(let r=0;;r++){if(r==t.childCount||r==e.childCount)return t.childCount==e.childCount?null:n;let o=t.child(r),i=e.child(r);if(o==i){n+=o.nodeSize;continue}if(!o.sameMarkup(i))return n;if(o.isText&&o.text!=i.text){for(let s=0;o.text[s]==i.text[s];s++)n++;return n}if(o.content.size||i.content.size){let s=mI(o.content,i.content,n+1);if(s!=null)return s}n+=o.nodeSize}}function hI(t,e,n,r){for(let o=t.childCount,i=e.childCount;;){if(o==0||i==0)return o==i?null:{a:n,b:r};let s=t.child(--o),a=e.child(--i),l=s.nodeSize;if(s==a){n-=l,r-=l;continue}if(!s.sameMarkup(a))return{a:n,b:r};if(s.isText&&s.text!=a.text){let u=0,c=Math.min(s.text.length,a.text.length);for(;ue&&r(l,o+a,i||null,s)!==!1&&l.content.size){let c=a+1;l.nodesBetween(Math.max(0,e-c),Math.min(l.content.size,n-c),r,o+c)}a=u}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,n,r,o){let i="",s=!0;return this.nodesBetween(e,n,(a,l)=>{let u=a.isText?a.text.slice(Math.max(e,l)-l,n-l):a.isLeaf?o?typeof o=="function"?o(a):o:a.type.spec.leafText?a.type.spec.leafText(a):"":"";a.isBlock&&(a.isLeaf&&u||a.isTextblock)&&r&&(s?s=!1:i+=r),i+=u},0),i}append(e){if(!e.size)return this;if(!this.size)return e;let n=this.lastChild,r=e.firstChild,o=this.content.slice(),i=0;for(n.isText&&n.sameMarkup(r)&&(o[o.length-1]=n.withText(n.text+r.text),i=1);ie)for(let i=0,s=0;se&&((sn)&&(a.isText?a=a.cut(Math.max(0,e-s),Math.min(a.text.length,n-s)):a=a.cut(Math.max(0,e-s-1),Math.min(a.content.size,n-s-1))),r.push(a),o+=a.nodeSize),s=l}return new t(r,o)}cutByIndex(e,n){return e==n?t.empty:e==0&&n==this.content.length?this:new t(this.content.slice(e,n))}replaceChild(e,n){let r=this.content[e];if(r==n)return this;let o=this.content.slice(),i=this.size+n.nodeSize-r.nodeSize;return o[e]=n,new t(o,i)}addToStart(e){return new t([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new t(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let n=0;nthis.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let r=0,o=0;;r++){let i=this.child(r),s=o+i.nodeSize;if(s>=e)return s==e||n>0?_g(r+1,s):_g(r,o);o=s}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,n){if(!n)return t.empty;if(!Array.isArray(n))throw new RangeError("Invalid input for Fragment.fromJSON");return new t(n.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return t.empty;let n,r=0;for(let o=0;othis.type.rank&&(n||(n=e.slice(0,o)),n.push(this),r=!0),n&&n.push(i)}}return n||(n=e.slice()),r||n.push(this),n}removeFromSet(e){for(let n=0;nr.type.rank-o.type.rank),n}};$e.none=[];var ha=class extends Error{},se=class t{constructor(e,n,r){this.content=e,this.openStart=n,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,n){let r=yI(this.content,e+this.openStart,n);return r&&new t(r,this.openStart,this.openEnd)}removeBetween(e,n){return new t(gI(this.content,e+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,n){if(!n)return t.empty;let r=n.openStart||0,o=n.openEnd||0;if(typeof r!="number"||typeof o!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new t(re.fromJSON(e,n.content),r,o)}static maxOpen(e,n=!0){let r=0,o=0;for(let i=e.firstChild;i&&!i.isLeaf&&(n||!i.type.spec.isolating);i=i.firstChild)r++;for(let i=e.lastChild;i&&!i.isLeaf&&(n||!i.type.spec.isolating);i=i.lastChild)o++;return new t(e,r,o)}};se.empty=new se(re.empty,0,0);function gI(t,e,n){let{index:r,offset:o}=t.findIndex(e),i=t.maybeChild(r),{index:s,offset:a}=t.findIndex(n);if(o==e||i.isText){if(a!=n&&!t.child(s).isText)throw new RangeError("Removing non-flat range");return t.cut(0,e).append(t.cut(n))}if(r!=s)throw new RangeError("Removing non-flat range");return t.replaceChild(r,i.copy(gI(i.content,e-o-1,n-o-1)))}function yI(t,e,n,r){let{index:o,offset:i}=t.findIndex(e),s=t.maybeChild(o);if(i==e||s.isText)return r&&!r.canReplace(o,o,n)?null:t.cut(0,e).append(n).append(t.cut(e));let a=yI(s.content,e-i-1,n);return a&&t.replaceChild(o,s.copy(a))}function v5(t,e,n){if(n.openStart>t.depth)throw new ha("Inserted content deeper than insertion position");if(t.depth-n.openStart!=e.depth-n.openEnd)throw new ha("Inconsistent open depths");return vI(t,e,n,0)}function vI(t,e,n,r){let o=t.index(r),i=t.node(r);if(o==e.index(r)&&r=0&&t.isText&&t.sameMarkup(e[n])?e[n]=t.withText(e[n].text+t.text):e.push(t)}function Qd(t,e,n,r){let o=(e||t).node(n),i=0,s=e?e.index(n):o.childCount;t&&(i=t.index(n),t.depth>n?i++:t.textOffset&&(pa(t.nodeAfter,r),i++));for(let a=i;ao&&wk(t,e,o+1),s=r.depth>o&&wk(n,r,o+1),a=[];return Qd(null,t,o,a),i&&s&&e.index(o)==n.index(o)?(wI(i,s),pa(ma(i,xI(t,e,n,r,o+1)),a)):(i&&pa(ma(i,Jg(t,e,o+1)),a),Qd(e,n,o,a),s&&pa(ma(s,Jg(n,r,o+1)),a)),Qd(r,null,o,a),new re(a)}function Jg(t,e,n){let r=[];if(Qd(null,t,n,r),t.depth>n){let o=wk(t,e,n+1);pa(ma(o,Jg(t,e,n+1)),r)}return Qd(e,null,n,r),new re(r)}function w5(t,e){let n=e.depth-t.openStart,o=e.node(n).copy(t.content);for(let i=n-1;i>=0;i--)o=e.node(i).copy(re.from(o));return{start:o.resolveNoCache(t.openStart+n),end:o.resolveNoCache(o.content.size-t.openEnd-n)}}var zg=class t{constructor(e,n,r){this.pos=e,this.path=n,this.parentOffset=r,this.depth=n.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,n=this.index(this.depth);if(n==e.childCount)return null;let r=this.pos-this.path[this.path.length-1],o=e.child(n);return r?e.child(n).cut(r):o}get nodeBefore(){let e=this.index(this.depth),n=this.pos-this.path[this.path.length-1];return n?this.parent.child(e).cut(0,n):e==0?null:this.parent.child(e-1)}posAtIndex(e,n){n=this.resolveDepth(n);let r=this.path[n*3],o=n==0?0:this.path[n*3-1]+1;for(let i=0;i0;n--)if(this.start(n)<=e&&this.end(n)>=e)return n;return 0}blockRange(e=this,n){if(e.pos=0;r--)if(e.pos<=this.end(r)&&(!n||n(this.node(r))))return new ga(this,e,r);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&n<=e.content.size))throw new RangeError("Position "+n+" out of range");let r=[],o=0,i=n;for(let s=e;;){let{index:a,offset:l}=s.content.findIndex(i),u=i-l;if(r.push(s,a,o+l),!u||(s=s.child(a),s.isText))break;i=u-1,o+=l+1}return new t(n,r,i)}static resolveCached(e,n){for(let o=0;oe&&this.nodesBetween(e,n,i=>(r.isInSet(i.marks)&&(o=!0),!o)),o}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),bI(this.marks,e)}contentMatchAt(e){let n=this.type.contentMatch.matchFragment(this.content,0,e);if(!n)throw new Error("Called contentMatchAt on a node with invalid content");return n}canReplace(e,n,r=re.empty,o=0,i=r.childCount){let s=this.contentMatchAt(e).matchFragment(r,o,i),a=s&&s.matchFragment(this.content,n);if(!a||!a.validEnd)return!1;for(let l=o;ln.type.name)}`);this.content.forEach(n=>n.check())}toJSON(){let e={type:this.type.name};for(let n in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(n=>n.toJSON())),e}static fromJSON(e,n){if(!n)throw new RangeError("Invalid input for Node.fromJSON");let r=null;if(n.marks){if(!Array.isArray(n.marks))throw new RangeError("Invalid mark data for Node.fromJSON");r=n.marks.map(e.markFromJSON)}if(n.type=="text"){if(typeof n.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(n.text,r)}let o=re.fromJSON(e,n.content);return e.nodeType(n.type).create(n.attrs,o,r)}};lo.prototype.text=void 0;var xk=class t extends lo{constructor(e,n,r,o){if(super(e,n,null,o),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):bI(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,n){return this.text.slice(e,n)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new t(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new t(this.type,this.attrs,e,this.marks)}cut(e=0,n=this.text.length){return e==0&&n==this.text.length?this:this.withText(this.text.slice(e,n))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function bI(t,e){for(let n=t.length-1;n>=0;n--)e=t[n].type.name+"("+e+")";return e}var ya=class t{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,n){let r=new bk(e,n);if(r.next==null)return t.empty;let o=SI(r);r.next&&r.err("Unexpected trailing text");let i=N5(T5(o));return O5(i,r),i}matchType(e){for(let n=0;nu.createAndFill()));for(let u=0;u=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function n(r){e.push(r);for(let o=0;o{let i=o+(r.validEnd?"*":" ")+" ";for(let s=0;s"+e.indexOf(r.next[s].next);return i}).join(` +`:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(o){case 0:s=i,o=1;break;case 1:n[r++]=s<<2|(i&48)>>4,s=i,o=2;break;case 2:n[r++]=(s&15)<<4|(i&60)>>2,s=i,o=3;break;case 3:n[r++]=(s&3)<<6|i,o=0;break}}if(o==1)throw Error("invalid base64 string.");return n.subarray(0,r)},enc(t){let e="",n=0,r,o=0;for(let i=0;i>2],o=(r&3)<<4,n=1;break;case 1:e+=ui[o|r>>4],o=(r&15)<<2,n=2;break;case 2:e+=ui[o|r>>6],e+=ui[r&63],n=0;break}return n&&(e+=ui[o],e+="=",n==1&&(e+="=")),e}};var oA={ignoreUnknownFields:!1},iA={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function jq(t){return t?Object.assign(Object.assign({},oA),t):oA}function Hq(t){return t?Object.assign(Object.assign({},iA),t):iA}function ph(t){let e=t($q,sA);return{makeReadOptions:jq,makeWriteOptions:Hq,readMessage(n,r,o,i){if(r==null||Array.isArray(r)||typeof r!="object")throw new Error(`cannot decode message ${n.typeName} from JSON: ${this.debug(r)}`);i=i??new n;let s={};for(let[a,l]of Object.entries(r)){let u=n.fields.findJsonName(a);if(!u){if(!o.ignoreUnknownFields)throw new Error(`cannot decode message ${n.typeName} from JSON: key "${a}" is unknown`);continue}let c=u.localName,d=i;if(u.oneof){if(l===null&&u.kind=="scalar")continue;let f=s[u.oneof.localName];if(f)throw new Error(`cannot decode message ${n.typeName} from JSON: multiple keys for oneof "${u.oneof.name}" present: "${f}", "${a}"`);s[u.oneof.localName]=a,d=d[u.oneof.localName]={case:c},c="value"}if(u.repeated){if(l===null)continue;if(!Array.isArray(l))throw new Error(`cannot decode field ${n.typeName}.${u.name} from JSON: ${this.debug(l)}`);let f=d[c];for(let p of l){if(p===null)throw new Error(`cannot decode field ${n.typeName}.${u.name} from JSON: ${this.debug(p)}`);let m;switch(u.kind){case"message":m=u.T.fromJson(p,o);break;case"enum":if(m=sS(u.T,p,o.ignoreUnknownFields),m===void 0)continue;break;case"scalar":try{m=Td(u.T,p,u.L)}catch(y){let v=`cannot decode field ${n.typeName}.${u.name} from JSON: ${this.debug(p)}`;throw y instanceof Error&&y.message.length>0&&(v+=`: ${y.message}`),new Error(v)}break}f.push(m)}}else if(u.kind=="map"){if(l===null)continue;if(Array.isArray(l)||typeof l!="object")throw new Error(`cannot decode field ${n.typeName}.${u.name} from JSON: ${this.debug(l)}`);let f=d[c];for(let[p,m]of Object.entries(l)){if(m===null)throw new Error(`cannot decode field ${n.typeName}.${u.name} from JSON: map value null`);let y;switch(u.V.kind){case"message":y=u.V.T.fromJson(m,o);break;case"enum":if(y=sS(u.V.T,m,o.ignoreUnknownFields),y===void 0)continue;break;case"scalar":try{y=Td(u.V.T,m,_r.BIGINT)}catch(v){let g=`cannot decode map value for field ${n.typeName}.${u.name} from JSON: ${this.debug(l)}`;throw v instanceof Error&&v.message.length>0&&(g+=`: ${v.message}`),new Error(g)}break}try{f[Td(u.K,u.K==W.BOOL?p=="true"?!0:p=="false"?!1:p:p,_r.BIGINT).toString()]=y}catch(v){let g=`cannot decode map key for field ${n.typeName}.${u.name} from JSON: ${this.debug(l)}`;throw v instanceof Error&&v.message.length>0&&(g+=`: ${v.message}`),new Error(g)}}}else switch(u.kind){case"message":let f=u.T;if(l===null&&f.typeName!="google.protobuf.Value"){if(u.oneof)throw new Error(`cannot decode field ${n.typeName}.${u.name} from JSON: null is invalid for oneof field "${a}"`);continue}d[c]instanceof I?d[c].fromJson(l,o):(d[c]=f.fromJson(l,o),f.fieldWrapper&&!u.oneof&&(d[c]=f.fieldWrapper.unwrapField(d[c])));break;case"enum":let p=sS(u.T,l,o.ignoreUnknownFields);p!==void 0&&(d[c]=p);break;case"scalar":try{d[c]=Td(u.T,l,u.L)}catch(m){let y=`cannot decode field ${n.typeName}.${u.name} from JSON: ${this.debug(l)}`;throw m instanceof Error&&m.message.length>0&&(y+=`: ${m.message}`),new Error(y)}break}}return i},writeMessage(n,r){let o=n.getType(),i={},s;try{for(let a of o.fields.byMember()){let l;if(a.kind=="oneof"){let u=n[a.localName];if(u.value===void 0)continue;if(s=a.findField(u.case),!s)throw"oneof case not found: "+u.case;l=e(s,u.value,r)}else s=a,l=e(s,n[s.localName],r);l!==void 0&&(i[r.useProtoFieldName?s.name:s.jsonName]=l)}}catch(a){let l=s?`cannot encode field ${o.typeName}.${s.name} to JSON`:`cannot encode message ${o.typeName} to JSON`,u=a instanceof Error?a.message:String(a);throw new Error(l+(u.length>0?`: ${u}`:""))}return i},readScalar:Td,writeScalar:sA,debug:aA}}function aA(t){if(t===null)return"null";switch(typeof t){case"object":return Array.isArray(t)?"array":"object";case"string":return t.length>100?"string":`"${t.split('"').join('\\"')}"`;default:return String(t)}}function Td(t,e,n){switch(t){case W.DOUBLE:case W.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""||typeof e=="string"&&e.trim().length!==e.length||typeof e!="string"&&typeof e!="number")break;let r=Number(e);if(Number.isNaN(r)||!Number.isFinite(r))break;return t==W.FLOAT&&th(r),r;case W.INT32:case W.FIXED32:case W.SFIXED32:case W.SINT32:case W.UINT32:if(e===null)return 0;let o;if(typeof e=="number"?o=e:typeof e=="string"&&e.length>0&&e.trim().length===e.length&&(o=Number(e)),o===void 0)break;return t==W.UINT32?Rd(o):jl(o),o;case W.INT64:case W.SFIXED64:case W.SINT64:if(e===null)return Je.zero;if(typeof e!="number"&&typeof e!="string")break;let i=Je.parse(e);return n?i.toString():i;case W.FIXED64:case W.UINT64:if(e===null)return Je.zero;if(typeof e!="number"&&typeof e!="string")break;let s=Je.uParse(e);return n?s.toString():s;case W.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case W.STRING:if(e===null)return"";if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case W.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return rs.dec(e)}throw new Error}function sS(t,e,n){if(e===null)return 0;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":let r=t.findName(e);if(r||n)return r?.no;break}throw new Error(`cannot decode enum ${t.typeName} from JSON: ${aA(e)}`)}function $q(t,e,n,r){var o;if(e===void 0)return e;if(e===0&&!n)return;if(r)return e;if(t.typeName=="google.protobuf.NullValue")return null;let i=t.findNumber(e);return(o=i?.name)!==null&&o!==void 0?o:e}function sA(t,e,n){if(e!==void 0)switch(t){case W.INT32:case W.SFIXED32:case W.SINT32:case W.FIXED32:case W.UINT32:return gt(typeof e=="number"),e!=0||n?e:void 0;case W.FLOAT:case W.DOUBLE:return gt(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e!==0||n?e:void 0;case W.STRING:return gt(typeof e=="string"),e.length>0||n?e:void 0;case W.BOOL:return gt(typeof e=="boolean"),e||n?e:void 0;case W.UINT64:case W.FIXED64:case W.INT64:case W.SFIXED64:case W.SINT64:return gt(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),n||e!=0?e.toString(10):void 0;case W.BYTES:return gt(e instanceof Uint8Array),n||e.byteLength>0?rs.enc(e):void 0}}function lA(){return ph((t,e)=>function(r,o,i){if(r.kind=="map"){let s={};switch(r.V.kind){case"scalar":for(let[l,u]of Object.entries(o)){let c=e(r.V.T,u,!0);gt(c!==void 0),s[l.toString()]=c}break;case"message":for(let[l,u]of Object.entries(o))s[l.toString()]=u.toJson(i);break;case"enum":let a=r.V.T;for(let[l,u]of Object.entries(o)){gt(u===void 0||typeof u=="number");let c=t(a,u,!0,i.enumAsInteger);gt(c!==void 0),s[l.toString()]=c}break}return i.emitDefaultValues||Object.keys(s).length>0?s:void 0}else if(r.repeated){let s=[];switch(r.kind){case"scalar":for(let a=0;a0?s:void 0}else switch(r.kind){case"scalar":return e(r.T,o,!!r.oneof||r.opt||i.emitDefaultValues);case"enum":return t(r.T,o,!!r.oneof||r.opt||i.emitDefaultValues,i.enumAsInteger);case"message":return o!==void 0?sa(r.T,o).toJson(i):void 0}})}function hh(){return{setEnumType:Zb,initPartial(t,e){if(t===void 0)return;let n=e.getType();for(let r of n.fields.byMember()){let o=r.localName,i=e,s=t;if(s[o]!==void 0)switch(r.kind){case"oneof":let a=s[o].case;if(a===void 0)continue;let l=r.findField(a),u=s[o].value;l&&l.kind=="message"&&!(u instanceof l.T)?u=new l.T(u):l&&l.kind==="scalar"&&l.T===W.BYTES&&(u=Nd(u)),i[o]={case:a,value:u};break;case"scalar":case"enum":let c=s[o];r.T===W.BYTES&&(c=r.repeated?c.map(Nd):Nd(c)),i[o]=c;break;case"map":switch(r.V.kind){case"scalar":case"enum":if(r.V.T===W.BYTES)for(let[p,m]of Object.entries(s[o]))i[o][p]=Nd(m);else Object.assign(i[o],s[o]);break;case"message":let f=r.V.T;for(let p of Object.keys(s[o])){let m=s[o][p];f.fieldWrapper||(m=new f(m)),i[o][p]=m}break}break;case"message":let d=r.T;if(r.repeated)i[o]=s[o].map(f=>f instanceof d?f:new d(f));else if(s[o]!==void 0){let f=s[o];d.fieldWrapper?d.typeName==="google.protobuf.BytesValue"?i[o]=Nd(f):i[o]=f:i[o]=f instanceof d?f:new d(f)}break}}},equals(t,e,n){return e===n?!0:!e||!n?!1:t.fields.byMember().every(r=>{let o=e[r.localName],i=n[r.localName];if(r.repeated){if(o.length!==i.length)return!1;switch(r.kind){case"message":return o.every((s,a)=>r.T.equals(s,i[a]));case"scalar":return o.every((s,a)=>ai(r.T,s,i[a]));case"enum":return o.every((s,a)=>ai(W.INT32,s,i[a]))}throw new Error(`repeated cannot contain ${r.kind}`)}switch(r.kind){case"message":return r.T.equals(o,i);case"enum":return ai(W.INT32,o,i);case"scalar":return ai(r.T,o,i);case"oneof":if(o.case!==i.case)return!1;let s=r.findField(o.case);if(s===void 0)return!0;switch(s.kind){case"message":return s.T.equals(o.value,i.value);case"enum":return ai(W.INT32,o.value,i.value);case"scalar":return ai(s.T,o.value,i.value)}throw new Error(`oneof cannot contain ${s.kind}`);case"map":let a=Object.keys(o).concat(Object.keys(i));switch(r.V.kind){case"message":let l=r.V.T;return a.every(c=>l.equals(o[c],i[c]));case"enum":return a.every(c=>ai(W.INT32,o[c],i[c]));case"scalar":let u=r.V.T;return a.every(c=>ai(u,o[c],i[c]))}break}})},clone(t){let e=t.getType(),n=new e,r=n;for(let o of e.fields.byMember()){let i=t[o.localName],s;if(o.repeated)s=i.map(mh);else if(o.kind=="map"){s=r[o.localName];for(let[a,l]of Object.entries(i))s[a]=mh(l)}else o.kind=="oneof"?s=o.findField(i.case)?{case:i.case,value:mh(i.value)}:{case:void 0}:s=mh(i);r[o.localName]=s}return n}}}function mh(t){if(t===void 0)return t;if(t instanceof I)return t.clone();if(t instanceof Uint8Array){let e=new Uint8Array(t.byteLength);return e.set(t),e}return t}function Nd(t){return t instanceof Uint8Array?t:new Uint8Array(t)}var Gl=class{constructor(e,n){this._fields=e,this._normalizer=n}findJsonName(e){if(!this.jsonNames){let n={};for(let r of this.list())n[r.jsonName]=n[r.name]=r;this.jsonNames=n}return this.jsonNames[e]}find(e){if(!this.numbers){let n={};for(let r of this.list())n[r.no]=r;this.numbers=n}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,n)=>e.no-n.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];let e=this.members,n;for(let r of this.list())r.oneof?r.oneof!==n&&(n=r.oneof,e.push(n)):e.push(r)}return this.members}};function Od(t,e){let n=cA(t);return e?n:Yq(Kq(n))}function uA(t){return Od(t,!1)}var gh=cA;function cA(t){let e=!1,n=[];for(let r=0;r`${t}$`,Kq=t=>Wq.has(t)?dA(t):t,Yq=t=>Gq.has(t)?dA(t):t;var Wl=class{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=uA(e)}addField(e){gt(e.oneof===this,`field ${e.name} not one of ${this.name}`),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let n=0;n0?`: ${a}`:""))}return n.writeUnknownFields&&this.writeUnknownFields(t,e),e}})}function pA(){return ph((t,e)=>function(r,o,i){if(r.kind=="map"){let s={};switch(r.V.kind){case"scalar":for(let[l,u]of Object.entries(o)){let c=e(r.V.T,u,!0);gt(c!==void 0),s[l.toString()]=c}break;case"message":for(let[l,u]of Object.entries(o))s[l.toString()]=u.toJson(i);break;case"enum":let a=r.V.T;for(let[l,u]of Object.entries(o)){gt(u===void 0||typeof u=="number");let c=t(a,u,!0,i.enumAsInteger);gt(c!==void 0),s[l.toString()]=c}break}return i.emitDefaultValues||Object.keys(s).length>0?s:void 0}else if(r.repeated){let s=[];switch(r.kind){case"scalar":for(let a=0;a0?s:void 0}else{if(o===void 0){if(!r.oneof&&!r.opt)throw"required field not set";return}switch(r.kind){case"scalar":return e(r.T,o,!0);case"enum":return t(r.T,o,!0,i.enumAsInteger);case"message":return sa(r.T,o).toJson(i)}}})}var U=nh("proto2",pA(),fA(),Object.assign(Object.assign({},hh()),{newFieldList(t){return new Gl(t,Qq)},initFields(t){for(let e of t.getType().fields.byMember()){let n=e.localName,r=t;if(e.repeated){r[n]=[];continue}switch(e.kind){case"oneof":r[n]={case:void 0};break;case"map":r[n]={};break;case"scalar":case"enum":case"message":break}}}}));function Qq(t){var e,n,r,o,i;let s=[],a;for(let l of typeof t=="function"?t():t){let u=l;if(u.localName=Od(l.name,l.oneof!==void 0),u.jsonName=(e=l.jsonName)!==null&&e!==void 0?e:gh(l.name),u.repeated=(n=l.repeated)!==null&&n!==void 0?n:!1,l.kind=="scalar"&&(u.L=(r=l.L)!==null&&r!==void 0?r:_r.BIGINT),l.oneof!==void 0){let c=typeof l.oneof=="string"?l.oneof:l.oneof.name;(!a||a.name!=c)&&(a=new Wl(c)),u.oneof=a,a.addField(u)}l.kind=="message"&&(u.delimited=(o=l.delimited)!==null&&o!==void 0?o:!1),u.packed=(i=l.packed)!==null&&i!==void 0?i:!1,s.push(u)}return s}var he;(function(t){t[t.Unary=0]="Unary",t[t.ServerStreaming=1]="ServerStreaming",t[t.ClientStreaming=2]="ClientStreaming",t[t.BiDiStreaming=3]="BiDiStreaming"})(he||(he={}));var Pd;(function(t){t[t.NoSideEffects=1]="NoSideEffects",t[t.Idempotent=2]="Idempotent"})(Pd||(Pd={}));var is;(function(t){t[t.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",t[t.EDITION_PROTO2=998]="EDITION_PROTO2",t[t.EDITION_PROTO3=999]="EDITION_PROTO3",t[t.EDITION_2023=1e3]="EDITION_2023",t[t.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",t[t.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",t[t.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",t[t.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",t[t.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY"})(is||(is={}));U.util.setEnumType(is,"google.protobuf.Edition",[{no:0,name:"EDITION_UNKNOWN"},{no:998,name:"EDITION_PROTO2"},{no:999,name:"EDITION_PROTO3"},{no:1e3,name:"EDITION_2023"},{no:1,name:"EDITION_1_TEST_ONLY"},{no:2,name:"EDITION_2_TEST_ONLY"},{no:99997,name:"EDITION_99997_TEST_ONLY"},{no:99998,name:"EDITION_99998_TEST_ONLY"},{no:99999,name:"EDITION_99999_TEST_ONLY"}]);var Md=class t extends I{constructor(e){super(),this.file=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Md.runtime=U;Md.typeName="google.protobuf.FileDescriptorSet";Md.fields=U.util.newFieldList(()=>[{no:1,name:"file",kind:"message",T:Kl,repeated:!0}]);var Kl=class t extends I{constructor(e){super(),this.dependency=[],this.publicDependency=[],this.weakDependency=[],this.messageType=[],this.enumType=[],this.service=[],this.extension=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Kl.runtime=U;Kl.typeName="google.protobuf.FileDescriptorProto";Kl.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"package",kind:"scalar",T:9,opt:!0},{no:3,name:"dependency",kind:"scalar",T:9,repeated:!0},{no:10,name:"public_dependency",kind:"scalar",T:5,repeated:!0},{no:11,name:"weak_dependency",kind:"scalar",T:5,repeated:!0},{no:4,name:"message_type",kind:"message",T:To,repeated:!0},{no:5,name:"enum_type",kind:"message",T:ci,repeated:!0},{no:6,name:"service",kind:"message",T:ou,repeated:!0},{no:7,name:"extension",kind:"message",T:ss,repeated:!0},{no:8,name:"options",kind:"message",T:su,opt:!0},{no:9,name:"source_code_info",kind:"message",T:yu,opt:!0},{no:12,name:"syntax",kind:"scalar",T:9,opt:!0},{no:14,name:"edition",kind:"enum",T:U.getEnumType(is),opt:!0}]);var To=class t extends I{constructor(e){super(),this.field=[],this.extension=[],this.nestedType=[],this.enumType=[],this.extensionRange=[],this.oneofDecl=[],this.reservedRange=[],this.reservedName=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};To.runtime=U;To.typeName="google.protobuf.DescriptorProto";To.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"field",kind:"message",T:ss,repeated:!0},{no:6,name:"extension",kind:"message",T:ss,repeated:!0},{no:3,name:"nested_type",kind:"message",T:To,repeated:!0},{no:4,name:"enum_type",kind:"message",T:ci,repeated:!0},{no:5,name:"extension_range",kind:"message",T:Yl,repeated:!0},{no:8,name:"oneof_decl",kind:"message",T:tu,repeated:!0},{no:7,name:"options",kind:"message",T:au,opt:!0},{no:9,name:"reserved_range",kind:"message",T:Xl,repeated:!0},{no:10,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var Yl=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Yl.runtime=U;Yl.typeName="google.protobuf.DescriptorProto.ExtensionRange";Yl.fields=U.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:Ql,opt:!0}]);var Xl=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Xl.runtime=U;Xl.typeName="google.protobuf.DescriptorProto.ReservedRange";Xl.fields=U.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var Ql=class t extends I{constructor(e){super(),this.uninterpretedOption=[],this.declaration=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Ql.runtime=U;Ql.typeName="google.protobuf.ExtensionRangeOptions";Ql.fields=U.util.newFieldList(()=>[{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0},{no:2,name:"declaration",kind:"message",T:Zl,repeated:!0},{no:50,name:"features",kind:"message",T:Jn,opt:!0},{no:3,name:"verification",kind:"enum",T:U.getEnumType(Ad),opt:!0,default:Ad.UNVERIFIED}]);var Ad;(function(t){t[t.DECLARATION=0]="DECLARATION",t[t.UNVERIFIED=1]="UNVERIFIED"})(Ad||(Ad={}));U.util.setEnumType(Ad,"google.protobuf.ExtensionRangeOptions.VerificationState",[{no:0,name:"DECLARATION"},{no:1,name:"UNVERIFIED"}]);var Zl=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Zl.runtime=U;Zl.typeName="google.protobuf.ExtensionRangeOptions.Declaration";Zl.fields=U.util.newFieldList(()=>[{no:1,name:"number",kind:"scalar",T:5,opt:!0},{no:2,name:"full_name",kind:"scalar",T:9,opt:!0},{no:3,name:"type",kind:"scalar",T:9,opt:!0},{no:5,name:"reserved",kind:"scalar",T:8,opt:!0},{no:6,name:"repeated",kind:"scalar",T:8,opt:!0}]);var ss=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};ss.runtime=U;ss.typeName="google.protobuf.FieldDescriptorProto";ss.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:3,name:"number",kind:"scalar",T:5,opt:!0},{no:4,name:"label",kind:"enum",T:U.getEnumType(eu),opt:!0},{no:5,name:"type",kind:"enum",T:U.getEnumType(yt),opt:!0},{no:6,name:"type_name",kind:"scalar",T:9,opt:!0},{no:2,name:"extendee",kind:"scalar",T:9,opt:!0},{no:7,name:"default_value",kind:"scalar",T:9,opt:!0},{no:9,name:"oneof_index",kind:"scalar",T:5,opt:!0},{no:10,name:"json_name",kind:"scalar",T:9,opt:!0},{no:8,name:"options",kind:"message",T:lu,opt:!0},{no:17,name:"proto3_optional",kind:"scalar",T:8,opt:!0}]);var yt;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.GROUP=10]="GROUP",t[t.MESSAGE=11]="MESSAGE",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.ENUM=14]="ENUM",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(yt||(yt={}));U.util.setEnumType(yt,"google.protobuf.FieldDescriptorProto.Type",[{no:1,name:"TYPE_DOUBLE"},{no:2,name:"TYPE_FLOAT"},{no:3,name:"TYPE_INT64"},{no:4,name:"TYPE_UINT64"},{no:5,name:"TYPE_INT32"},{no:6,name:"TYPE_FIXED64"},{no:7,name:"TYPE_FIXED32"},{no:8,name:"TYPE_BOOL"},{no:9,name:"TYPE_STRING"},{no:10,name:"TYPE_GROUP"},{no:11,name:"TYPE_MESSAGE"},{no:12,name:"TYPE_BYTES"},{no:13,name:"TYPE_UINT32"},{no:14,name:"TYPE_ENUM"},{no:15,name:"TYPE_SFIXED32"},{no:16,name:"TYPE_SFIXED64"},{no:17,name:"TYPE_SINT32"},{no:18,name:"TYPE_SINT64"}]);var eu;(function(t){t[t.OPTIONAL=1]="OPTIONAL",t[t.REPEATED=3]="REPEATED",t[t.REQUIRED=2]="REQUIRED"})(eu||(eu={}));U.util.setEnumType(eu,"google.protobuf.FieldDescriptorProto.Label",[{no:1,name:"LABEL_OPTIONAL"},{no:3,name:"LABEL_REPEATED"},{no:2,name:"LABEL_REQUIRED"}]);var tu=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};tu.runtime=U;tu.typeName="google.protobuf.OneofDescriptorProto";tu.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"options",kind:"message",T:cu,opt:!0}]);var ci=class t extends I{constructor(e){super(),this.value=[],this.reservedRange=[],this.reservedName=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};ci.runtime=U;ci.typeName="google.protobuf.EnumDescriptorProto";ci.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"value",kind:"message",T:ru,repeated:!0},{no:3,name:"options",kind:"message",T:du,opt:!0},{no:4,name:"reserved_range",kind:"message",T:nu,repeated:!0},{no:5,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var nu=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};nu.runtime=U;nu.typeName="google.protobuf.EnumDescriptorProto.EnumReservedRange";nu.fields=U.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var ru=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};ru.runtime=U;ru.typeName="google.protobuf.EnumValueDescriptorProto";ru.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"number",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:fu,opt:!0}]);var ou=class t extends I{constructor(e){super(),this.method=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};ou.runtime=U;ou.typeName="google.protobuf.ServiceDescriptorProto";ou.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"method",kind:"message",T:iu,repeated:!0},{no:3,name:"options",kind:"message",T:pu,opt:!0}]);var iu=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};iu.runtime=U;iu.typeName="google.protobuf.MethodDescriptorProto";iu.fields=U.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"input_type",kind:"scalar",T:9,opt:!0},{no:3,name:"output_type",kind:"scalar",T:9,opt:!0},{no:4,name:"options",kind:"message",T:mu,opt:!0},{no:5,name:"client_streaming",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"server_streaming",kind:"scalar",T:8,opt:!0,default:!1}]);var su=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};su.runtime=U;su.typeName="google.protobuf.FileOptions";su.fields=U.util.newFieldList(()=>[{no:1,name:"java_package",kind:"scalar",T:9,opt:!0},{no:8,name:"java_outer_classname",kind:"scalar",T:9,opt:!0},{no:10,name:"java_multiple_files",kind:"scalar",T:8,opt:!0,default:!1},{no:20,name:"java_generate_equals_and_hash",kind:"scalar",T:8,opt:!0},{no:27,name:"java_string_check_utf8",kind:"scalar",T:8,opt:!0,default:!1},{no:9,name:"optimize_for",kind:"enum",T:U.getEnumType(Id),opt:!0,default:Id.SPEED},{no:11,name:"go_package",kind:"scalar",T:9,opt:!0},{no:16,name:"cc_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"java_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:18,name:"py_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:42,name:"php_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:23,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:31,name:"cc_enable_arenas",kind:"scalar",T:8,opt:!0,default:!0},{no:36,name:"objc_class_prefix",kind:"scalar",T:9,opt:!0},{no:37,name:"csharp_namespace",kind:"scalar",T:9,opt:!0},{no:39,name:"swift_prefix",kind:"scalar",T:9,opt:!0},{no:40,name:"php_class_prefix",kind:"scalar",T:9,opt:!0},{no:41,name:"php_namespace",kind:"scalar",T:9,opt:!0},{no:44,name:"php_metadata_namespace",kind:"scalar",T:9,opt:!0},{no:45,name:"ruby_package",kind:"scalar",T:9,opt:!0},{no:50,name:"features",kind:"message",T:Jn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var Id;(function(t){t[t.SPEED=1]="SPEED",t[t.CODE_SIZE=2]="CODE_SIZE",t[t.LITE_RUNTIME=3]="LITE_RUNTIME"})(Id||(Id={}));U.util.setEnumType(Id,"google.protobuf.FileOptions.OptimizeMode",[{no:1,name:"SPEED"},{no:2,name:"CODE_SIZE"},{no:3,name:"LITE_RUNTIME"}]);var au=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};au.runtime=U;au.typeName="google.protobuf.MessageOptions";au.fields=U.util.newFieldList(()=>[{no:1,name:"message_set_wire_format",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"no_standard_descriptor_accessor",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:7,name:"map_entry",kind:"scalar",T:8,opt:!0},{no:11,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:12,name:"features",kind:"message",T:Jn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var lu=class t extends I{constructor(e){super(),this.targets=[],this.editionDefaults=[],this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};lu.runtime=U;lu.typeName="google.protobuf.FieldOptions";lu.fields=U.util.newFieldList(()=>[{no:1,name:"ctype",kind:"enum",T:U.getEnumType(Ld),opt:!0,default:Ld.STRING},{no:2,name:"packed",kind:"scalar",T:8,opt:!0},{no:6,name:"jstype",kind:"enum",T:U.getEnumType(Dd),opt:!0,default:Dd.JS_NORMAL},{no:5,name:"lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:15,name:"unverified_lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:10,name:"weak",kind:"scalar",T:8,opt:!0,default:!1},{no:16,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"retention",kind:"enum",T:U.getEnumType(yh),opt:!0},{no:19,name:"targets",kind:"enum",T:U.getEnumType(vh),repeated:!0},{no:20,name:"edition_defaults",kind:"message",T:uu,repeated:!0},{no:21,name:"features",kind:"message",T:Jn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var Ld;(function(t){t[t.STRING=0]="STRING",t[t.CORD=1]="CORD",t[t.STRING_PIECE=2]="STRING_PIECE"})(Ld||(Ld={}));U.util.setEnumType(Ld,"google.protobuf.FieldOptions.CType",[{no:0,name:"STRING"},{no:1,name:"CORD"},{no:2,name:"STRING_PIECE"}]);var Dd;(function(t){t[t.JS_NORMAL=0]="JS_NORMAL",t[t.JS_STRING=1]="JS_STRING",t[t.JS_NUMBER=2]="JS_NUMBER"})(Dd||(Dd={}));U.util.setEnumType(Dd,"google.protobuf.FieldOptions.JSType",[{no:0,name:"JS_NORMAL"},{no:1,name:"JS_STRING"},{no:2,name:"JS_NUMBER"}]);var yh;(function(t){t[t.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",t[t.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",t[t.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(yh||(yh={}));U.util.setEnumType(yh,"google.protobuf.FieldOptions.OptionRetention",[{no:0,name:"RETENTION_UNKNOWN"},{no:1,name:"RETENTION_RUNTIME"},{no:2,name:"RETENTION_SOURCE"}]);var vh;(function(t){t[t.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",t[t.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",t[t.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",t[t.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",t[t.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",t[t.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",t[t.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",t[t.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",t[t.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",t[t.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(vh||(vh={}));U.util.setEnumType(vh,"google.protobuf.FieldOptions.OptionTargetType",[{no:0,name:"TARGET_TYPE_UNKNOWN"},{no:1,name:"TARGET_TYPE_FILE"},{no:2,name:"TARGET_TYPE_EXTENSION_RANGE"},{no:3,name:"TARGET_TYPE_MESSAGE"},{no:4,name:"TARGET_TYPE_FIELD"},{no:5,name:"TARGET_TYPE_ONEOF"},{no:6,name:"TARGET_TYPE_ENUM"},{no:7,name:"TARGET_TYPE_ENUM_ENTRY"},{no:8,name:"TARGET_TYPE_SERVICE"},{no:9,name:"TARGET_TYPE_METHOD"}]);var uu=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};uu.runtime=U;uu.typeName="google.protobuf.FieldOptions.EditionDefault";uu.fields=U.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:U.getEnumType(is),opt:!0},{no:2,name:"value",kind:"scalar",T:9,opt:!0}]);var cu=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};cu.runtime=U;cu.typeName="google.protobuf.OneofOptions";cu.fields=U.util.newFieldList(()=>[{no:1,name:"features",kind:"message",T:Jn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var du=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};du.runtime=U;du.typeName="google.protobuf.EnumOptions";du.fields=U.util.newFieldList(()=>[{no:2,name:"allow_alias",kind:"scalar",T:8,opt:!0},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:7,name:"features",kind:"message",T:Jn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var fu=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};fu.runtime=U;fu.typeName="google.protobuf.EnumValueOptions";fu.fields=U.util.newFieldList(()=>[{no:1,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"features",kind:"message",T:Jn,opt:!0},{no:3,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var pu=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};pu.runtime=U;pu.typeName="google.protobuf.ServiceOptions";pu.fields=U.util.newFieldList(()=>[{no:34,name:"features",kind:"message",T:Jn,opt:!0},{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var mu=class t extends I{constructor(e){super(),this.uninterpretedOption=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};mu.runtime=U;mu.typeName="google.protobuf.MethodOptions";mu.fields=U.util.newFieldList(()=>[{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:34,name:"idempotency_level",kind:"enum",T:U.getEnumType(Fd),opt:!0,default:Fd.IDEMPOTENCY_UNKNOWN},{no:35,name:"features",kind:"message",T:Jn,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:sr,repeated:!0}]);var Fd;(function(t){t[t.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",t[t.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",t[t.IDEMPOTENT=2]="IDEMPOTENT"})(Fd||(Fd={}));U.util.setEnumType(Fd,"google.protobuf.MethodOptions.IdempotencyLevel",[{no:0,name:"IDEMPOTENCY_UNKNOWN"},{no:1,name:"NO_SIDE_EFFECTS"},{no:2,name:"IDEMPOTENT"}]);var sr=class t extends I{constructor(e){super(),this.name=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};sr.runtime=U;sr.typeName="google.protobuf.UninterpretedOption";sr.fields=U.util.newFieldList(()=>[{no:2,name:"name",kind:"message",T:hu,repeated:!0},{no:3,name:"identifier_value",kind:"scalar",T:9,opt:!0},{no:4,name:"positive_int_value",kind:"scalar",T:4,opt:!0},{no:5,name:"negative_int_value",kind:"scalar",T:3,opt:!0},{no:6,name:"double_value",kind:"scalar",T:1,opt:!0},{no:7,name:"string_value",kind:"scalar",T:12,opt:!0},{no:8,name:"aggregate_value",kind:"scalar",T:9,opt:!0}]);var hu=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};hu.runtime=U;hu.typeName="google.protobuf.UninterpretedOption.NamePart";hu.fields=U.util.newFieldList(()=>[{no:1,name:"name_part",kind:"scalar",T:9},{no:2,name:"is_extension",kind:"scalar",T:8}]);var Jn=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Jn.runtime=U;Jn.typeName="google.protobuf.FeatureSet";Jn.fields=U.util.newFieldList(()=>[{no:1,name:"field_presence",kind:"enum",T:U.getEnumType(wh),opt:!0},{no:2,name:"enum_type",kind:"enum",T:U.getEnumType(xh),opt:!0},{no:3,name:"repeated_field_encoding",kind:"enum",T:U.getEnumType(bh),opt:!0},{no:4,name:"utf8_validation",kind:"enum",T:U.getEnumType(Sh),opt:!0},{no:5,name:"message_encoding",kind:"enum",T:U.getEnumType(kh),opt:!0},{no:6,name:"json_format",kind:"enum",T:U.getEnumType(Eh),opt:!0}]);var wh;(function(t){t[t.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",t[t.EXPLICIT=1]="EXPLICIT",t[t.IMPLICIT=2]="IMPLICIT",t[t.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(wh||(wh={}));U.util.setEnumType(wh,"google.protobuf.FeatureSet.FieldPresence",[{no:0,name:"FIELD_PRESENCE_UNKNOWN"},{no:1,name:"EXPLICIT"},{no:2,name:"IMPLICIT"},{no:3,name:"LEGACY_REQUIRED"}]);var xh;(function(t){t[t.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",t[t.OPEN=1]="OPEN",t[t.CLOSED=2]="CLOSED"})(xh||(xh={}));U.util.setEnumType(xh,"google.protobuf.FeatureSet.EnumType",[{no:0,name:"ENUM_TYPE_UNKNOWN"},{no:1,name:"OPEN"},{no:2,name:"CLOSED"}]);var bh;(function(t){t[t.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",t[t.PACKED=1]="PACKED",t[t.EXPANDED=2]="EXPANDED"})(bh||(bh={}));U.util.setEnumType(bh,"google.protobuf.FeatureSet.RepeatedFieldEncoding",[{no:0,name:"REPEATED_FIELD_ENCODING_UNKNOWN"},{no:1,name:"PACKED"},{no:2,name:"EXPANDED"}]);var Sh;(function(t){t[t.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",t[t.NONE=1]="NONE",t[t.VERIFY=2]="VERIFY"})(Sh||(Sh={}));U.util.setEnumType(Sh,"google.protobuf.FeatureSet.Utf8Validation",[{no:0,name:"UTF8_VALIDATION_UNKNOWN"},{no:1,name:"NONE"},{no:2,name:"VERIFY"}]);var kh;(function(t){t[t.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",t[t.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",t[t.DELIMITED=2]="DELIMITED"})(kh||(kh={}));U.util.setEnumType(kh,"google.protobuf.FeatureSet.MessageEncoding",[{no:0,name:"MESSAGE_ENCODING_UNKNOWN"},{no:1,name:"LENGTH_PREFIXED"},{no:2,name:"DELIMITED"}]);var Eh;(function(t){t[t.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",t[t.ALLOW=1]="ALLOW",t[t.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(Eh||(Eh={}));U.util.setEnumType(Eh,"google.protobuf.FeatureSet.JsonFormat",[{no:0,name:"JSON_FORMAT_UNKNOWN"},{no:1,name:"ALLOW"},{no:2,name:"LEGACY_BEST_EFFORT"}]);var Bd=class t extends I{constructor(e){super(),this.defaults=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};Bd.runtime=U;Bd.typeName="google.protobuf.FeatureSetDefaults";Bd.fields=U.util.newFieldList(()=>[{no:1,name:"defaults",kind:"message",T:gu,repeated:!0},{no:4,name:"minimum_edition",kind:"enum",T:U.getEnumType(is),opt:!0},{no:5,name:"maximum_edition",kind:"enum",T:U.getEnumType(is),opt:!0}]);var gu=class t extends I{constructor(e){super(),U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};gu.runtime=U;gu.typeName="google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault";gu.fields=U.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:U.getEnumType(is),opt:!0},{no:2,name:"features",kind:"message",T:Jn,opt:!0}]);var yu=class t extends I{constructor(e){super(),this.location=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};yu.runtime=U;yu.typeName="google.protobuf.SourceCodeInfo";yu.fields=U.util.newFieldList(()=>[{no:1,name:"location",kind:"message",T:vu,repeated:!0}]);var vu=class t extends I{constructor(e){super(),this.path=[],this.span=[],this.leadingDetachedComments=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};vu.runtime=U;vu.typeName="google.protobuf.SourceCodeInfo.Location";vu.fields=U.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"span",kind:"scalar",T:5,repeated:!0,packed:!0},{no:3,name:"leading_comments",kind:"scalar",T:9,opt:!0},{no:4,name:"trailing_comments",kind:"scalar",T:9,opt:!0},{no:6,name:"leading_detached_comments",kind:"scalar",T:9,repeated:!0}]);var _d=class t extends I{constructor(e){super(),this.annotation=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};_d.runtime=U;_d.typeName="google.protobuf.GeneratedCodeInfo";_d.fields=U.util.newFieldList(()=>[{no:1,name:"annotation",kind:"message",T:wu,repeated:!0}]);var wu=class t extends I{constructor(e){super(),this.path=[],U.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return U.util.equals(t,e,n)}};wu.runtime=U;wu.typeName="google.protobuf.GeneratedCodeInfo.Annotation";wu.fields=U.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"source_file",kind:"scalar",T:9,opt:!0},{no:3,name:"begin",kind:"scalar",T:5,opt:!0},{no:4,name:"end",kind:"scalar",T:5,opt:!0},{no:5,name:"semantic",kind:"enum",T:U.getEnumType(Rh),opt:!0}]);var Rh;(function(t){t[t.NONE=0]="NONE",t[t.SET=1]="SET",t[t.ALIAS=2]="ALIAS"})(Rh||(Rh={}));U.util.setEnumType(Rh,"google.protobuf.GeneratedCodeInfo.Annotation.Semantic",[{no:0,name:"NONE"},{no:1,name:"SET"},{no:2,name:"ALIAS"}]);var jt=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};jt.runtime=h;jt.typeName="google.protobuf.Empty";jt.fields=h.util.newFieldList(()=>[]);var Ch=class t extends I{secret="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.VerifyUserRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Th=class t extends I{secret="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.GroupInfoRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Nh=class t extends I{groupId="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.GroupID";static fields=h.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Oh=class t extends I{contentId="";groupId="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.ShareRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Ud=class t extends I{secret="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.GroupInvite";static fields=h.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Ph=class t extends I{groups=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.Groups";static fields=h.util.newFieldList(()=>[{no:1,name:"groups",kind:"message",T:di,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},mA=class t extends I{text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.AnalyzeConversationRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},No=class t extends I{email="";password="";username="";config;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.User";static fields=h.util.newFieldList(()=>[{no:1,name:"email",kind:"scalar",T:9},{no:2,name:"password",kind:"scalar",T:9},{no:3,name:"username",kind:"scalar",T:9},{no:4,name:"config",kind:"message",T:Jd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},di=class t extends I{id="";name="";users=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.Group";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"users",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Jd=class t extends I{domainWhitelist=[];offlineVoice=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.Config";static fields=h.util.newFieldList(()=>[{no:1,name:"domain_whitelist",kind:"scalar",T:9,repeated:!0},{no:2,name:"offline_voice",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Mh=class t extends I{user;success=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="user.LoginResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"user",kind:"message",T:No},{no:2,name:"success",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var Ah=class t extends I{title="";createTime=0;updateTime=0;mapping={};conversationId="";conversationTemplateId="";currentNode="";gizmoId="";isArchived=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Conversation";static fields=h.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"create_time",kind:"scalar",T:1},{no:3,name:"update_time",kind:"scalar",T:1},{no:4,name:"mapping",kind:"map",K:9,V:{kind:"message",T:aS}},{no:5,name:"conversation_id",kind:"scalar",T:9},{no:6,name:"conversation_template_id",kind:"scalar",T:9},{no:7,name:"current_node",kind:"scalar",T:9},{no:8,name:"gizmo_id",kind:"scalar",T:9},{no:9,name:"is_archived",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},aS=class t extends I{id="";message;parent="";children=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Node";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"message",kind:"message",T:lS},{no:3,name:"parent",kind:"scalar",T:9},{no:4,name:"children",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},lS=class t extends I{id="";author;createTime=0;content;status="";endTurn=!1;weight=0;metadata;recipient="";updateTime=0;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Message";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"author",kind:"message",T:cS},{no:3,name:"create_time",kind:"scalar",T:1},{no:4,name:"content",kind:"message",T:dS},{no:5,name:"status",kind:"scalar",T:9},{no:6,name:"end_turn",kind:"scalar",T:8},{no:7,name:"weight",kind:"scalar",T:5},{no:8,name:"metadata",kind:"message",T:uS},{no:9,name:"recipient",kind:"scalar",T:9},{no:10,name:"update_time",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},uS=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.MessageMetadata";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},cS=class t extends I{role="";metadata;name="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Author";static fields=h.util.newFieldList(()=>[{no:1,name:"role",kind:"scalar",T:9},{no:2,name:"metadata",kind:"message",T:hS},{no:3,name:"name",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},dS=class t extends I{contentType="";textParts=[];imageParts=[];text="";parts=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Content";static fields=h.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"text_parts",kind:"scalar",T:9,repeated:!0},{no:3,name:"image_parts",kind:"message",T:fS,repeated:!0},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"parts",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},fS=class t extends I{contentType="";assetPointer="";sizeBytes=Je.zero;width=0;height=0;fovea=0;metadata;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.ImageAsset";static fields=h.util.newFieldList(()=>[{no:1,name:"content_type",kind:"scalar",T:9},{no:2,name:"asset_pointer",kind:"scalar",T:9},{no:3,name:"size_bytes",kind:"scalar",T:3},{no:4,name:"width",kind:"scalar",T:5},{no:5,name:"height",kind:"scalar",T:5},{no:6,name:"fovea",kind:"scalar",T:5},{no:7,name:"metadata",kind:"message",T:pS}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},pS=class t extends I{dalle;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Metadata";static fields=h.util.newFieldList(()=>[{no:1,name:"dalle",kind:"message",T:mS}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},mS=class t extends I{genId="";prompt="";seed=0;serializationTitle="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.DalleMetadata";static fields=h.util.newFieldList(()=>[{no:1,name:"gen_id",kind:"scalar",T:9},{no:2,name:"prompt",kind:"scalar",T:9},{no:3,name:"seed",kind:"scalar",T:13},{no:4,name:"serialization_title",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},hS=class t extends I{attachments=[];timestamp="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.AuthorMetadata";static fields=h.util.newFieldList(()=>[{no:1,name:"attachments",kind:"message",T:gS,repeated:!0},{no:2,name:"timestamp_",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},gS=class t extends I{id="";name="";mimeType="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chatgpt.Attachment";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"mimeType",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var Ih=class t extends I{nodes=[];edges=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="browser.History";static fields=h.util.newFieldList(()=>[{no:1,name:"nodes",kind:"message",T:yS,repeated:!0},{no:2,name:"edges",kind:"message",T:vS,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},yS=class t extends I{id="";url="";title="";open=0;close=0;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="browser.Node";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"open",kind:"scalar",T:1},{no:5,name:"close",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},vS=class t extends I{from="";to="";tab="";visitTime=0;visitDuration=0;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="browser.Edge";static fields=h.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9},{no:3,name:"tab",kind:"scalar",T:9},{no:4,name:"visit_time",kind:"scalar",T:1},{no:5,name:"visit_duration",kind:"scalar",T:1}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var Lh=class t extends I{publishDir="";baseUrl="";title="";paginate=0;theme=[];enableInlineShortcodes=!1;enableRobotsTxt=!1;buildDrafts=!1;buildFuture=!1;buildExpired=!1;enableEmoji=!1;pygmentsUseClasses=!1;mainSections=[];minify;languages={};outputs={};params;markup;services;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.HugoConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"publish_dir",kind:"scalar",T:9},{no:2,name:"base_url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"paginate",kind:"scalar",T:5},{no:5,name:"theme",kind:"scalar",T:9,repeated:!0},{no:6,name:"enable_inline_shortcodes",kind:"scalar",T:8},{no:7,name:"enable_robots_txt",kind:"scalar",T:8},{no:8,name:"build_drafts",kind:"scalar",T:8},{no:9,name:"build_future",kind:"scalar",T:8},{no:10,name:"build_expired",kind:"scalar",T:8},{no:11,name:"enable_emoji",kind:"scalar",T:8},{no:12,name:"pygments_use_classes",kind:"scalar",T:8},{no:13,name:"main_sections",kind:"scalar",T:9,repeated:!0},{no:14,name:"minify",kind:"message",T:wS},{no:15,name:"languages",kind:"map",K:9,V:{kind:"message",T:xS}},{no:16,name:"outputs",kind:"map",K:9,V:{kind:"message",T:NS}},{no:17,name:"params",kind:"message",T:PS},{no:18,name:"markup",kind:"message",T:kS},{no:19,name:"services",kind:"message",T:TS}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},wS=class t extends I{disableXml=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.MinifyConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"disable_xml",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},xS=class t extends I{languageName="";weight=0;title="";taxonomies={};menu={};params={};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.LanguageConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"language_name",kind:"scalar",T:9},{no:2,name:"weight",kind:"scalar",T:5},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"taxonomies",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"menu",kind:"map",K:9,V:{kind:"message",T:OS}},{no:6,name:"params",kind:"map",K:9,V:{kind:"scalar",T:9}}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},aa=class t extends I{name="";url="";weight=0;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.MenuItem";static fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"weight",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},bS=class t extends I{url="";text="";appendFilePath=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.EditPostConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"append_file_path",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},SS=class t extends I{disableHljs=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.AssetsConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"disable_hljs",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},kS=class t extends I{goldmark;highlight;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.MarkupConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"goldmark",kind:"message",T:ES},{no:2,name:"highlight",kind:"message",T:CS}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ES=class t extends I{renderer;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.GoldmarkConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"renderer",kind:"message",T:RS}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},RS=class t extends I{unsafe=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.RendererConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"unsafe",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},CS=class t extends I{noClasses=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.HighlightConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"no_classes",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},TS=class t extends I{instagram;twitter;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ServicesConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"instagram",kind:"message",T:Dh},{no:2,name:"twitter",kind:"message",T:Dh}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Dh=class t extends I{disableInlineCss=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ServiceConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"disable_inline_css",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},NS=class t extends I{values=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.RepeatedString";static fields=h.util.newFieldList(()=>[{no:1,name:"values",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},OS=class t extends I{items=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.RepeatedMenuItem";static fields=h.util.newFieldList(()=>[{no:1,name:"items",kind:"message",T:aa,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},PS=class t extends I{env="";description="";author="";defaultTheme="";showShareButtons=!1;showReadingTime=!1;displayFullLangName=!1;showPostNavLinks=!1;showBreadCrumbs=!1;showCodeCopyButtons=!1;showRssButtonInSectionTermList=!1;showAllPagesInArchive=!1;showPageNums=!1;showToc=!1;images=[];profileMode;homeInfoParams;socialIcons=[];editPost;assets;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ParamsConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"env",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"author",kind:"scalar",T:9},{no:4,name:"default_theme",kind:"scalar",T:9},{no:5,name:"show_share_buttons",kind:"scalar",T:8},{no:6,name:"show_reading_time",kind:"scalar",T:8},{no:7,name:"display_full_lang_name",kind:"scalar",T:8},{no:8,name:"show_post_nav_links",kind:"scalar",T:8},{no:9,name:"show_bread_crumbs",kind:"scalar",T:8},{no:10,name:"show_code_copy_buttons",kind:"scalar",T:8},{no:11,name:"show_rss_button_in_section_term_list",kind:"scalar",T:8},{no:12,name:"show_all_pages_in_archive",kind:"scalar",T:8},{no:13,name:"show_page_nums",kind:"scalar",T:8},{no:14,name:"show_toc",kind:"scalar",T:8},{no:15,name:"images",kind:"scalar",T:9,repeated:!0},{no:16,name:"profile_mode",kind:"message",T:MS},{no:17,name:"home_info_params",kind:"message",T:IS},{no:18,name:"social_icons",kind:"message",T:LS,repeated:!0},{no:19,name:"edit_post",kind:"message",T:bS},{no:20,name:"assets",kind:"message",T:SS}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},MS=class t extends I{enabled=!1;title="";imageUrl="";imageTitle="";buttons=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ProfileModeConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"image_url",kind:"scalar",T:9},{no:4,name:"image_title",kind:"scalar",T:9},{no:5,name:"buttons",kind:"message",T:AS,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},AS=class t extends I{name="";url="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ButtonConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},IS=class t extends I{title="";content="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.HomeInfoParamsConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"content",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},LS=class t extends I{name="";title="";url="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.SocialIconConfig";static fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var Fh=class t extends I{prompt="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.InferRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Bh=class t extends I{text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.InferResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},_h=class t extends I{content;site;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.TypesResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Yh},{no:2,name:"site",kind:"message",T:Yh}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Uh=class t extends I{contentTypes=[];tags=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.GetSourcesRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"content_types",kind:"scalar",T:9,repeated:!0},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Jh=class t extends I{captureDevice=0;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.VoiceInputRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},zh=class t extends I{segment;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.VoiceInputResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:xu}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Vh=class t extends I{parent="";children=[];connect=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.RelateRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"parent",kind:"scalar",T:9},{no:2,name:"children",kind:"scalar",T:9,repeated:!0},{no:3,name:"connect",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},qh=class t extends I{sources=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Sources";static fields=h.util.newFieldList(()=>[{no:1,name:"sources",kind:"message",T:DS,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},DS=class t extends I{source;displayContent=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.EnumeratedSource";static fields=h.util.newFieldList(()=>[{no:1,name:"source",kind:"message",T:BS},{no:2,name:"display_content",kind:"message",T:FS,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},FS=class t extends I{title="";description="";type="";content;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.DisplayContent";static fields=h.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"type",kind:"scalar",T:9},{no:4,name:"content",kind:"message",T:Qe}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},BS=class t extends I{name="";type={case:void 0};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Source";static fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"server",kind:"message",T:_S,oneof:"type"},{no:3,name:"folder",kind:"message",T:US,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},_S=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Server";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},US=class t extends I{path="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Folder";static fields=h.util.newFieldList(()=>[{no:2,name:"path",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},jh=class t extends I{contentId="";tags=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.SetTagsRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Hh=class t extends I{groupId="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.TagRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},$h=class t extends I{tags=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Tags";static fields=h.util.newFieldList(()=>[{no:1,name:"tags",kind:"message",T:Gh,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Gh=class t extends I{name="";subTags=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Tag";static fields=h.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"sub_tags",kind:"message",T:t,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},as=class t extends I{contentIds=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ContentIDs";static fields=h.util.newFieldList(()=>[{no:1,name:"content_ids",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},zd=class t extends I{content;tags=[];related=[];parents=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Contents";static fields=h.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Qe},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0},{no:3,name:"related",kind:"message",T:Qe,repeated:!0},{no:4,name:"parents",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Wh=class t extends I{query="";page=0;contentID="";groupID="";tags=[];contentTypes=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Query";static fields=h.util.newFieldList(()=>[{no:1,name:"query",kind:"scalar",T:9},{no:2,name:"page",kind:"scalar",T:13},{no:3,name:"contentID",kind:"scalar",T:9},{no:4,name:"groupID",kind:"scalar",T:9},{no:5,name:"tags",kind:"scalar",T:9,repeated:!0},{no:6,name:"content_types",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Kh=class t extends I{storedContent=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Results";static fields=h.util.newFieldList(()=>[{no:1,name:"storedContent",kind:"message",T:JS,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},JS=class t extends I{content;id="";related=[];title="";description="";image="";url="";user;tags=[];preview="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.StoredContent";static fields=h.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Qe},{no:2,name:"id",kind:"scalar",T:9},{no:3,name:"related",kind:"message",T:Qe,repeated:!0},{no:4,name:"title",kind:"scalar",T:9},{no:5,name:"description",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"url",kind:"scalar",T:9},{no:9,name:"user",kind:"message",T:No},{no:10,name:"tags",kind:"message",T:Gh,repeated:!0},{no:11,name:"preview",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},hA=class t extends I{from="";to="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Edge";static fields=h.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Qe=class t extends I{tags=[];createdAt="";uri="";id="";type={case:void 0};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Content";static fields=h.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"created_at",kind:"scalar",T:9},{no:3,name:"uri",kind:"scalar",T:9},{no:4,name:"id",kind:"scalar",T:9},{no:6,name:"data",kind:"message",T:Vd,oneof:"type"},{no:7,name:"normalized",kind:"message",T:zS,oneof:"type"},{no:8,name:"transformed",kind:"message",T:VS,oneof:"type"},{no:9,name:"post",kind:"message",T:la,oneof:"type"},{no:10,name:"site",kind:"message",T:ls,oneof:"type"},{no:11,name:"chatgpt_conversation",kind:"message",T:Ah,oneof:"type"},{no:12,name:"browser_history",kind:"message",T:Ih,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},la=class t extends I{title="";summary="";content="";authors=[];draft=!1;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Post";static fields=h.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"content",kind:"scalar",T:9},{no:4,name:"authors",kind:"scalar",T:9,repeated:!0},{no:6,name:"draft",kind:"scalar",T:8}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},gA=class t extends I{url="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.GitRepo";static fields=h.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Vd=class t extends I{type={case:void 0};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Data";static fields=h.util.newFieldList(()=>[{no:4,name:"text",kind:"message",T:KS,oneof:"type"},{no:5,name:"file",kind:"message",T:WS,oneof:"type"},{no:6,name:"url",kind:"message",T:YS,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},zS=class t extends I{type={case:void 0};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Normalized";static fields=h.util.newFieldList(()=>[{no:3,name:"article",kind:"message",T:qS,oneof:"type"},{no:4,name:"html",kind:"message",T:jS,oneof:"type"},{no:6,name:"transcript",kind:"message",T:QS,oneof:"type"},{no:7,name:"readme",kind:"message",T:HS,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},VS=class t extends I{type={case:void 0};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Transformed";static fields=h.util.newFieldList(()=>[{no:1,name:"summary",kind:"message",T:$S,oneof:"type"},{no:2,name:"categories",kind:"message",T:GS,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},qS=class t extends I{title="";author="";length=0;excerpt="";siteName="";image="";favicon="";text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Article";static fields=h.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"author",kind:"scalar",T:9},{no:3,name:"length",kind:"scalar",T:5},{no:4,name:"excerpt",kind:"scalar",T:9},{no:5,name:"site_name",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"favicon",kind:"scalar",T:9},{no:8,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},jS=class t extends I{html="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.HTML";static fields=h.util.newFieldList(()=>[{no:1,name:"html",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},HS=class t extends I{data="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.ReadMe";static fields=h.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},$S=class t extends I{summary="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Summary";static fields=h.util.newFieldList(()=>[{no:1,name:"summary",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},GS=class t extends I{categories=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Categories";static fields=h.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},WS=class t extends I{file="";data=new Uint8Array(0);url="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.File";static fields=h.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9},{no:2,name:"data",kind:"scalar",T:12},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},KS=class t extends I{data="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Text";static fields=h.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},YS=class t extends I{url="";crawl=!1;title="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.URL";static fields=h.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"crawl",kind:"scalar",T:8},{no:3,name:"title",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},XS=class t extends I{id=0;startTime=Je.zero;endTime=Je.zero;text="";p="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Token";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},xu=class t extends I{num=0;tokens=[];text="";startTime=Je.zero;endTime=Je.zero;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Segment";static fields=h.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:XS,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},QS=class t extends I{id="";name="";segments=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Transcript";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:xu,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Yh=class t extends I{msg;descLookup={};enumLookup={};packageName="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.GRPCTypeInfo";static fields=h.util.newFieldList(()=>[{no:1,name:"msg",kind:"message",T:To},{no:3,name:"desc_lookup",kind:"map",K:9,V:{kind:"message",T:To}},{no:4,name:"enum_lookup",kind:"map",K:9,V:{kind:"message",T:ci}},{no:6,name:"package_name",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ls=class t extends I{sections=[];hugoConfig;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Site";static fields=h.util.newFieldList(()=>[{no:1,name:"sections",kind:"message",T:fi,repeated:!0},{no:2,name:"hugo_config",kind:"message",T:Lh}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},fi=class t extends I{tags=[];menu;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="content.Section";static fields=h.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"menu",kind:"message",T:aa}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var Xh=class t extends I{text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.AnalyzeConversationRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Qh=class t extends I{prompt="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GenerateImagesRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Zh=class t extends I{images=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GenerateImagesResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"images",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},eg=class t extends I{id="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.DeleteSessionRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},bu=class t extends I{id="";text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.Prompt";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},tg=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GetPromptsRequest";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ng=class t extends I{prompts=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GetPromptsResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"prompts",kind:"message",T:bu,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},rg=class t extends I{prompt="";text=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.InferRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},og=class t extends I{text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.InferResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ig=class t extends I{content;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.UploadContentRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:Qe}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},yA=class t extends I{id="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.UploadContentResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},sg=class t extends I{id="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GetSessionRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ag=class t extends I{session;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GetSessionResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"session",kind:"message",T:cg}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},lg=class t extends I{page=Je.zero;limit=Je.zero;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GetSessionsRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"page",kind:"scalar",T:4},{no:2,name:"limit",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ug=class t extends I{sessions=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.GetSessionsResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"sessions",kind:"message",T:cg,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ZS=class t extends I{id=0;startTime=Je.zero;endTime=Je.zero;text="";p="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.Token";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},qd=class t extends I{num=0;tokens=[];text="";startTime=Je.zero;endTime=Je.zero;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.Segment";static fields=h.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:ZS,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},cg=class t extends I{id="";name="";segments=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.Session";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:qd,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},vA=class t extends I{filePath="";model="";language="";translate=!1;offset=Je.zero;duration=Je.zero;threads=0;speedup=!1;maxLen=0;maxTokens=0;wordThreshold=0;tokens=!1;colorize=!1;out="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.TranscriptionRequest";static fields=h.util.newFieldList(()=>[{no:14,name:"file_path",kind:"scalar",T:9},{no:1,name:"model",kind:"scalar",T:9},{no:2,name:"language",kind:"scalar",T:9},{no:3,name:"translate",kind:"scalar",T:8},{no:4,name:"offset",kind:"scalar",T:3},{no:5,name:"duration",kind:"scalar",T:3},{no:6,name:"threads",kind:"scalar",T:13},{no:7,name:"speedup",kind:"scalar",T:8},{no:8,name:"max_len",kind:"scalar",T:13},{no:9,name:"max_tokens",kind:"scalar",T:13},{no:10,name:"word_threshold",kind:"scalar",T:1},{no:11,name:"tokens",kind:"scalar",T:8},{no:12,name:"colorize",kind:"scalar",T:8},{no:13,name:"out",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},wA=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.RegisterFlags";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},xA=class t extends I{text="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.OCRText";static fields=h.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},bA=class t extends I{image=new Uint8Array(0);constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.Image";static fields=h.util.newFieldList(()=>[{no:1,name:"image",kind:"scalar",T:12}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},dg=class t extends I{from="";to="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.ConvertFileRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},fg=class t extends I{captureDevice=0;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.ChatRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},jd=class t extends I{segment;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.ChatResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:qd}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},pg=class t extends I{id="";file="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.YouTubeVideo";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"file",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},Hd=class t extends I{file="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.FilePath";static fields=h.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},mg=class t extends I{title="";filePath;transcript=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="protoflow.YouTubeVideoResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"file_path",kind:"message",T:Hd},{no:3,name:"transcript",kind:"message",T:xu,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var hg=class t extends I{phoneNumbers=[];summary="";questions=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="ai.AnalyzeConversationResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"phone_numbers",kind:"scalar",T:9,repeated:!0},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"questions",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},SA=class t extends I{categories=[];constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="ai.AnalyzeContent";static fields=h.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var kA={typeName:"protoflow.ProtoflowService",methods:{downloadYouTubeVideo:{name:"DownloadYouTubeVideo",I:pg,O:mg,kind:he.Unary},getSessions:{name:"GetSessions",I:lg,O:ug,kind:he.Unary},getSession:{name:"GetSession",I:sg,O:ag,kind:he.Unary},deleteSession:{name:"DeleteSession",I:eg,O:jt,kind:he.Unary},getPrompts:{name:"GetPrompts",I:tg,O:ng,kind:he.Unary},newPrompt:{name:"NewPrompt",I:bu,O:bu,kind:he.Unary},uploadContent:{name:"UploadContent",I:ig,O:jd,kind:he.ServerStreaming},infer:{name:"Infer",I:rg,O:og,kind:he.ServerStreaming},chat:{name:"Chat",I:fg,O:jd,kind:he.ServerStreaming},convertFile:{name:"ConvertFile",I:dg,O:Hd,kind:he.Unary},generateImages:{name:"GenerateImages",I:Qh,O:Zh,kind:he.Unary},analyzeConversation:{name:"AnalyzeConversation",I:Xh,O:hg,kind:he.Unary}}};var EA={typeName:"content.ContentService",methods:{save:{name:"Save",I:zd,O:as,kind:he.Unary},search:{name:"Search",I:Wh,O:Kh,kind:he.Unary},relate:{name:"Relate",I:Vh,O:jt,kind:he.Unary},analyze:{name:"Analyze",I:Qe,O:zd,kind:he.Unary},delete:{name:"Delete",I:as,O:as,kind:he.Unary},getTags:{name:"GetTags",I:Hh,O:$h,kind:he.Unary},setTags:{name:"SetTags",I:jh,O:jt,kind:he.Unary},publish:{name:"Publish",I:as,O:as,kind:he.Unary},getSources:{name:"GetSources",I:Uh,O:qh,kind:he.Unary},infer:{name:"Infer",I:Fh,O:Bh,kind:he.ServerStreaming},types:{name:"Types",I:jt,O:_h,kind:he.Unary},voiceInput:{name:"VoiceInput",I:Jh,O:zh,kind:he.ServerStreaming}}};var RA={typeName:"user.UserService",methods:{register:{name:"Register",I:No,O:No,kind:he.Unary},login:{name:"Login",I:No,O:Mh,kind:he.Unary},logout:{name:"Logout",I:jt,O:jt,kind:he.Unary},resetPassword:{name:"ResetPassword",I:No,O:jt,kind:he.Unary},verifyUser:{name:"VerifyUser",I:Ch,O:jt,kind:he.Unary},updateConfig:{name:"UpdateConfig",I:Jd,O:jt,kind:he.Unary},createGroupInvite:{name:"CreateGroupInvite",I:Nh,O:Ud,kind:he.Unary},joinGroup:{name:"JoinGroup",I:Ud,O:di,kind:he.Unary},groupInfo:{name:"GroupInfo",I:Th,O:di,kind:he.Unary},createGroup:{name:"CreateGroup",I:di,O:di,kind:he.Unary},getGroups:{name:"GetGroups",I:jt,O:Ph,kind:he.Unary},deleteGroup:{name:"DeleteGroup",I:di,O:jt,kind:he.Unary},share:{name:"Share",I:Oh,O:jt,kind:he.Unary}}};var gg=class t extends I{user="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chat.BanUserRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},yg=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chat.BanUserResponse";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},vg=class t extends I{message="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chat.SendMessageRequest";static fields=h.util.newFieldList(()=>[{no:2,name:"message",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},wg=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chat.SendMessageResponse";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},xg=class t extends I{constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chat.ReceiveMessagesRequest";static fields=h.util.newFieldList(()=>[]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},bg=class t extends I{user="";text="";timestamp=Je.zero;constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="chat.Message";static fields=h.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"timestamp",kind:"scalar",T:3}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var CA={typeName:"chat.ChatService",methods:{sendMessage:{name:"SendMessage",I:vg,O:wg,kind:he.Unary},receiveMessages:{name:"ReceiveMessages",I:xg,O:bg,kind:he.ServerStreaming},banUser:{name:"BanUser",I:gg,O:yg,kind:he.Unary}}};var Sg=class t extends I{type={case:void 0};constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="event.Metric";static fields=h.util.newFieldList(()=>[{no:1,name:"http",kind:"message",T:ek,oneof:"type"},{no:2,name:"rrweb",kind:"message",T:tk,oneof:"type"}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},ek=class t extends I{method="";path="";query="";headers={};host="";remoteAddr="";userAgent="";referer="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="event.HTTPRequest";static fields=h.util.newFieldList(()=>[{no:1,name:"method",kind:"scalar",T:9},{no:2,name:"path",kind:"scalar",T:9},{no:3,name:"query",kind:"scalar",T:9},{no:4,name:"headers",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"host",kind:"scalar",T:9},{no:6,name:"remoteAddr",kind:"scalar",T:9},{no:7,name:"userAgent",kind:"scalar",T:9},{no:8,name:"referer",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},tk=class t extends I{events="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="event.RRWeb";static fields=h.util.newFieldList(()=>[{no:1,name:"events",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}},kg=class t extends I{id="";constructor(e){super(),h.util.initPartial(e,this)}static runtime=h;static typeName="event.SendResponse";static fields=h.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,n){return new t().fromBinary(e,n)}static fromJson(e,n){return new t().fromJson(e,n)}static fromJsonString(e,n){return new t().fromJsonString(e,n)}static equals(e,n){return h.util.equals(t,e,n)}};var TA={typeName:"event.EventService",methods:{send:{name:"Send",I:Sg,O:kg,kind:he.Unary}}};var _e;(function(t){t[t.Canceled=1]="Canceled",t[t.Unknown=2]="Unknown",t[t.InvalidArgument=3]="InvalidArgument",t[t.DeadlineExceeded=4]="DeadlineExceeded",t[t.NotFound=5]="NotFound",t[t.AlreadyExists=6]="AlreadyExists",t[t.PermissionDenied=7]="PermissionDenied",t[t.ResourceExhausted=8]="ResourceExhausted",t[t.FailedPrecondition=9]="FailedPrecondition",t[t.Aborted=10]="Aborted",t[t.OutOfRange=11]="OutOfRange",t[t.Unimplemented=12]="Unimplemented",t[t.Internal=13]="Internal",t[t.Unavailable=14]="Unavailable",t[t.DataLoss=15]="DataLoss",t[t.Unauthenticated=16]="Unauthenticated"})(_e||(_e={}));function $d(t){let e=_e[t];return typeof e!="string"?t.toString():e[0].toLowerCase()+e.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var Eg;function NA(t){if(!Eg){Eg={};for(let e of Object.values(_e))typeof e!="string"&&(Eg[$d(e)]=e)}return Eg[t]}var Dt=class t extends Error{constructor(e,n=_e.Unknown,r,o,i){super(Zq(e,n)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=e,this.code=n,this.metadata=new Headers(r??{}),this.details=o??[],this.cause=i}static from(e,n=_e.Unknown){return e instanceof t?e:e instanceof Error?e.name=="AbortError"?new t(e.message,_e.Canceled):new t(e.message,n,void 0,void 0,e):new t(String(e),n,void 0,void 0,e)}static[Symbol.hasInstance](e){return e instanceof Error?Object.getPrototypeOf(e)===t.prototype?!0:e.name==="ConnectError"&&"code"in e&&typeof e.code=="number"&&"metadata"in e&&"details"in e&&Array.isArray(e.details)&&"rawMessage"in e&&typeof e.rawMessage=="string"&&"cause"in e:!1}findDetails(e){let n="typeName"in e?{findMessage:o=>o===e.typeName?e:void 0}:e,r=[];for(let o of this.details){if(o instanceof I){n.findMessage(o.getType().typeName)&&r.push(o);continue}let i=n.findMessage(o.type);if(i)try{r.push(i.fromBinary(o.value))}catch{}}return r}};function Zq(t,e){return t.length?`[${$d(e)}] ${t}`:`[${$d(e)}]`}function nk(...t){let e=new Headers;for(let n of t)n.forEach((r,o)=>{e.append(o,r)});return e}function OA(t,e){let n={};for(let[r,o]of Object.entries(t.methods)){let i=e(Object.assign(Object.assign({},o),{localName:r,service:t}));i!=null&&(n[r]=i)}return n}function rk(t){let e,n=new Uint8Array(0);function r(o){let i=new Uint8Array(n.length+o.length);i.set(n),i.set(o,n.length),n=i}return new ReadableStream({start(){e=t.getReader()},async pull(o){let i;for(;;){if(i===void 0&&n.byteLength>=5){let l=0;for(let u=1;u<5;u++)l=(l<<8)+n[u];i={flags:n[0],length:l}}if(i!==void 0&&n.byteLength>=i.length+5)break;let a=await e.read();if(a.done)break;r(a.value)}if(i===void 0){if(n.byteLength==0){o.close();return}o.error(new Dt("premature end of stream",_e.DataLoss));return}let s=n.subarray(5,5+i.length);n=n.subarray(5+i.length),o.enqueue({flags:i.flags,data:s})}})}function ok(t,e){let n=new Uint8Array(e.length+5);n.set(e,5);let r=new DataView(n.buffer,n.byteOffset,n.byteLength);return r.setUint8(0,t),r.setUint32(1,e.length),n}var e5=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=t[i]&&function(s){return new Promise(function(a,l){s=t[i](s),o(a,l,s.done,s.value)})}}function o(i,s,a,l){Promise.resolve(l).then(function(u){i({value:u,done:a})},s)}},Gd=function(t){return this instanceof Gd?(this.v=t,this):new Gd(t)},t5=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),o,i=[];return o={},a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(p){return function(m){return Promise.resolve(m).then(p,d)}}function a(p,m){r[p]&&(o[p]=function(y){return new Promise(function(v,g){i.push([p,y,v,g])>1||l(p,y)})},m&&(o[p]=m(o[p])))}function l(p,m){try{u(r[p](m))}catch(y){f(i[0][3],y)}}function u(p){p.value instanceof Gd?Promise.resolve(p.value.v).then(c,d):f(i[0][2],p)}function c(p){l("next",p)}function d(p){l("throw",p)}function f(p,m){p(m),i.shift(),i.length&&l(i[0][0],i[0][1])}},n5=function(t){var e,n;return e={},r("next"),r("throw",function(o){throw o}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(o,i){e[o]=t[o]?function(s){return(n=!n)?{value:Gd(t[o](s)),done:!1}:i?i(s):s}:i}};function PA(t){return t5(this,arguments,function*(){yield Gd(yield*n5(e5(t)))})}var MA=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=t[i]&&function(s){return new Promise(function(a,l){s=t[i](s),o(a,l,s.done,s.value)})}}function o(i,s,a,l){Promise.resolve(l).then(function(u){i({value:u,done:a})},s)}},Su=function(t){return this instanceof Su?(this.v=t,this):new Su(t)},r5=function(t){var e,n;return e={},r("next"),r("throw",function(o){throw o}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(o,i){e[o]=t[o]?function(s){return(n=!n)?{value:Su(t[o](s)),done:!1}:i?i(s):s}:i}},o5=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),o,i=[];return o={},a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(p){return function(m){return Promise.resolve(m).then(p,d)}}function a(p,m){r[p]&&(o[p]=function(y){return new Promise(function(v,g){i.push([p,y,v,g])>1||l(p,y)})},m&&(o[p]=m(o[p])))}function l(p,m){try{u(r[p](m))}catch(y){f(i[0][3],y)}}function u(p){p.value instanceof Su?Promise.resolve(p.value.v).then(c,d):f(i[0][2],p)}function c(p){l("next",p)}function d(p){l("throw",p)}function f(p,m){p(m),i.shift(),i.length&&l(i[0][0],i[0][1])}};function ua(t,e){return OA(t,n=>{switch(n.kind){case he.Unary:return i5(e,t,n);case he.ServerStreaming:return s5(e,t,n);case he.ClientStreaming:return a5(e,t,n);case he.BiDiStreaming:return l5(e,t,n);default:return null}})}function i5(t,e,n){return async function(r,o){var i,s;let a=await t.unary(e,n,o?.signal,o?.timeoutMs,o?.headers,r,o?.contextValues);return(i=o?.onHeader)===null||i===void 0||i.call(o,a.header),(s=o?.onTrailer)===null||s===void 0||s.call(o,a.trailer),a.message}}function s5(t,e,n){return function(r,o){return AA(t.stream(e,n,o?.signal,o?.timeoutMs,o?.headers,PA([r]),o?.contextValues),o)}}function a5(t,e,n){return async function(r,o){var i,s,a,l,u,c;let d=await t.stream(e,n,o?.signal,o?.timeoutMs,o?.headers,r,o?.contextValues);(u=o?.onHeader)===null||u===void 0||u.call(o,d.header);let f;try{for(var p=!0,m=MA(d.message),y;y=await m.next(),i=y.done,!i;p=!0)l=y.value,p=!1,f=l}catch(v){s={error:v}}finally{try{!p&&!i&&(a=m.return)&&await a.call(m)}finally{if(s)throw s.error}}if(!f)throw new Dt("protocol error: missing response message",_e.Internal);return(c=o?.onTrailer)===null||c===void 0||c.call(o,d.trailer),f}}function l5(t,e,n){return function(r,o){return AA(t.stream(e,n,o?.signal,o?.timeoutMs,o?.headers,r,o?.contextValues),o)}}function AA(t,e){let n=function(){var r,o;return o5(this,arguments,function*(){let i=yield Su(t);(r=e?.onHeader)===null||r===void 0||r.call(e,i.header),yield Su(yield*r5(MA(i.message))),(o=e?.onTrailer)===null||o===void 0||o.call(e,i.trailer)})}()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function IA(...t){let e=new AbortController,n=t.filter(o=>o!==void 0).concat(e.signal);for(let o of n){if(o.aborted){r.apply(o);break}o.addEventListener("abort",r)}function r(){e.signal.aborted||e.abort(ik(this));for(let o of n)o.removeEventListener("abort",r)}return e}function LA(t){let e=new AbortController,n=()=>{e.abort(new Dt("the operation timed out",_e.DeadlineExceeded))},r;return t!==void 0&&(t<=0?n():r=setTimeout(n,t)),{signal:e.signal,cleanup:()=>clearTimeout(r)}}function ik(t){if(!t.aborted)return;if(t.reason!==void 0)return t.reason;let e=new Error("This operation was aborted");return e.name="AbortError",e}function Rg(){return{get(t){return t.id in this?this[t.id]:t.defaultValue},set(t,e){return this[t.id]=e,this},delete(t){return delete this[t.id],this}}}function Cg(t,e,n){let r=typeof e=="string"?e:e.typeName,o=typeof n=="string"?n:n.name;return t.toString().replace(/\/?$/,`/${r}/${o}`)}function sk(t,e){return e instanceof t?e:new t(e)}function DA(t,e){function n(r){return r.done===!0?r:{done:r.done,value:sk(t,r.value)}}return{[Symbol.asyncIterator](){let r=e[Symbol.asyncIterator](),o={next:()=>r.next().then(n)};return r.throw!==void 0&&(o.throw=i=>r.throw(i).then(n)),r.return!==void 0&&(o.return=i=>r.return(i).then(n)),o}}}function Tg(t){var e;let n=Object.assign({},t);return(e=n.ignoreUnknownFields)!==null&&e!==void 0||(n.ignoreUnknownFields=!0),n}function Ng(t,e,n,r){let o=e?FA(t.I,r):BA(t.I,n);return{parse:(e?FA(t.O,r):BA(t.O,n)).parse,serialize:o.serialize}}function FA(t,e){return{parse(n){try{return t.fromBinary(n,e)}catch(r){let o=r instanceof Error?r.message:String(r);throw new Dt(`parse binary: ${o}`,_e.InvalidArgument)}},serialize(n){try{return n.toBinary(e)}catch(r){let o=r instanceof Error?r.message:String(r);throw new Dt(`serialize binary: ${o}`,_e.Internal)}}}}function BA(t,e){var n,r;let o=(n=e?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,i=(r=e?.textDecoder)!==null&&r!==void 0?r:new TextDecoder,s=Tg(e);return{parse(a){try{let l=i.decode(a);return t.fromJsonString(l,s)}catch(l){throw Dt.from(l,_e.InvalidArgument)}},serialize(a){try{let l=a.toJsonString(s);return o.encode(l)}catch(l){throw Dt.from(l,_e.Internal)}}}}var u5=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var _A="application/proto",UA="application/json",JA="application/connect+proto",zA="application/connect+json";function VA(t){let e=t?.match(u5);if(!e)return;let n=!!e[1],r=!!e[3];return{stream:n,binary:r}}function Wd(t,e,n){if(e&&new Headers(e).forEach((s,a)=>n.metadata.append(a,s)),typeof t!="object"||t==null||Array.isArray(t)||!("code"in t)||typeof t.code!="string")throw n;let r=NA(t.code);if(r===void 0)throw n;let o=t.message;if(o!=null&&typeof o!="string")throw n;let i=new Dt(o??"",r,e);if("details"in t&&Array.isArray(t.details))for(let s of t.details){if(s===null||typeof s!="object"||Array.isArray(s)||typeof s.type!="string"||typeof s.value!="string"||"debug"in s&&typeof s.debug!="object")throw n;try{i.details.push({type:s.type,value:rs.dec(s.value),debug:s.debug})}catch{throw n}}return i}var Og=2;function ak(t){let e=new Dt("invalid end stream",_e.InvalidArgument),n;try{n=JSON.parse(typeof t=="string"?t:new TextDecoder().decode(t))}catch{throw e}if(typeof n!="object"||n==null||Array.isArray(n))throw e;let r=new Headers;if("metadata"in n){if(typeof n.metadata!="object"||n.metadata==null||Array.isArray(n.metadata))throw e;for(let[i,s]of Object.entries(n.metadata)){if(!Array.isArray(s)||s.some(a=>typeof a!="string"))throw e;for(let a of s)r.append(i,a)}}let o="error"in n?Wd(n.error,r,e):void 0;return{metadata:r,error:o}}var Kd="Content-Type",qA="Content-Length",Pg="Content-Encoding";var lk="Accept-Encoding";var jA="Connect-Timeout-Ms",Mg="Connect-Protocol-Version",HA="User-Agent";function $A(t){switch(t){case 400:return _e.InvalidArgument;case 401:return _e.Unauthenticated;case 403:return _e.PermissionDenied;case 404:return _e.Unimplemented;case 408:return _e.DeadlineExceeded;case 409:return _e.Aborted;case 412:return _e.FailedPrecondition;case 413:return _e.ResourceExhausted;case 415:return _e.Internal;case 429:return _e.Unavailable;case 431:return _e.ResourceExhausted;case 502:return _e.Unavailable;case 503:return _e.Unavailable;case 504:return _e.Unavailable;default:return _e.Unknown}}function Ag(t){let e=new Headers,n=new Headers;return t.forEach((r,o)=>{o.toLowerCase().startsWith("trailer-")?n.set(o.substring(8),r):e.set(o,r)}),[e,n]}var Ig="1";function Lg(t,e,n,r,o){let i=new Headers(r??{});return n!==void 0&&i.set(jA,`${n}`),i.set(Kd,t==he.Unary?e?_A:UA:e?JA:zA),i.set(Mg,Ig),o&&i.set(HA,"connect-es/1.3.0"),i}function Dg(t,e,n){let r=n.get("Content-Type"),o=VA(r);if(e!==200){let i=new Dt(`HTTP ${e}`,$A(e),n);if(t==he.Unary&&o&&!o.binary)return{isUnaryError:!0,unaryError:i};throw i}return{isUnaryError:!1}}var GA="application/";function d5(t,e){return e?rs.enc(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):encodeURIComponent(new TextDecoder().decode(t))}function uk(t,e,n){let r=`?connect=v${Ig}`,o=t.header.get(Kd);o?.indexOf(GA)===0&&(r+="&encoding="+encodeURIComponent(o.slice(GA.length)));let i=t.header.get(Pg);i!==null&&i!=="identity"&&(r+="&compression="+encodeURIComponent(i),n=!0),n&&(r+="&base64=1"),r+="&message="+d5(e,n);let s=t.url+r,a=new Headers(t.header);return[Mg,Kd,qA,Pg,lk].forEach(l=>a.delete(l)),Object.assign(Object.assign({},t),{init:Object.assign(Object.assign({},t.init),{method:"GET"}),url:s,header:a})}function ck(t){let e=KA(t.next,t.interceptors),[n,r,o]=WA(t),i=Object.assign(Object.assign({},t.req),{message:sk(t.req.method.I,t.req.message),signal:n});return e(i).then(s=>(o(),s),r)}function dk(t){let e=KA(t.next,t.interceptors),[n,r,o]=WA(t),i=Object.assign(Object.assign({},t.req),{message:DA(t.req.method.I,t.req.message),signal:n}),s=!1;return n.addEventListener("abort",function(){var a,l;let u=t.req.message[Symbol.asyncIterator]();s||(a=u.throw)===null||a===void 0||a.call(u,this.reason).catch(()=>{}),(l=u.return)===null||l===void 0||l.call(u).catch(()=>{})}),e(i).then(a=>Object.assign(Object.assign({},a),{message:{[Symbol.asyncIterator](){let l=a.message[Symbol.asyncIterator]();return{next(){return l.next().then(u=>(u.done==!0&&(s=!0,o()),u),r)}}}}}),r)}function WA(t){let{signal:e,cleanup:n}=LA(t.timeoutMs),r=IA(t.signal,e);return[r.signal,function(i){let s=Dt.from(e.aborted?ik(e):i);return r.abort(s),n(),Promise.reject(s)},function(){n(),r.abort()}]}function KA(t,e){var n;return(n=e?.concat().reverse().reduce((r,o)=>o(r),t))!==null&&n!==void 0?n:t}function YA(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var Yd=function(t){return this instanceof Yd?(this.v=t,this):new Yd(t)},f5=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),o,i=[];return o={},a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(p){return function(m){return Promise.resolve(m).then(p,d)}}function a(p,m){r[p]&&(o[p]=function(y){return new Promise(function(v,g){i.push([p,y,v,g])>1||l(p,y)})},m&&(o[p]=m(o[p])))}function l(p,m){try{u(r[p](m))}catch(y){f(i[0][3],y)}}function u(p){p.value instanceof Yd?Promise.resolve(p.value.v).then(c,d):f(i[0][2],p)}function c(p){l("next",p)}function d(p){l("throw",p)}function f(p,m){p(m),i.shift(),i.length&&l(i[0][0],i[0][1])}};function fk(t){var e;YA();let n=(e=t.useBinaryFormat)!==null&&e!==void 0?e:!1;return{async unary(r,o,i,s,a,l,u){var c;let{serialize:d,parse:f}=Ng(o,n,t.jsonOptions,t.binaryOptions);return s=s===void 0?t.defaultTimeoutMs:s<=0?void 0:s,await ck({interceptors:t.interceptors,signal:i,timeoutMs:s,req:{stream:!1,service:r,method:o,url:Cg(t.baseUrl,r,o),init:{method:"POST",credentials:(c=t.credentials)!==null&&c!==void 0?c:"same-origin",redirect:"error",mode:"cors"},header:Lg(o.kind,n,s,a,!1),contextValues:u??Rg(),message:l},next:async p=>{var m;let y=t.useHttpGet===!0&&o.idempotency===Pd.NoSideEffects,v=null;y?p=uk(p,d(p.message),n):v=d(p.message);let w=await((m=t.fetch)!==null&&m!==void 0?m:globalThis.fetch)(p.url,Object.assign(Object.assign({},p.init),{headers:p.header,signal:p.signal,body:v})),{isUnaryError:S,unaryError:b}=Dg(o.kind,w.status,w.headers);if(S)throw Wd(await w.json(),nk(...Ag(w.headers)),b);let[k,x]=Ag(w.headers);return{stream:!1,service:r,method:o,header:k,message:n?f(new Uint8Array(await w.arrayBuffer())):o.O.fromJson(await w.json(),Tg(t.jsonOptions)),trailer:x}}})},async stream(r,o,i,s,a,l,u){var c;let{serialize:d,parse:f}=Ng(o,n,t.jsonOptions,t.binaryOptions);function p(y,v,g){return f5(this,arguments,function*(){let S=rk(y).getReader(),b=!1;for(;;){let k=yield Yd(S.read());if(k.done)break;let{flags:x,data:M}=k.value;if((x&Og)===Og){b=!0;let T=ak(M);if(T.error){let P=T.error;throw g.forEach((J,q)=>{P.metadata.append(q,J)}),P}T.metadata.forEach((P,J)=>v.set(J,P));continue}yield yield Yd(f(M))}if(!b)throw"missing EndStreamResponse"})}async function m(y){if(o.kind!=he.ServerStreaming)throw"The fetch API does not support streaming request bodies";let v=await y[Symbol.asyncIterator]().next();if(v.done==!0)throw"missing request message";return ok(0,d(v.value))}return s=s===void 0?t.defaultTimeoutMs:s<=0?void 0:s,await dk({interceptors:t.interceptors,timeoutMs:s,signal:i,req:{stream:!0,service:r,method:o,url:Cg(t.baseUrl,r,o),init:{method:"POST",credentials:(c=t.credentials)!==null&&c!==void 0?c:"same-origin",redirect:"error",mode:"cors"},header:Lg(o.kind,n,s,a,!1),contextValues:u??Rg(),message:l},next:async y=>{var v;let w=await((v=t.fetch)!==null&&v!==void 0?v:globalThis.fetch)(y.url,Object.assign(Object.assign({},y.init),{headers:y.header,signal:y.signal,body:await m(y.message)}));if(Dg(o.kind,w.status,w.headers),w.body===null)throw"missing response body";let S=new Headers;return Object.assign(Object.assign({},y),{header:w.headers,trailer:S,message:p(w.body,S,w.headers)})}})}}}var p5="https://demo.justshare.com",Xd=fk({baseUrl:`${p5}/api`||"error"}),m5=ua(kA,Xd),Ft=ua(EA,Xd),Oo=ua(RA,Xd),Fg=ua(CA,Xd),Dre=ua(TA,Xd);var XA=nn(void 0);XA.debugLabel="userAtom";var Po=()=>{let[t,e]=Lt(XA);return{user:t,register:async(s,a)=>{try{let l=await Oo.register({email:s,password:a});e(l),Xe.success("Successfully registered!")}catch(l){console.error(l),Xe.error("Failed to register: "+l.message)}},tryLogin:async()=>{try{let s=await Oo.login({});s.success&&e(s.user)}catch(s){console.error(s),Xe.error("Failed to login: "+s.message)}},login:async(s,a)=>{try{let l=await Oo.login({email:s,password:a});e(l.user),Xe.success("Logged in")}catch(l){Xe.error("Failed to login"),console.error("failed to login",l)}},logout:async()=>{try{let s=await Oo.logout({});e(void 0),console.log(s),Xe.success("Logged out")}catch(s){Xe.error("Failed to logout"),console.error("failed to logout",s)}}}};var gn=Y(we(),1),us=({next:t,allowRegister:e})=>{let[n,r]=(0,Bg.useState)(""),[o,i]=(0,Bg.useState)(""),{login:s,register:a}=Po(),[l,u]=(0,Bg.useState)("login");return(0,gn.jsx)(gn.Fragment,{children:(0,gn.jsx)("div",{className:"mt-4",children:(0,gn.jsx)("div",{className:"items-center px-5 py-12 lg:px-20",children:(0,gn.jsxs)("div",{className:"flex flex-col w-full max-w-md p-10 mx-auto",children:[(0,gn.jsx)("a",{className:"btn",href:`/auth/google${t?"?next="+t:""}`,children:"login with google"}),(0,gn.jsx)("div",{className:"divider",children:"or"}),(0,gn.jsxs)("div",{className:"tabs tabs-lifted",children:[(0,gn.jsx)("a",{className:`tab ${l==="login"?"tab-active":""}`,onClick:()=>u("login"),children:"login"}),e&&(0,gn.jsx)("a",{className:`tab ${l==="register"?"tab-active":""}`,onClick:()=>u("register"),children:"register"})]}),(0,gn.jsxs)("div",{className:"space-y-2 w-full mx-auto my-6",children:[(0,gn.jsx)("input",{className:"input input-bordered w-full",type:"email",placeholder:"email",value:n,onChange:c=>r(c.target.value)}),(0,gn.jsx)("input",{className:"input input-bordered w-full",type:"password",placeholder:"password",value:o,onChange:c=>i(c.target.value)})]}),(0,gn.jsx)("button",{className:"btn btn-primary",onClick:()=>{l==="login"?s(n,o):a(n,o)},children:l==="login"?"login":"register"})]})})})})};var ca=Y(Ee(),1);var g5=Y(we(),1),h5=(0,ca.createContext)({}),QA=()=>(0,ca.useContext)(h5);var OC=Y(Ee(),1);var ZA=Y(Ee(),1),eI=nn(void 0);eI.debugLabel="sourcesAtom";var tI=nn(void 0);tI.debugLabel="selectedSourceAtom";var nI=nn([]);nI.debugLabel="typesAtom";var rI=nn([]);rI.debugLabel="tagsAtom";var da=()=>{let[t,e]=Lt(eI),[n,r]=Lt(tI),[o,i]=Lt(nI),[s,a]=Lt(rI);return{sources:t,selected:n,setSelected:r,getSources:async()=>{let u=await Ft.getSources({contentTypes:o,tags:s});e(u.sources),u.sources.length>0&&r(u.sources[0])},types:o,setTypes:i,tags:s,setTags:a}},pk="editorContent",oI=nn(new Qe({type:{case:"post",value:new la({content:localStorage.getItem(pk)||"don't think, write."})}}));oI.debugLabel="editedContentAtom";var iI=nn(void 0);iI.debugLabel="selectedContentAtom";var sI=nn(!1);sI.debugLabel="newContent";var fa=()=>{let[t,e]=Lt(oI),[n,r]=Lt(iI),[o,i]=Lt(sI);return{editedContent:t,editContent:u=>{u===void 0?(window.history.pushState({},"","/app"),e(void 0)):(u.id!==void 0&&u.id!==""&&window.history.pushState({},"",`/app/content/${u.id}`),e(u))},selectedContent:n,selectContent:u=>{u===void 0?(window.history.pushState({},"","/app"),r(void 0)):(u.id!==void 0&&u.id!==""&&window.history.pushState({},"",`/app/content/${u.id}`),r(u))},changeContent:u=>{window.history.pushState({},"","/app"),e(u),i(!0)},newContent:o,setNewContent:i}},y5=nn(!1);y5.debugLabel="recordingAtom";var aI=Y(we(),1);var Yn=Y(Ee(),1);function Nn(t){this.content=t}Nn.prototype={constructor:Nn,find:function(t){for(var e=0;e>1}};Nn.from=function(t){if(t instanceof Nn)return t;var e=[];if(t)for(var n in t)e.push(n,t[n]);return new Nn(e)};var mk=Nn;function mI(t,e,n){for(let r=0;;r++){if(r==t.childCount||r==e.childCount)return t.childCount==e.childCount?null:n;let o=t.child(r),i=e.child(r);if(o==i){n+=o.nodeSize;continue}if(!o.sameMarkup(i))return n;if(o.isText&&o.text!=i.text){for(let s=0;o.text[s]==i.text[s];s++)n++;return n}if(o.content.size||i.content.size){let s=mI(o.content,i.content,n+1);if(s!=null)return s}n+=o.nodeSize}}function hI(t,e,n,r){for(let o=t.childCount,i=e.childCount;;){if(o==0||i==0)return o==i?null:{a:n,b:r};let s=t.child(--o),a=e.child(--i),l=s.nodeSize;if(s==a){n-=l,r-=l;continue}if(!s.sameMarkup(a))return{a:n,b:r};if(s.isText&&s.text!=a.text){let u=0,c=Math.min(s.text.length,a.text.length);for(;ue&&r(l,o+a,i||null,s)!==!1&&l.content.size){let c=a+1;l.nodesBetween(Math.max(0,e-c),Math.min(l.content.size,n-c),r,o+c)}a=u}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,n,r,o){let i="",s=!0;return this.nodesBetween(e,n,(a,l)=>{let u=a.isText?a.text.slice(Math.max(e,l)-l,n-l):a.isLeaf?o?typeof o=="function"?o(a):o:a.type.spec.leafText?a.type.spec.leafText(a):"":"";a.isBlock&&(a.isLeaf&&u||a.isTextblock)&&r&&(s?s=!1:i+=r),i+=u},0),i}append(e){if(!e.size)return this;if(!this.size)return e;let n=this.lastChild,r=e.firstChild,o=this.content.slice(),i=0;for(n.isText&&n.sameMarkup(r)&&(o[o.length-1]=n.withText(n.text+r.text),i=1);ie)for(let i=0,s=0;se&&((sn)&&(a.isText?a=a.cut(Math.max(0,e-s),Math.min(a.text.length,n-s)):a=a.cut(Math.max(0,e-s-1),Math.min(a.content.size,n-s-1))),r.push(a),o+=a.nodeSize),s=l}return new t(r,o)}cutByIndex(e,n){return e==n?t.empty:e==0&&n==this.content.length?this:new t(this.content.slice(e,n))}replaceChild(e,n){let r=this.content[e];if(r==n)return this;let o=this.content.slice(),i=this.size+n.nodeSize-r.nodeSize;return o[e]=n,new t(o,i)}addToStart(e){return new t([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new t(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let n=0;nthis.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let r=0,o=0;;r++){let i=this.child(r),s=o+i.nodeSize;if(s>=e)return s==e||n>0?_g(r+1,s):_g(r,o);o=s}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,n){if(!n)return t.empty;if(!Array.isArray(n))throw new RangeError("Invalid input for Fragment.fromJSON");return new t(n.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return t.empty;let n,r=0;for(let o=0;othis.type.rank&&(n||(n=e.slice(0,o)),n.push(this),r=!0),n&&n.push(i)}}return n||(n=e.slice()),r||n.push(this),n}removeFromSet(e){for(let n=0;nr.type.rank-o.type.rank),n}};$e.none=[];var ha=class extends Error{},se=class t{constructor(e,n,r){this.content=e,this.openStart=n,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,n){let r=yI(this.content,e+this.openStart,n);return r&&new t(r,this.openStart,this.openEnd)}removeBetween(e,n){return new t(gI(this.content,e+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,n){if(!n)return t.empty;let r=n.openStart||0,o=n.openEnd||0;if(typeof r!="number"||typeof o!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new t(re.fromJSON(e,n.content),r,o)}static maxOpen(e,n=!0){let r=0,o=0;for(let i=e.firstChild;i&&!i.isLeaf&&(n||!i.type.spec.isolating);i=i.firstChild)r++;for(let i=e.lastChild;i&&!i.isLeaf&&(n||!i.type.spec.isolating);i=i.lastChild)o++;return new t(e,r,o)}};se.empty=new se(re.empty,0,0);function gI(t,e,n){let{index:r,offset:o}=t.findIndex(e),i=t.maybeChild(r),{index:s,offset:a}=t.findIndex(n);if(o==e||i.isText){if(a!=n&&!t.child(s).isText)throw new RangeError("Removing non-flat range");return t.cut(0,e).append(t.cut(n))}if(r!=s)throw new RangeError("Removing non-flat range");return t.replaceChild(r,i.copy(gI(i.content,e-o-1,n-o-1)))}function yI(t,e,n,r){let{index:o,offset:i}=t.findIndex(e),s=t.maybeChild(o);if(i==e||s.isText)return r&&!r.canReplace(o,o,n)?null:t.cut(0,e).append(n).append(t.cut(e));let a=yI(s.content,e-i-1,n);return a&&t.replaceChild(o,s.copy(a))}function v5(t,e,n){if(n.openStart>t.depth)throw new ha("Inserted content deeper than insertion position");if(t.depth-n.openStart!=e.depth-n.openEnd)throw new ha("Inconsistent open depths");return vI(t,e,n,0)}function vI(t,e,n,r){let o=t.index(r),i=t.node(r);if(o==e.index(r)&&r=0&&t.isText&&t.sameMarkup(e[n])?e[n]=t.withText(e[n].text+t.text):e.push(t)}function Qd(t,e,n,r){let o=(e||t).node(n),i=0,s=e?e.index(n):o.childCount;t&&(i=t.index(n),t.depth>n?i++:t.textOffset&&(pa(t.nodeAfter,r),i++));for(let a=i;ao&&wk(t,e,o+1),s=r.depth>o&&wk(n,r,o+1),a=[];return Qd(null,t,o,a),i&&s&&e.index(o)==n.index(o)?(wI(i,s),pa(ma(i,xI(t,e,n,r,o+1)),a)):(i&&pa(ma(i,Jg(t,e,o+1)),a),Qd(e,n,o,a),s&&pa(ma(s,Jg(n,r,o+1)),a)),Qd(r,null,o,a),new re(a)}function Jg(t,e,n){let r=[];if(Qd(null,t,n,r),t.depth>n){let o=wk(t,e,n+1);pa(ma(o,Jg(t,e,n+1)),r)}return Qd(e,null,n,r),new re(r)}function w5(t,e){let n=e.depth-t.openStart,o=e.node(n).copy(t.content);for(let i=n-1;i>=0;i--)o=e.node(i).copy(re.from(o));return{start:o.resolveNoCache(t.openStart+n),end:o.resolveNoCache(o.content.size-t.openEnd-n)}}var zg=class t{constructor(e,n,r){this.pos=e,this.path=n,this.parentOffset=r,this.depth=n.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,n=this.index(this.depth);if(n==e.childCount)return null;let r=this.pos-this.path[this.path.length-1],o=e.child(n);return r?e.child(n).cut(r):o}get nodeBefore(){let e=this.index(this.depth),n=this.pos-this.path[this.path.length-1];return n?this.parent.child(e).cut(0,n):e==0?null:this.parent.child(e-1)}posAtIndex(e,n){n=this.resolveDepth(n);let r=this.path[n*3],o=n==0?0:this.path[n*3-1]+1;for(let i=0;i0;n--)if(this.start(n)<=e&&this.end(n)>=e)return n;return 0}blockRange(e=this,n){if(e.pos=0;r--)if(e.pos<=this.end(r)&&(!n||n(this.node(r))))return new ga(this,e,r);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&n<=e.content.size))throw new RangeError("Position "+n+" out of range");let r=[],o=0,i=n;for(let s=e;;){let{index:a,offset:l}=s.content.findIndex(i),u=i-l;if(r.push(s,a,o+l),!u||(s=s.child(a),s.isText))break;i=u-1,o+=l+1}return new t(n,r,i)}static resolveCached(e,n){for(let o=0;oe&&this.nodesBetween(e,n,i=>(r.isInSet(i.marks)&&(o=!0),!o)),o}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),bI(this.marks,e)}contentMatchAt(e){let n=this.type.contentMatch.matchFragment(this.content,0,e);if(!n)throw new Error("Called contentMatchAt on a node with invalid content");return n}canReplace(e,n,r=re.empty,o=0,i=r.childCount){let s=this.contentMatchAt(e).matchFragment(r,o,i),a=s&&s.matchFragment(this.content,n);if(!a||!a.validEnd)return!1;for(let l=o;ln.type.name)}`);this.content.forEach(n=>n.check())}toJSON(){let e={type:this.type.name};for(let n in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(n=>n.toJSON())),e}static fromJSON(e,n){if(!n)throw new RangeError("Invalid input for Node.fromJSON");let r=null;if(n.marks){if(!Array.isArray(n.marks))throw new RangeError("Invalid mark data for Node.fromJSON");r=n.marks.map(e.markFromJSON)}if(n.type=="text"){if(typeof n.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(n.text,r)}let o=re.fromJSON(e,n.content);return e.nodeType(n.type).create(n.attrs,o,r)}};lo.prototype.text=void 0;var xk=class t extends lo{constructor(e,n,r,o){if(super(e,n,null,o),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):bI(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,n){return this.text.slice(e,n)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new t(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new t(this.type,this.attrs,e,this.marks)}cut(e=0,n=this.text.length){return e==0&&n==this.text.length?this:this.withText(this.text.slice(e,n))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function bI(t,e){for(let n=t.length-1;n>=0;n--)e=t[n].type.name+"("+e+")";return e}var ya=class t{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,n){let r=new bk(e,n);if(r.next==null)return t.empty;let o=SI(r);r.next&&r.err("Unexpected trailing text");let i=N5(T5(o));return O5(i,r),i}matchType(e){for(let n=0;nu.createAndFill()));for(let u=0;u=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function n(r){e.push(r);for(let o=0;o{let i=o+(r.validEnd?"*":" ")+" ";for(let s=0;s"+e.indexOf(r.next[s].next);return i}).join(` `)}};ya.empty=new ya(!0);var bk=class{constructor(e,n){this.string=e,this.nodeTypes=n,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}};function SI(t){let e=[];do e.push(S5(t));while(t.eat("|"));return e.length==1?e[0]:{type:"choice",exprs:e}}function S5(t){let e=[];do e.push(k5(t));while(t.next&&t.next!=")"&&t.next!="|");return e.length==1?e[0]:{type:"seq",exprs:e}}function k5(t){let e=C5(t);for(;;)if(t.eat("+"))e={type:"plus",expr:e};else if(t.eat("*"))e={type:"star",expr:e};else if(t.eat("?"))e={type:"opt",expr:e};else if(t.eat("{"))e=E5(t,e);else break;return e}function lI(t){/\D/.test(t.next)&&t.err("Expected number, got '"+t.next+"'");let e=Number(t.next);return t.pos++,e}function E5(t,e){let n=lI(t),r=n;return t.eat(",")&&(t.next!="}"?r=lI(t):r=-1),t.eat("}")||t.err("Unclosed braced range"),{type:"range",min:n,max:r,expr:e}}function R5(t,e){let n=t.nodeTypes,r=n[e];if(r)return[r];let o=[];for(let i in n){let s=n[i];s.groups.indexOf(e)>-1&&o.push(s)}return o.length==0&&t.err("No node type or group '"+e+"' found"),o}function C5(t){if(t.eat("(")){let e=SI(t);return t.eat(")")||t.err("Missing closing paren"),e}else if(/\W/.test(t.next))t.err("Unexpected token '"+t.next+"'");else{let e=R5(t,t.next).map(n=>(t.inline==null?t.inline=n.isInline:t.inline!=n.isInline&&t.err("Mixing inline and block content"),{type:"name",value:n}));return t.pos++,e.length==1?e[0]:{type:"choice",exprs:e}}}function T5(t){let e=[[]];return o(i(t,0),n()),e;function n(){return e.push([])-1}function r(s,a,l){let u={term:l,to:a};return e[s].push(u),u}function o(s,a){s.forEach(l=>l.to=a)}function i(s,a){if(s.type=="choice")return s.exprs.reduce((l,u)=>l.concat(i(u,a)),[]);if(s.type=="seq")for(let l=0;;l++){let u=i(s.exprs[l],a);if(l==s.exprs.length-1)return u;o(u,a=n())}else if(s.type=="star"){let l=n();return r(a,l),o(i(s.expr,l),l),[r(l)]}else if(s.type=="plus"){let l=n();return o(i(s.expr,a),l),o(i(s.expr,l),l),[r(l)]}else{if(s.type=="opt")return[r(a)].concat(i(s.expr,a));if(s.type=="range"){let l=a;for(let u=0;u{t[s].forEach(({term:a,to:l})=>{if(!a)return;let u;for(let c=0;c{u||o.push([a,u=[]]),u.indexOf(c)==-1&&u.push(c)})})});let i=e[r.join(",")]=new ya(r.indexOf(t.length-1)>-1);for(let s=0;s-1}allowsMarks(e){if(this.markSet==null)return!0;for(let n=0;nr[i]=new t(i,n,s));let o=n.spec.topNode||"doc";if(!r[o])throw new RangeError("Schema is missing its top node type ('"+o+"')");if(!r.text)throw new RangeError("Every schema needs a 'text' type");for(let i in r.text.attrs)throw new RangeError("The text node type should not have attributes");return r}},Sk=class{constructor(e){this.hasDefault=Object.prototype.hasOwnProperty.call(e,"default"),this.default=e.default}get isRequired(){return!this.hasDefault}},ef=class t{constructor(e,n,r,o){this.name=e,this.rank=n,this.schema=r,this.spec=o,this.attrs=CI(o.attrs),this.excluded=null;let i=EI(this.attrs);this.instance=i?new $e(this,i):null}create(e=null){return!e&&this.instance?this.instance:new $e(this,RI(this.attrs,e))}static compile(e,n){let r=Object.create(null),o=0;return e.forEach((i,s)=>r[i]=new t(i,o++,n,s)),r}removeFromSet(e){for(var n=0;n-1}},qg=class{constructor(e){this.cached=Object.create(null);let n=this.spec={};for(let o in e)n[o]=e[o];n.nodes=mk.from(e.nodes),n.marks=mk.from(e.marks||{}),this.nodes=Vg.compile(this.spec.nodes,this),this.marks=ef.compile(this.spec.marks,this);let r=Object.create(null);for(let o in this.nodes){if(o in this.marks)throw new RangeError(o+" can not be both a node and a mark");let i=this.nodes[o],s=i.spec.content||"",a=i.spec.marks;i.contentMatch=r[s]||(r[s]=ya.parse(s,this.nodes)),i.inlineContent=i.contentMatch.inlineContent,i.markSet=a=="_"?null:a?cI(this,a.split(" ")):a==""||!i.inlineContent?[]:null}for(let o in this.marks){let i=this.marks[o],s=i.spec.excludes;i.excluded=s==null?[i]:s==""?[]:cI(this,s.split(" "))}this.nodeFromJSON=this.nodeFromJSON.bind(this),this.markFromJSON=this.markFromJSON.bind(this),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,n=null,r,o){if(typeof e=="string")e=this.nodeType(e);else if(e instanceof Vg){if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}else throw new RangeError("Invalid node type: "+e);return e.createChecked(n,r,o)}text(e,n){let r=this.nodes.text;return new xk(r,r.defaultAttrs,e,$e.setFrom(n))}mark(e,n){return typeof e=="string"&&(e=this.marks[e]),e.create(n)}nodeFromJSON(e){return lo.fromJSON(this,e)}markFromJSON(e){return $e.fromJSON(this,e)}nodeType(e){let n=this.nodes[e];if(!n)throw new RangeError("Unknown node type: "+e);return n}};function cI(t,e){let n=[];for(let r=0;r-1)&&n.push(s=l)}if(!s)throw new SyntaxError("Unknown mark type: '"+e[r]+"'")}return n}var va=class t{constructor(e,n){this.schema=e,this.rules=n,this.tags=[],this.styles=[],n.forEach(r=>{r.tag?this.tags.push(r):r.style&&this.styles.push(r)}),this.normalizeLists=!this.tags.some(r=>{if(!/^(ul|ol)\b/.test(r.tag)||!r.node)return!1;let o=e.nodes[r.node];return o.contentMatch.matchType(o)})}parse(e,n={}){let r=new $g(this,n,!1);return r.addAll(e,n.from,n.to),r.finish()}parseSlice(e,n={}){let r=new $g(this,n,!0);return r.addAll(e,n.from,n.to),se.maxOpen(r.finish())}matchTag(e,n,r){for(let o=r?this.tags.indexOf(r)+1:0;oe.length&&(a.charCodeAt(e.length)!=61||a.slice(e.length+1)!=n))){if(s.getAttrs){let l=s.getAttrs(n);if(l===!1)continue;s.attrs=l||void 0}return s}}}static schemaRules(e){let n=[];function r(o){let i=o.priority==null?50:o.priority,s=0;for(;s{r(s=fI(s)),s.mark||s.ignore||s.clearMark||(s.mark=o)})}for(let o in e.nodes){let i=e.nodes[o].spec.parseDOM;i&&i.forEach(s=>{r(s=fI(s)),s.node||s.ignore||s.mark||(s.node=o)})}return n}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new t(e,t.schemaRules(e)))}},TI={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},P5={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},NI={ol:!0,ul:!0},jg=1,Hg=2,Zd=4;function dI(t,e,n){return e!=null?(e?jg:0)|(e==="full"?Hg:0):t&&t.whitespace=="pre"?jg|Hg:n&~Zd}var ku=class{constructor(e,n,r,o,i,s,a){this.type=e,this.attrs=n,this.marks=r,this.pendingMarks=o,this.solid=i,this.options=a,this.content=[],this.activeMarks=$e.none,this.stashMarks=[],this.match=s||(a&Zd?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let n=this.type.contentMatch.fillBefore(re.from(e));if(n)this.match=this.type.contentMatch.matchFragment(n);else{let r=this.type.contentMatch,o;return(o=r.findWrapping(e.type))?(this.match=r,o):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&jg)){let r=this.content[this.content.length-1],o;if(r&&r.isText&&(o=/[ \t\r\n\u000c]+$/.exec(r.text))){let i=r;r.text.length==o[0].length?this.content.pop():this.content[this.content.length-1]=i.withText(i.text.slice(0,i.text.length-o[0].length))}}let n=re.from(this.content);return!e&&this.match&&(n=n.append(this.match.fillBefore(re.empty,!0))),this.type?this.type.create(this.attrs,n,this.marks):n}popFromStashMark(e){for(let n=this.stashMarks.length-1;n>=0;n--)if(e.eq(this.stashMarks[n]))return this.stashMarks.splice(n,1)[0]}applyPending(e){for(let n=0,r=this.pendingMarks;nthis.addAll(e)),s&&this.sync(a),this.needsBlock=l}else this.withStyleRules(e,()=>{this.addElementByRule(e,i,i.consuming===!1?o:void 0)})}leafFallback(e){e.nodeName=="BR"&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(` `))}ignoreFallback(e){e.nodeName=="BR"&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text("-"))}readStyles(e){let n=$e.none,r=$e.none;for(let o=0;o{s.clearMark(a)&&(r=a.addToSet(r))}):n=this.parser.schema.marks[s.mark].create(s.attrs).addToSet(n),s.consuming===!1)i=s;else break}return[n,r]}addElementByRule(e,n,r){let o,i,s;n.node?(i=this.parser.schema.nodes[n.node],i.isLeaf?this.insertNode(i.create(n.attrs))||this.leafFallback(e):o=this.enter(i,n.attrs||null,n.preserveWhitespace)):(s=this.parser.schema.marks[n.mark].create(n.attrs),this.addPendingMark(s));let a=this.top;if(i&&i.isLeaf)this.findInside(e);else if(r)this.addElement(e,r);else if(n.getContent)this.findInside(e),n.getContent(e,this.parser.schema).forEach(l=>this.insertNode(l));else{let l=e;typeof n.contentElement=="string"?l=e.querySelector(n.contentElement):typeof n.contentElement=="function"?l=n.contentElement(e):n.contentElement&&(l=n.contentElement),this.findAround(e,l,!0),this.addAll(l)}o&&this.sync(a)&&this.open--,s&&this.removePendingMark(s,a)}addAll(e,n,r){let o=n||0;for(let i=n?e.childNodes[n]:e.firstChild,s=r==null?null:e.childNodes[r];i!=s;i=i.nextSibling,++o)this.findAtPoint(e,o),this.addDOM(i);this.findAtPoint(e,o)}findPlace(e){let n,r;for(let o=this.open;o>=0;o--){let i=this.nodes[o],s=i.findWrapping(e);if(s&&(!n||n.length>s.length)&&(n=s,r=i,!s.length)||i.solid)break}if(!n)return!1;this.sync(r);for(let o=0;othis.open){for(;n>this.open;n--)this.nodes[n-1].content.push(this.nodes[n].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(this.isOpen||this.options.topOpen)}sync(e){for(let n=this.open;n>=0;n--)if(this.nodes[n]==e)return this.open=n,!0;return!1}get currentPos(){this.closeExtra();let e=0;for(let n=this.open;n>=0;n--){let r=this.nodes[n].content;for(let o=r.length-1;o>=0;o--)e+=r[o].nodeSize;n&&e++}return e}findAtPoint(e,n){if(this.find)for(let r=0;r-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let n=e.split("/"),r=this.options.context,o=!this.isOpen&&(!r||r.parent.type==this.nodes[0].type),i=-(r?r.depth+1:0)+(o?0:1),s=(a,l)=>{for(;a>=0;a--){let u=n[a];if(u==""){if(a==n.length-1||a==0)continue;for(;l>=i;l--)if(s(a-1,l))return!0;return!1}else{let c=l>0||l==0&&o?this.nodes[l].type:r&&l>=i?r.node(l-i).type:null;if(!c||c.name!=u&&c.groups.indexOf(u)==-1)return!1;l--}}return!0};return s(n.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let n=e.depth;n>=0;n--){let r=e.node(n).contentMatchAt(e.indexAfter(n)).defaultType;if(r&&r.isTextblock&&r.defaultAttrs)return r}for(let n in this.parser.schema.nodes){let r=this.parser.schema.nodes[n];if(r.isTextblock&&r.defaultAttrs)return r}}addPendingMark(e){let n=D5(e,this.top.pendingMarks);n&&this.top.stashMarks.push(n),this.top.pendingMarks=e.addToSet(this.top.pendingMarks)}removePendingMark(e,n){for(let r=this.open;r>=0;r--){let o=this.nodes[r];if(o.pendingMarks.lastIndexOf(e)>-1)o.pendingMarks=e.removeFromSet(o.pendingMarks);else{o.activeMarks=e.removeFromSet(o.activeMarks);let s=o.popFromStashMark(e);s&&o.type&&o.type.allowsMarkType(s.type)&&(o.activeMarks=s.addToSet(o.activeMarks))}if(o==n)break}}};function M5(t){for(let e=t.firstChild,n=null;e;e=e.nextSibling){let r=e.nodeType==1?e.nodeName.toLowerCase():null;r&&NI.hasOwnProperty(r)&&n?(n.appendChild(e),e=n):r=="li"?n=e:r&&(n=null)}}function A5(t,e){return(t.matches||t.msMatchesSelector||t.webkitMatchesSelector||t.mozMatchesSelector).call(t,e)}function I5(t){let e=/\s*([\w-]+)\s*:\s*([^;]+)/g,n,r=[];for(;n=e.exec(t);)r.push(n[1],n[2].trim());return r}function fI(t){let e={};for(let n in t)e[n]=t[n];return e}function L5(t,e){let n=e.schema.nodes;for(let r in n){let o=n[r];if(!o.allowsMarkType(t))continue;let i=[],s=a=>{i.push(a);for(let l=0;l{if(i.length||s.marks.length){let a=0,l=0;for(;a=0;o--){let i=this.serializeMark(e.marks[o],e.isInline,n);i&&((i.contentDOM||i.dom).appendChild(r),r=i.dom)}return r}serializeMark(e,n,r={}){let o=this.marks[e.type.name];return o&&t.renderSpec(vk(r),o(e,n))}static renderSpec(e,n,r=null){if(typeof n=="string")return{dom:e.createTextNode(n)};if(n.nodeType!=null)return{dom:n};if(n.dom&&n.dom.nodeType!=null)return n;let o=n[0],i=o.indexOf(" ");i>0&&(r=o.slice(0,i),o=o.slice(i+1));let s,a=r?e.createElementNS(r,o):e.createElement(o),l=n[1],u=1;if(l&&typeof l=="object"&&l.nodeType==null&&!Array.isArray(l)){u=2;for(let c in l)if(l[c]!=null){let d=c.indexOf(" ");d>0?a.setAttributeNS(c.slice(0,d),c.slice(d+1),l[c]):a.setAttribute(c,l[c])}}for(let c=u;cu)throw new RangeError("Content hole must be the only child of its parent node");return{dom:a,contentDOM:a}}else{let{dom:f,contentDOM:p}=t.renderSpec(e,d,r);if(a.appendChild(f),p){if(s)throw new RangeError("Multiple content holes");s=p}}}return{dom:a,contentDOM:s}}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new t(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let n=pI(e.nodes);return n.text||(n.text=r=>r.text),n}static marksFromSchema(e){return pI(e.marks)}};function pI(t){let e={};for(let n in t){let r=t[n].spec.toDOM;r&&(e[n]=r)}return e}function vk(t){return t.document||window.document}var MI=65535,AI=Math.pow(2,16);function F5(t,e){return t+e*AI}function OI(t){return t&MI}function B5(t){return(t-(t&MI))/AI}var II=1,LI=2,Gg=4,DI=8,rf=class{constructor(e,n,r){this.pos=e,this.delInfo=n,this.recover=r}get deleted(){return(this.delInfo&DI)>0}get deletedBefore(){return(this.delInfo&(II|Gg))>0}get deletedAfter(){return(this.delInfo&(LI|Gg))>0}get deletedAcross(){return(this.delInfo&Gg)>0}},mi=class t{constructor(e,n=!1){if(this.ranges=e,this.inverted=n,!e.length&&t.empty)return t.empty}recover(e){let n=0,r=OI(e);if(!this.inverted)for(let o=0;oe)break;let u=this.ranges[a+i],c=this.ranges[a+s],d=l+u;if(e<=d){let f=u?e==l?-1:e==d?1:n:n,p=l+o+(f<0?0:c);if(r)return p;let m=e==(n<0?l:d)?null:F5(a/3,e-l),y=e==l?LI:e==d?II:Gg;return(n<0?e!=l:e!=d)&&(y|=DI),new rf(p,y,m)}o+=c-u}return r?e+o:new rf(e+o,0,null)}touches(e,n){let r=0,o=OI(n),i=this.inverted?2:1,s=this.inverted?1:2;for(let a=0;ae)break;let u=this.ranges[a+i],c=l+u;if(e<=c&&a==o*3)return!0;r+=this.ranges[a+s]-u}return!1}forEach(e){let n=this.inverted?2:1,r=this.inverted?1:2;for(let o=0,i=0;o=0;n--){let o=e.getMirror(n);this.appendMap(e.maps[n].invert(),o!=null&&o>n?r-o-1:void 0)}}invert(){let e=new t;return e.appendMappingInverted(this),e}map(e,n=1){if(this.mirror)return this._map(e,n,!0);for(let r=this.from;ri&&l!s.isAtom||!a.type.allowsMarkType(this.mark.type)?s:s.mark(this.mark.addToSet(s.marks)),o),n.openStart,n.openEnd);return yn.fromReplace(e,this.from,this.to,i)}invert(){return new wa(this.from,this.to,this.mark)}map(e){let n=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new t(n.pos,r.pos,this.mark)}merge(e){return e instanceof t&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new t(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new t(n.from,n.to,e.markFromJSON(n.mark))}};on.jsonID("addMark",sf);var wa=class t extends on{constructor(e,n,r){super(),this.from=e,this.to=n,this.mark=r}apply(e){let n=e.slice(this.from,this.to),r=new se(Nk(n.content,o=>o.mark(this.mark.removeFromSet(o.marks)),e),n.openStart,n.openEnd);return yn.fromReplace(e,this.from,this.to,r)}invert(){return new sf(this.from,this.to,this.mark)}map(e){let n=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new t(n.pos,r.pos,this.mark)}merge(e){return e instanceof t&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new t(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new t(n.from,n.to,e.markFromJSON(n.mark))}};on.jsonID("removeMark",wa);var af=class t extends on{constructor(e,n){super(),this.pos=e,this.mark=n}apply(e){let n=e.nodeAt(this.pos);if(!n)return yn.fail("No node at mark step's position");let r=n.type.create(n.attrs,null,this.mark.addToSet(n.marks));return yn.fromReplace(e,this.pos,this.pos+1,new se(re.from(r),0,n.isLeaf?0:1))}invert(e){let n=e.nodeAt(this.pos);if(n){let r=this.mark.addToSet(n.marks);if(r.length==n.marks.length){for(let o=0;or.pos?null:new t(n.pos,r.pos,o,i,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number"||typeof n.gapFrom!="number"||typeof n.gapTo!="number"||typeof n.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new t(n.from,n.to,n.gapFrom,n.gapTo,se.fromJSON(e,n.slice),n.insert,!!n.structure)}};on.jsonID("replaceAround",Ht);function Ck(t,e,n){let r=t.resolve(e),o=n-e,i=r.depth;for(;o>0&&i>0&&r.indexAfter(i)==r.node(i).childCount;)i--,o--;if(o>0){let s=r.node(i).maybeChild(r.indexAfter(i));for(;o>0;){if(!s||s.isLeaf)return!0;s=s.firstChild,o--}}return!1}function _5(t,e,n,r){let o=[],i=[],s,a;t.doc.nodesBetween(e,n,(l,u,c)=>{if(!l.isInline)return;let d=l.marks;if(!r.isInSet(d)&&c.type.allowsMarkType(r.type)){let f=Math.max(u,e),p=Math.min(u+l.nodeSize,n),m=r.addToSet(d);for(let y=0;yt.step(l)),i.forEach(l=>t.step(l))}function U5(t,e,n,r){let o=[],i=0;t.doc.nodesBetween(e,n,(s,a)=>{if(!s.isInline)return;i++;let l=null;if(r instanceof ef){let u=s.marks,c;for(;c=r.isInSet(u);)(l||(l=[])).push(c),u=c.removeFromSet(u)}else r?r.isInSet(s.marks)&&(l=[r]):l=s.marks;if(l&&l.length){let u=Math.min(a+s.nodeSize,n);for(let c=0;ct.step(new wa(s.from,s.to,s.style)))}function J5(t,e,n,r=n.contentMatch){let o=t.doc.nodeAt(e),i=[],s=e+1;for(let a=0;a=0;a--)t.step(i[a])}function z5(t,e,n){return(e==0||t.canReplace(e,t.childCount))&&(n==t.childCount||t.canReplace(0,n))}function hi(t){let n=t.parent.content.cutByIndex(t.startIndex,t.endIndex);for(let r=t.depth;;--r){let o=t.$from.node(r),i=t.$from.index(r),s=t.$to.indexAfter(r);if(rn;m--)y||r.index(m)>0?(y=!0,c=re.from(r.node(m).copy(c)),d++):l--;let f=re.empty,p=0;for(let m=i,y=!1;m>n;m--)y||o.after(m+1)=0;s--){if(r.size){let a=n[s].type.contentMatch.matchFragment(r);if(!a||!a.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}r=re.from(n[s].type.create(n[s].attrs,r))}let o=e.start,i=e.end;t.step(new Ht(o,i,o,i,new se(r,0,0),n.length,!0))}function $5(t,e,n,r,o){if(!r.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let i=t.steps.length;t.doc.nodesBetween(e,n,(s,a)=>{if(s.isTextblock&&!s.hasMarkup(r,o)&&G5(t.doc,t.mapping.slice(i).map(a),r)){t.clearIncompatible(t.mapping.slice(i).map(a,1),r);let l=t.mapping.slice(i),u=l.map(a,1),c=l.map(a+s.nodeSize,1);return t.step(new Ht(u,c,u+1,c-1,new se(re.from(r.create(o,null,s.marks)),0,0),1,!0)),!1}})}function G5(t,e,n){let r=t.resolve(e),o=r.index();return r.parent.canReplaceWith(o,o+1,n)}function W5(t,e,n,r,o){let i=t.doc.nodeAt(e);if(!i)throw new RangeError("No node at given position");n||(n=i.type);let s=n.create(r,null,o||i.marks);if(i.isLeaf)return t.replaceWith(e,e+i.nodeSize,s);if(!n.validContent(i.content))throw new RangeError("Invalid content for node type "+n.name);t.step(new Ht(e,e+i.nodeSize,e+1,e+i.nodeSize-1,new se(re.from(s),0,0),1,!0))}function Ur(t,e,n=1,r){let o=t.resolve(e),i=o.depth-n,s=r&&r[r.length-1]||o.parent;if(i<0||o.parent.type.spec.isolating||!o.parent.canReplace(o.index(),o.parent.childCount)||!s.type.validContent(o.parent.content.cutByIndex(o.index(),o.parent.childCount)))return!1;for(let u=o.depth-1,c=n-2;u>i;u--,c--){let d=o.node(u),f=o.index(u);if(d.type.spec.isolating)return!1;let p=d.content.cutByIndex(f,d.childCount),m=r&&r[c+1];m&&(p=p.replaceChild(0,m.type.create(m.attrs)));let y=r&&r[c]||d;if(!d.canReplace(f+1,d.childCount)||!y.type.validContent(p))return!1}let a=o.indexAfter(i),l=r&&r[0];return o.node(i).canReplaceWith(a,a,l?l.type:o.node(i+1).type)}function K5(t,e,n=1,r){let o=t.doc.resolve(e),i=re.empty,s=re.empty;for(let a=o.depth,l=o.depth-n,u=n-1;a>l;a--,u--){i=re.from(o.node(a).copy(i));let c=r&&r[u];s=re.from(c?c.type.create(c.attrs,s):o.node(a).copy(s))}t.step(new zn(e,e,new se(i.append(s),n,n),!0))}function uo(t,e){let n=t.resolve(e),r=n.index();return FI(n.nodeBefore,n.nodeAfter)&&n.parent.canReplace(r,r+1)}function FI(t,e){return!!(t&&e&&!t.isLeaf&&t.canAppend(e))}function Tu(t,e,n=-1){let r=t.resolve(e);for(let o=r.depth;;o--){let i,s,a=r.index(o);if(o==r.depth?(i=r.nodeBefore,s=r.nodeAfter):n>0?(i=r.node(o+1),a++,s=r.node(o).maybeChild(a)):(i=r.node(o).maybeChild(a-1),s=r.node(o+1)),i&&!i.isTextblock&&FI(i,s)&&r.node(o).canReplace(a,a+1))return e;if(o==0)break;e=n<0?r.before(o):r.after(o)}}function Y5(t,e,n){let r=new zn(e-n,e+n,se.empty,!0);t.step(r)}function X5(t,e,n){let r=t.resolve(e);if(r.parent.canReplaceWith(r.index(),r.index(),n))return e;if(r.parentOffset==0)for(let o=r.depth-1;o>=0;o--){let i=r.index(o);if(r.node(o).canReplaceWith(i,i,n))return r.before(o+1);if(i>0)return null}if(r.parentOffset==r.parent.content.size)for(let o=r.depth-1;o>=0;o--){let i=r.indexAfter(o);if(r.node(o).canReplaceWith(i,i,n))return r.after(o+1);if(i=0;s--){let a=s==r.depth?0:r.pos<=(r.start(s+1)+r.end(s+1))/2?-1:1,l=r.index(s)+(a>0?1:0),u=r.node(s),c=!1;if(i==1)c=u.canReplace(l,l,o);else{let d=u.contentMatchAt(l).findWrapping(o.firstChild.type);c=d&&u.canReplaceWith(l,l,d[0])}if(c)return a==0?r.pos:a<0?r.before(s+1):r.after(s+1)}return null}function Xg(t,e,n=e,r=se.empty){if(e==n&&!r.size)return null;let o=t.resolve(e),i=t.resolve(n);return BI(o,i,r)?new zn(e,n,r):new Tk(o,i,r).fit()}function BI(t,e,n){return!n.openStart&&!n.openEnd&&t.start()==e.start()&&t.parent.canReplace(t.index(),e.index(),n.content)}var Tk=class{constructor(e,n,r){this.$from=e,this.$to=n,this.unplaced=r,this.frontier=[],this.placed=re.empty;for(let o=0;o<=e.depth;o++){let i=e.node(o);this.frontier.push({type:i.type,match:i.contentMatchAt(e.indexAfter(o))})}for(let o=e.depth;o>0;o--)this.placed=re.from(e.node(o).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let u=this.findFittable();u?this.placeNodes(u):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),n=this.placed.size-this.depth-this.$from.depth,r=this.$from,o=this.close(e<0?this.$to:r.doc.resolve(e));if(!o)return null;let i=this.placed,s=r.depth,a=o.depth;for(;s&&a&&i.childCount==1;)i=i.firstChild.content,s--,a--;let l=new se(i,s,a);return e>-1?new Ht(r.pos,e,this.$to.pos,this.$to.end(),l,n):l.size||r.pos!=this.$to.pos?new zn(r.pos,o.pos,l):null}findFittable(){let e=this.unplaced.openStart;for(let n=this.unplaced.content,r=0,o=this.unplaced.openEnd;r1&&(o=0),i.type.spec.isolating&&o<=r){e=r;break}n=i.content}for(let n=1;n<=2;n++)for(let r=n==1?e:this.unplaced.openStart;r>=0;r--){let o,i=null;r?(i=Ek(this.unplaced.content,r-1).firstChild,o=i.content):o=this.unplaced.content;let s=o.firstChild;for(let a=this.depth;a>=0;a--){let{type:l,match:u}=this.frontier[a],c,d=null;if(n==1&&(s?u.matchType(s.type)||(d=u.fillBefore(re.from(s),!1)):i&&l.compatibleContent(i.type)))return{sliceDepth:r,frontierDepth:a,parent:i,inject:d};if(n==2&&s&&(c=u.findWrapping(s.type)))return{sliceDepth:r,frontierDepth:a,parent:i,wrap:c};if(i&&u.matchType(i.type))break}}}openMore(){let{content:e,openStart:n,openEnd:r}=this.unplaced,o=Ek(e,n);return!o.childCount||o.firstChild.isLeaf?!1:(this.unplaced=new se(e,n+1,Math.max(r,o.size+n>=e.size-r?n+1:0)),!0)}dropNode(){let{content:e,openStart:n,openEnd:r}=this.unplaced,o=Ek(e,n);if(o.childCount<=1&&n>0){let i=e.size-n<=n+o.size;this.unplaced=new se(tf(e,n-1,1),n-1,i?n-1:r)}else this.unplaced=new se(tf(e,n,1),n,r)}placeNodes({sliceDepth:e,frontierDepth:n,parent:r,inject:o,wrap:i}){for(;this.depth>n;)this.closeFrontierNode();if(i)for(let y=0;y1||l==0||y.content.size)&&(d=v,c.push(_I(y.mark(f.allowedMarks(y.marks)),u==1?l:0,u==a.childCount?p:-1)))}let m=u==a.childCount;m||(p=-1),this.placed=nf(this.placed,n,re.from(c)),this.frontier[n].match=d,m&&p<0&&r&&r.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let y=0,v=a;y1&&o==this.$to.end(--r);)++o;return o}findCloseLevel(e){e:for(let n=Math.min(this.depth,e.depth);n>=0;n--){let{match:r,type:o}=this.frontier[n],i=n=0;a--){let{match:l,type:u}=this.frontier[a],c=Rk(e,a,u,l,!0);if(!c||c.childCount)continue e}return{depth:n,fit:s,move:i?e.doc.resolve(e.after(n+1)):e}}}}close(e){let n=this.findCloseLevel(e);if(!n)return null;for(;this.depth>n.depth;)this.closeFrontierNode();n.fit.childCount&&(this.placed=nf(this.placed,n.depth,n.fit)),e=n.move;for(let r=n.depth+1;r<=e.depth;r++){let o=e.node(r),i=o.type.contentMatch.fillBefore(o.content,!0,e.index(r));this.openFrontierNode(o.type,o.attrs,i)}return e}openFrontierNode(e,n=null,r){let o=this.frontier[this.depth];o.match=o.match.matchType(e),this.placed=nf(this.placed,this.depth,re.from(e.create(n,r))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let n=this.frontier.pop().match.fillBefore(re.empty,!0);n.childCount&&(this.placed=nf(this.placed,this.frontier.length,n))}};function tf(t,e,n){return e==0?t.cutByIndex(n,t.childCount):t.replaceChild(0,t.firstChild.copy(tf(t.firstChild.content,e-1,n)))}function nf(t,e,n){return e==0?t.append(n):t.replaceChild(t.childCount-1,t.lastChild.copy(nf(t.lastChild.content,e-1,n)))}function Ek(t,e){for(let n=0;n1&&(r=r.replaceChild(0,_I(r.firstChild,e-1,r.childCount==1?n-1:0))),e>0&&(r=t.type.contentMatch.fillBefore(r).append(r),n<=0&&(r=r.append(t.type.contentMatch.matchFragment(r).fillBefore(re.empty,!0)))),t.copy(r)}function Rk(t,e,n,r,o){let i=t.node(e),s=o?t.indexAfter(e):t.index(e);if(s==i.childCount&&!n.compatibleContent(i.type))return null;let a=r.fillBefore(i.content,!0,s);return a&&!Q5(n,i.content,s)?a:null}function Q5(t,e,n){for(let r=n;r0;f--,p--){let m=o.node(f).type.spec;if(m.defining||m.definingAsContext||m.isolating)break;s.indexOf(f)>-1?a=f:o.before(f)==p&&s.splice(1,0,-f)}let l=s.indexOf(a),u=[],c=r.openStart;for(let f=r.content,p=0;;p++){let m=f.firstChild;if(u.push(m),p==r.openStart)break;f=m.content}for(let f=c-1;f>=0;f--){let p=u[f],m=Z5(p.type);if(m&&!p.sameMarkup(o.node(Math.abs(a)-1)))c=f;else if(m||!p.type.isTextblock)break}for(let f=r.openStart;f>=0;f--){let p=(f+c+1)%(r.openStart+1),m=u[p];if(m)for(let y=0;y=0&&(t.replace(e,n,r),!(t.steps.length>d));f--){let p=s[f];p<0||(e=o.before(p),n=i.after(p))}}function UI(t,e,n,r,o){if(er){let i=o.contentMatchAt(0),s=i.fillBefore(t).append(t);t=s.append(i.matchFragment(s).fillBefore(re.empty,!0))}return t}function tj(t,e,n,r){if(!r.isInline&&e==n&&t.doc.resolve(e).parent.content.size){let o=X5(t.doc,e,r.type);o!=null&&(e=n=o)}t.replaceRange(e,n,new se(re.from(r),0,0))}function nj(t,e,n){let r=t.doc.resolve(e),o=t.doc.resolve(n),i=JI(r,o);for(let s=0;s0&&(l||r.node(a-1).canReplace(r.index(a-1),o.indexAfter(a-1))))return t.delete(r.before(a),o.after(a))}for(let s=1;s<=r.depth&&s<=o.depth;s++)if(e-r.start(s)==r.depth-s&&n>r.end(s)&&o.end(s)-n!=o.depth-s)return t.delete(r.before(s),n);t.delete(e,n)}function JI(t,e){let n=[],r=Math.min(t.depth,e.depth);for(let o=r;o>=0;o--){let i=t.start(o);if(ie.pos+(e.depth-o)||t.node(o).type.spec.isolating||e.node(o).type.spec.isolating)break;(i==e.start(o)||o==t.depth&&o==e.depth&&t.parent.inlineContent&&e.parent.inlineContent&&o&&e.start(o-1)==i-1)&&n.push(o)}return n}var Wg=class t extends on{constructor(e,n,r){super(),this.pos=e,this.attr=n,this.value=r}apply(e){let n=e.nodeAt(this.pos);if(!n)return yn.fail("No node at attribute step's position");let r=Object.create(null);for(let i in n.attrs)r[i]=n.attrs[i];r[this.attr]=this.value;let o=n.type.create(r,null,n.marks);return yn.fromReplace(e,this.pos,this.pos+1,new se(re.from(o),0,n.isLeaf?0:1))}getMap(){return mi.empty}invert(e){return new t(this.pos,this.attr,e.nodeAt(this.pos).attrs[this.attr])}map(e){let n=e.mapResult(this.pos,1);return n.deletedAfter?null:new t(n.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(e,n){if(typeof n.pos!="number"||typeof n.attr!="string")throw new RangeError("Invalid input for AttrStep.fromJSON");return new t(n.pos,n.attr,n.value)}};on.jsonID("attr",Wg);var Kg=class t extends on{constructor(e,n){super(),this.attr=e,this.value=n}apply(e){let n=Object.create(null);for(let o in e.attrs)n[o]=e.attrs[o];n[this.attr]=this.value;let r=e.type.create(n,e.content,e.marks);return yn.ok(r)}getMap(){return mi.empty}invert(e){return new t(this.attr,e.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(e,n){if(typeof n.attr!="string")throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new t(n.attr,n.value)}};on.jsonID("docAttr",Kg);var Eu=class extends Error{};Eu=function t(e){let n=Error.call(this,e);return n.__proto__=t.prototype,n};Eu.prototype=Object.create(Error.prototype);Eu.prototype.constructor=Eu;Eu.prototype.name="TransformError";var Ru=class{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new of}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let n=this.maybeStep(e);if(n.failed)throw new Eu(n.failed);return this}maybeStep(e){let n=e.apply(this.doc);return n.failed||this.addStep(e,n.doc),n}get docChanged(){return this.steps.length>0}addStep(e,n){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=n}replace(e,n=e,r=se.empty){let o=Xg(this.doc,e,n,r);return o&&this.step(o),this}replaceWith(e,n,r){return this.replace(e,n,new se(re.from(r),0,0))}delete(e,n){return this.replace(e,n,se.empty)}insert(e,n){return this.replaceWith(e,e,n)}replaceRange(e,n,r){return ej(this,e,n,r),this}replaceRangeWith(e,n,r){return tj(this,e,n,r),this}deleteRange(e,n){return nj(this,e,n),this}lift(e,n){return V5(this,e,n),this}join(e,n=1){return Y5(this,e,n),this}wrap(e,n){return H5(this,e,n),this}setBlockType(e,n=e,r,o=null){return $5(this,e,n,r,o),this}setNodeMarkup(e,n,r=null,o){return W5(this,e,n,r,o),this}setNodeAttribute(e,n,r){return this.step(new Wg(e,n,r)),this}setDocAttribute(e,n){return this.step(new Kg(e,n)),this}addNodeMark(e,n){return this.step(new af(e,n)),this}removeNodeMark(e,n){if(!(n instanceof $e)){let r=this.doc.nodeAt(e);if(!r)throw new RangeError("No node at position "+e);if(n=n.isInSet(r.marks),!n)return this}return this.step(new lf(e,n)),this}split(e,n=1,r){return K5(this,e,n,r),this}addMark(e,n,r){return _5(this,e,n,r),this}removeMark(e,n,r){return U5(this,e,n,r),this}clearIncompatible(e,n,r){return J5(this,e,n,r),this}};var Ok=Object.create(null),Ie=class{constructor(e,n,r){this.$anchor=e,this.$head=n,this.ranges=r||[new Mk(e.min(n),e.max(n))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let n=0;n=0;i--){let s=n<0?Nu(e.node(0),e.node(i),e.before(i+1),e.index(i),n,r):Nu(e.node(0),e.node(i),e.after(i+1),e.index(i)+1,n,r);if(s)return s}return null}static near(e,n=1){return this.findFrom(e,n)||this.findFrom(e,-n)||new Er(e.node(0))}static atStart(e){return Nu(e,e,0,0,1)||new Er(e)}static atEnd(e){return Nu(e,e,e.content.size,e.childCount,-1)||new Er(e)}static fromJSON(e,n){if(!n||!n.type)throw new RangeError("Invalid input for Selection.fromJSON");let r=Ok[n.type];if(!r)throw new RangeError(`No selection type ${n.type} defined`);return r.fromJSON(e,n)}static jsonID(e,n){if(e in Ok)throw new RangeError("Duplicate use of selection JSON ID "+e);return Ok[e]=n,n.prototype.jsonID=e,n}getBookmark(){return De.between(this.$anchor,this.$head).getBookmark()}};Ie.prototype.visible=!0;var Mk=class{constructor(e,n){this.$from=e,this.$to=n}},zI=!1;function VI(t){!zI&&!t.parent.inlineContent&&(zI=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+t.parent.type.name+")"))}var De=class t extends Ie{constructor(e,n=e){VI(e),VI(n),super(e,n)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(e,n){let r=e.resolve(n.map(this.head));if(!r.parent.inlineContent)return Ie.near(r);let o=e.resolve(n.map(this.anchor));return new t(o.parent.inlineContent?o:r,r)}replace(e,n=se.empty){if(super.replace(e,n),n==se.empty){let r=this.$from.marksAcross(this.$to);r&&e.ensureMarks(r)}}eq(e){return e instanceof t&&e.anchor==this.anchor&&e.head==this.head}getBookmark(){return new Zg(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(e,n){if(typeof n.anchor!="number"||typeof n.head!="number")throw new RangeError("Invalid input for TextSelection.fromJSON");return new t(e.resolve(n.anchor),e.resolve(n.head))}static create(e,n,r=n){let o=e.resolve(n);return new this(o,r==n?o:e.resolve(r))}static between(e,n,r){let o=e.pos-n.pos;if((!r||o)&&(r=o>=0?1:-1),!n.parent.inlineContent){let i=Ie.findFrom(n,r,!0)||Ie.findFrom(n,-r,!0);if(i)n=i.$head;else return Ie.near(n,r)}return e.parent.inlineContent||(o==0?e=n:(e=(Ie.findFrom(e,-r,!0)||Ie.findFrom(e,r,!0)).$anchor,e.pos0?0:1);o>0?s=0;s+=o){let a=e.child(s);if(a.isAtom){if(!i&&Se.isSelectable(a))return Se.create(t,n-(o<0?a.nodeSize:0))}else{let l=Nu(t,a,n+o,o<0?a.childCount:0,o,i);if(l)return l}n+=a.nodeSize*o}return null}function qI(t,e,n){let r=t.steps.length-1;if(r{s==null&&(s=c)}),t.setSelection(Ie.near(t.doc.resolve(s),n))}var jI=1,Qg=2,HI=4,Ik=class extends Ru{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){return this.curSelectionFor0}setStoredMarks(e){return this.storedMarks=e,this.updated|=Qg,this}ensureMarks(e){return $e.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&Qg)>0}addStep(e,n){super.addStep(e,n),this.updated=this.updated&~Qg,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,n=!0){let r=this.selection;return n&&(e=e.mark(this.storedMarks||(r.empty?r.$from.marks():r.$from.marksAcross(r.$to)||$e.none))),r.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,n,r){let o=this.doc.type.schema;if(n==null)return e?this.replaceSelectionWith(o.text(e),!0):this.deleteSelection();{if(r==null&&(r=n),r=r??n,!e)return this.deleteRange(n,r);let i=this.storedMarks;if(!i){let s=this.doc.resolve(n);i=r==n?s.marks():s.marksAcross(this.doc.resolve(r))}return this.replaceRangeWith(n,r,o.text(e,i)),this.selection.empty||this.setSelection(Ie.near(this.selection.$to)),this}}setMeta(e,n){return this.meta[typeof e=="string"?e:e.key]=n,this}getMeta(e){return this.meta[typeof e=="string"?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=HI,this}get scrolledIntoView(){return(this.updated&HI)>0}};function $I(t,e){return!e||!t?t:t.bind(e)}var xa=class{constructor(e,n,r){this.name=e,this.init=$I(n.init,r),this.apply=$I(n.apply,r)}},oj=[new xa("doc",{init(t){return t.doc||t.schema.topNodeType.createAndFill()},apply(t){return t.doc}}),new xa("selection",{init(t,e){return t.selection||Ie.atStart(e.doc)},apply(t){return t.selection}}),new xa("storedMarks",{init(t){return t.storedMarks||null},apply(t,e,n,r){return r.selection.$cursor?t.storedMarks:null}}),new xa("scrollToSelection",{init(){return 0},apply(t,e){return t.scrolledIntoView?e+1:e}})],uf=class{constructor(e,n){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=oj.slice(),n&&n.forEach(r=>{if(this.pluginsByKey[r.key])throw new RangeError("Adding different instances of a keyed plugin ("+r.key+")");this.plugins.push(r),this.pluginsByKey[r.key]=r,r.spec.state&&this.fields.push(new xa(r.key,r.spec.state,r))})}},ey=class t{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,n=-1){for(let r=0;rr.toJSON())),e&&typeof e=="object")for(let r in e){if(r=="doc"||r=="selection")throw new RangeError("The JSON fields `doc` and `selection` are reserved");let o=e[r],i=o.spec.state;i&&i.toJSON&&(n[r]=i.toJSON.call(o,this[o.key]))}return n}static fromJSON(e,n,r){if(!n)throw new RangeError("Invalid input for EditorState.fromJSON");if(!e.schema)throw new RangeError("Required config field 'schema' missing");let o=new uf(e.schema,e.plugins),i=new t(o);return o.fields.forEach(s=>{if(s.name=="doc")i.doc=lo.fromJSON(e.schema,n.doc);else if(s.name=="selection")i.selection=Ie.fromJSON(i.doc,n.selection);else if(s.name=="storedMarks")n.storedMarks&&(i.storedMarks=n.storedMarks.map(e.schema.markFromJSON));else{if(r)for(let a in r){let l=r[a],u=l.spec.state;if(l.key==s.name&&u&&u.fromJSON&&Object.prototype.hasOwnProperty.call(n,a)){i[s.name]=u.fromJSON.call(l,e,n[a],i);return}}i[s.name]=s.init(e,i)}}),i}};function GI(t,e,n){for(let r in t){let o=t[r];o instanceof Function?o=o.bind(e):r=="handleDOMEvents"&&(o=GI(o,e,{})),n[r]=o}return n}var st=class{constructor(e){this.spec=e,this.props={},e.props&&GI(e.props,this,this.props),this.key=e.key?e.key.key:WI("plugin")}getState(e){return e[this.key]}},Pk=Object.create(null);function WI(t){return t in Pk?t+"$"+ ++Pk[t]:(Pk[t]=0,t+"$")}var Bt=class{constructor(e="key"){this.key=WI(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}};var Vn=function(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e},pf=function(t){let e=t.assignedSlot||t.parentNode;return e&&e.nodeType==11?e.host:e},KI=null,yi=function(t,e,n){let r=KI||(KI=document.createRange());return r.setEnd(t,n??t.nodeValue.length),r.setStart(t,e||0),r},Ta=function(t,e,n,r){return n&&(YI(t,e,n,r,-1)||YI(t,e,n,r,1))},ij=/^(img|br|input|textarea|hr)$/i;function YI(t,e,n,r,o){for(;;){if(t==n&&e==r)return!0;if(e==(o<0?0:Mo(t))){let i=t.parentNode;if(!i||i.nodeType!=1||nE(t)||ij.test(t.nodeName)||t.contentEditable=="false")return!1;e=Vn(t)+(o<0?0:1),t=i}else if(t.nodeType==1){if(t=t.childNodes[e+(o<0?-1:0)],t.contentEditable=="false")return!1;e=o<0?Mo(t):0}else return!1}}function Mo(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function sj(t,e,n){for(let r=e==0,o=e==Mo(t);r||o;){if(t==n)return!0;let i=Vn(t);if(t=t.parentNode,!t)return!1;r=r&&i==0,o=o&&i==Mo(t)}}function nE(t){let e;for(let n=t;n&&!(e=n.pmViewDesc);n=n.parentNode);return e&&e.node&&e.node.isBlock&&(e.dom==t||e.contentDOM==t)}var dy=function(t){return t.focusNode&&Ta(t.focusNode,t.focusOffset,t.anchorNode,t.anchorOffset)};function ba(t,e){let n=document.createEvent("Event");return n.initEvent("keydown",!0,!0),n.keyCode=t,n.key=n.code=e,n}function aj(t){let e=t.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function lj(t,e,n){if(t.caretPositionFromPoint)try{let r=t.caretPositionFromPoint(e,n);if(r)return{node:r.offsetNode,offset:r.offset}}catch{}if(t.caretRangeFromPoint){let r=t.caretRangeFromPoint(e,n);if(r)return{node:r.startContainer,offset:r.startOffset}}}var Ao=typeof navigator<"u"?navigator:null,XI=typeof document<"u"?document:null,hs=Ao&&Ao.userAgent||"",_k=/Edge\/(\d+)/.exec(hs),NL=/MSIE \d/.exec(hs),Uk=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(hs),ar=!!(NL||Uk||_k),ps=NL?document.documentMode:Uk?+Uk[1]:_k?+_k[1]:0,fo=!ar&&/gecko\/(\d+)/i.test(hs);fo&&+(/Firefox\/(\d+)/.exec(hs)||[0,0])[1];var Jk=!ar&&/Chrome\/(\d+)/.exec(hs),Pn=!!Jk,uj=Jk?+Jk[1]:0,qn=!ar&&!!Ao&&/Apple Computer/.test(Ao.vendor),Iu=qn&&(/Mobile\/\w+/.test(hs)||!!Ao&&Ao.maxTouchPoints>2),Jr=Iu||(Ao?/Mac/.test(Ao.platform):!1),cj=Ao?/Win/.test(Ao.platform):!1,co=/Android \d/.test(hs),yf=!!XI&&"webkitFontSmoothing"in XI.documentElement.style,dj=yf?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function fj(t){return{left:0,right:t.documentElement.clientWidth,top:0,bottom:t.documentElement.clientHeight}}function gi(t,e){return typeof t=="number"?t:t[e]}function pj(t){let e=t.getBoundingClientRect(),n=e.width/t.offsetWidth||1,r=e.height/t.offsetHeight||1;return{left:e.left,right:e.left+t.clientWidth*n,top:e.top,bottom:e.top+t.clientHeight*r}}function QI(t,e,n){let r=t.someProp("scrollThreshold")||0,o=t.someProp("scrollMargin")||5,i=t.dom.ownerDocument;for(let s=n||t.dom;s;s=pf(s)){if(s.nodeType!=1)continue;let a=s,l=a==i.body,u=l?fj(i):pj(a),c=0,d=0;if(e.topu.bottom-gi(r,"bottom")&&(d=e.bottom-e.top>u.bottom-u.top?e.top+gi(o,"top")-u.top:e.bottom-u.bottom+gi(o,"bottom")),e.leftu.right-gi(r,"right")&&(c=e.right-u.right+gi(o,"right")),c||d)if(l)i.defaultView.scrollBy(c,d);else{let f=a.scrollLeft,p=a.scrollTop;d&&(a.scrollTop+=d),c&&(a.scrollLeft+=c);let m=a.scrollLeft-f,y=a.scrollTop-p;e={left:e.left-m,top:e.top-y,right:e.right-m,bottom:e.bottom-y}}if(l||/^(fixed|sticky)$/.test(getComputedStyle(s).position))break}}function mj(t){let e=t.dom.getBoundingClientRect(),n=Math.max(0,e.top),r,o;for(let i=(e.left+e.right)/2,s=n+1;s=n-20){r=a,o=l.top;break}}return{refDOM:r,refTop:o,stack:OL(t.dom)}}function OL(t){let e=[],n=t.ownerDocument;for(let r=t;r&&(e.push({dom:r,top:r.scrollTop,left:r.scrollLeft}),t!=n);r=pf(r));return e}function hj({refDOM:t,refTop:e,stack:n}){let r=t?t.getBoundingClientRect().top:0;PL(n,r==0?0:r-e)}function PL(t,e){for(let n=0;n=a){s=Math.max(m.bottom,s),a=Math.min(m.top,a);let y=m.left>e.left?m.left-e.left:m.right=(m.left+m.right)/2?1:0));continue}}else m.top>e.top&&!l&&m.left<=e.left&&m.right>=e.left&&(l=c,u={left:Math.max(m.left,Math.min(m.right,e.left)),top:m.top});!n&&(e.left>=m.right&&e.top>=m.top||e.left>=m.left&&e.top>=m.bottom)&&(i=d+1)}}return!n&&l&&(n=l,o=u,r=0),n&&n.nodeType==3?yj(n,o):!n||r&&n.nodeType==1?{node:t,offset:i}:ML(n,o)}function yj(t,e){let n=t.nodeValue.length,r=document.createRange();for(let o=0;o=(i.left+i.right)/2?1:0)}}return{node:t,offset:0}}function rE(t,e){return t.left>=e.left-1&&t.left<=e.right+1&&t.top>=e.top-1&&t.top<=e.bottom+1}function vj(t,e){let n=t.parentNode;return n&&/^li$/i.test(n.nodeName)&&e.left(s.left+s.right)/2?1:-1}return t.docView.posFromDOM(r,o,i)}function xj(t,e,n,r){let o=-1;for(let i=e,s=!1;i!=t.dom;){let a=t.docView.nearestDesc(i,!0);if(!a)return null;if(a.dom.nodeType==1&&(a.node.isBlock&&a.parent&&!s||!a.contentDOM)){let l=a.dom.getBoundingClientRect();if(a.node.isBlock&&a.parent&&!s&&(s=!0,l.left>r.left||l.top>r.top?o=a.posBefore:(l.right-1?o:t.docView.posFromDOM(e,n,-1)}function AL(t,e,n){let r=t.childNodes.length;if(r&&n.tope.top&&o++}let u;yf&&o&&r.nodeType==1&&(u=r.childNodes[o-1]).nodeType==1&&u.contentEditable=="false"&&u.getBoundingClientRect().top>=e.top&&o--,r==t.dom&&o==r.childNodes.length-1&&r.lastChild.nodeType==1&&e.top>r.lastChild.getBoundingClientRect().bottom?a=t.state.doc.content.size:(o==0||r.nodeType!=1||r.childNodes[o-1].nodeName!="BR")&&(a=xj(t,r,o,e))}a==null&&(a=wj(t,s,e));let l=t.docView.nearestDesc(s,!0);return{pos:a,inside:l?l.posAtStart-l.border:-1}}function ZI(t){return t.top=0&&o==r.nodeValue.length?(l--,c=1):n<0?l--:u++,cf(cs(yi(r,l,u),c),c<0)}if(!t.state.doc.resolve(e-(i||0)).parent.inlineContent){if(i==null&&o&&(n<0||o==Mo(r))){let l=r.childNodes[o-1];if(l.nodeType==1)return Lk(l.getBoundingClientRect(),!1)}if(i==null&&o=0)}if(i==null&&o&&(n<0||o==Mo(r))){let l=r.childNodes[o-1],u=l.nodeType==3?yi(l,Mo(l)-(s?0:1)):l.nodeType==1&&(l.nodeName!="BR"||!l.nextSibling)?l:null;if(u)return cf(cs(u,1),!1)}if(i==null&&o=0)}function cf(t,e){if(t.width==0)return t;let n=e?t.left:t.right;return{top:t.top,bottom:t.bottom,left:n,right:n}}function Lk(t,e){if(t.height==0)return t;let n=e?t.top:t.bottom;return{top:n,bottom:n,left:t.left,right:t.right}}function LL(t,e,n){let r=t.state,o=t.root.activeElement;r!=e&&t.updateState(e),o!=t.dom&&t.focus();try{return n()}finally{r!=e&&t.updateState(r),o!=t.dom&&o&&o.focus()}}function kj(t,e,n){let r=e.selection,o=n=="up"?r.$from:r.$to;return LL(t,e,()=>{let{node:i}=t.docView.domFromPos(o.pos,n=="up"?-1:1);for(;;){let a=t.docView.nearestDesc(i,!0);if(!a)break;if(a.node.isBlock){i=a.contentDOM||a.dom;break}i=a.dom.parentNode}let s=IL(t,o.pos,1);for(let a=i.firstChild;a;a=a.nextSibling){let l;if(a.nodeType==1)l=a.getClientRects();else if(a.nodeType==3)l=yi(a,0,a.nodeValue.length).getClientRects();else continue;for(let u=0;uc.top+1&&(n=="up"?s.top-c.top>(c.bottom-s.top)*2:c.bottom-s.bottom>(s.bottom-c.top)*2))return!1}}return!0})}var Ej=/[\u0590-\u08ac]/;function Rj(t,e,n){let{$head:r}=e.selection;if(!r.parent.isTextblock)return!1;let o=r.parentOffset,i=!o,s=o==r.parent.content.size,a=t.domSelection();return!Ej.test(r.parent.textContent)||!a.modify?n=="left"||n=="backward"?i:s:LL(t,e,()=>{let{focusNode:l,focusOffset:u,anchorNode:c,anchorOffset:d}=t.domSelectionRange(),f=a.caretBidiLevel;a.modify("move",n,"character");let p=r.depth?t.docView.domAfterPos(r.before()):t.dom,{focusNode:m,focusOffset:y}=t.domSelectionRange(),v=m&&!p.contains(m.nodeType==1?m:m.parentNode)||l==m&&u==y;try{a.collapse(c,d),l&&(l!=c||u!=d)&&a.extend&&a.extend(l,u)}catch{}return f!=null&&(a.caretBidiLevel=f),v})}var eL=null,tL=null,nL=!1;function Cj(t,e,n){return eL==e&&tL==n?nL:(eL=e,tL=n,nL=n=="up"||n=="down"?kj(t,e,n):Rj(t,e,n))}var zr=0,rL=1,Sa=2,Io=3,Na=class{constructor(e,n,r,o){this.parent=e,this.children=n,this.dom=r,this.contentDOM=o,this.dirty=zr,r.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,n,r){return!1}matchesHack(e){return!1}parseRule(){return null}stopEvent(e){return!1}get size(){let e=0;for(let n=0;nVn(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))o=e.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(n==0)for(let i=e;;i=i.parentNode){if(i==this.dom){o=!1;break}if(i.previousSibling)break}if(o==null&&n==e.childNodes.length)for(let i=e;;i=i.parentNode){if(i==this.dom){o=!0;break}if(i.nextSibling)break}}return o??r>0?this.posAtEnd:this.posAtStart}nearestDesc(e,n=!1){for(let r=!0,o=e;o;o=o.parentNode){let i=this.getDesc(o),s;if(i&&(!n||i.node))if(r&&(s=i.nodeDOM)&&!(s.nodeType==1?s.contains(e.nodeType==1?e:e.parentNode):s==e))r=!1;else return i}}getDesc(e){let n=e.pmViewDesc;for(let r=n;r;r=r.parent)if(r==this)return n}posFromDOM(e,n,r){for(let o=e;o;o=o.parentNode){let i=this.getDesc(o);if(i)return i.localPosFromDOM(e,n,r)}return-1}descAt(e){for(let n=0,r=0;ne||s instanceof ry){o=e-i;break}i=a}if(o)return this.children[r].domFromPos(o-this.children[r].border,n);for(let i;r&&!(i=this.children[r-1]).size&&i instanceof ty&&i.side>=0;r--);if(n<=0){let i,s=!0;for(;i=r?this.children[r-1]:null,!(!i||i.dom.parentNode==this.contentDOM);r--,s=!1);return i&&n&&s&&!i.border&&!i.domAtom?i.domFromPos(i.size,n):{node:this.contentDOM,offset:i?Vn(i.dom)+1:0}}else{let i,s=!0;for(;i=r=c&&n<=u-l.border&&l.node&&l.contentDOM&&this.contentDOM.contains(l.contentDOM))return l.parseRange(e,n,c);e=s;for(let d=a;d>0;d--){let f=this.children[d-1];if(f.size&&f.dom.parentNode==this.contentDOM&&!f.emptyChildAt(1)){o=Vn(f.dom)+1;break}e-=f.size}o==-1&&(o=0)}if(o>-1&&(u>n||a==this.children.length-1)){n=u;for(let c=a+1;cp&&s(a.delete(r.pos-2,r.pos),!0)).exitCode().run()},ArrowDown:({editor:t})=>{if(!this.options.exitOnArrowDown)return!1;let{state:e}=t,{selection:n,doc:r}=e,{$from:o,empty:i}=n;if(!i||o.parent.type!==this.type||!(o.parentOffset===o.parent.nodeSize-2))return!1;let a=o.after();return a===void 0||r.nodeAt(a)?!1:t.commands.exitCode()}}},addInputRules(){return[xf({find:ZK,type:this.type,getAttributes:t=>({language:t[1]})}),xf({find:eY,type:this.type,getAttributes:t=>({language:t[1]})})]},addProseMirrorPlugins(){return[new st({key:new Bt("codeBlockVSCodeHandler"),props:{handlePaste:(t,e)=>{if(!e.clipboardData||this.editor.isActive(this.type.name))return!1;let n=e.clipboardData.getData("text/plain"),r=e.clipboardData.getData("vscode-editor-data"),o=r?JSON.parse(r):void 0,i=o?.mode;if(!n||!i)return!1;let{tr:s}=t.state;return s.replaceSelectionWith(this.type.create({language:i})),s.setSelection(De.near(s.doc.resolve(Math.max(0,s.selection.from-2)))),s.insertText(n.replace(/\r\n?/g,` `)),s.setMeta("paste",!0),t.dispatch(s),!0}}})]}});var kC={exports:{}};function EC(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw new Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw new Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(function(e){var n=t[e];typeof n=="object"&&!Object.isFrozen(n)&&EC(n)}),t}kC.exports=EC;kC.exports.default=EC;var A0=class{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function nU(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Is(t,...e){let n=Object.create(null);for(let r in t)n[r]=t[r];return e.forEach(function(r){for(let o in r)n[o]=r[o]}),n}var tY="",W3=t=>!!t.scope||t.sublanguage&&t.language,nY=(t,{prefix:e})=>{if(t.includes(".")){let n=t.split(".");return[`${e}${n.shift()}`,...n.map((r,o)=>`${r}${"_".repeat(o+1)}`)].join(" ")}return`${e}${t}`},wC=class{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=nU(e)}openNode(e){if(!W3(e))return;let n="";e.sublanguage?n=`language-${e.language}`:n=nY(e.scope,{prefix:this.classPrefix}),this.span(n)}closeNode(e){W3(e)&&(this.buffer+=tY)}value(){return this.buffer}span(e){this.buffer+=``}},K3=(t={})=>{let e={children:[]};return Object.assign(e,t),e},xC=class t{constructor(){this.rootNode=K3(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let n=K3({scope:e});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return typeof n=="string"?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(r=>this._walk(e,r)),e.closeNode(n)),e}static _collapse(e){typeof e!="string"&&e.children&&(e.children.every(n=>typeof n=="string")?e.children=[e.children.join("")]:e.children.forEach(n=>{t._collapse(n)}))}},bC=class extends xC{constructor(e){super(),this.options=e}addKeyword(e,n){e!==""&&(this.openNode(n),this.addText(e),this.closeNode())}addText(e){e!==""&&this.add(e)}addSublanguage(e,n){let r=e.root;r.sublanguage=!0,r.language=n,this.add(r)}toHTML(){return new wC(this,this.options).value()}finalize(){return!0}};function ep(t){return t?typeof t=="string"?t:t.source:null}function rU(t){return ol("(?=",t,")")}function rY(t){return ol("(?:",t,")*")}function oY(t){return ol("(?:",t,")?")}function ol(...t){return t.map(n=>ep(n)).join("")}function iY(t){let e=t[t.length-1];return typeof e=="object"&&e.constructor===Object?(t.splice(t.length-1,1),e):{}}function RC(...t){return"("+(iY(t).capture?"":"?:")+t.map(r=>ep(r)).join("|")+")"}function oU(t){return new RegExp(t.toString()+"|").exec("").length-1}function sY(t,e){let n=t&&t.exec(e);return n&&n.index===0}var aY=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function CC(t,{joinWith:e}){let n=0;return t.map(r=>{n+=1;let o=n,i=ep(r),s="";for(;i.length>0;){let a=aY.exec(i);if(!a){s+=i;break}s+=i.substring(0,a.index),i=i.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?s+="\\"+String(Number(a[1])+o):(s+=a[0],a[0]==="("&&n++)}return s}).map(r=>`(${r})`).join(e)}var lY=/\b\B/,iU="[a-zA-Z]\\w*",TC="[a-zA-Z_]\\w*",sU="\\b\\d+(\\.\\d+)?",aU="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",lU="\\b(0b[01]+)",uY="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",cY=(t={})=>{let e=/^#![ ]*\//;return t.binary&&(t.begin=ol(e,/.*\b/,t.binary,/\b.*/)),Is({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},t)},tp={begin:"\\\\[\\s\\S]",relevance:0},dY={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[tp]},fY={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[tp]},pY={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},L0=function(t,e,n={}){let r=Is({scope:"comment",begin:t,end:e,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let o=RC("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:ol(/[ ]+/,"(",o,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},mY=L0("//","$"),hY=L0("/\\*","\\*/"),gY=L0("#","$"),yY={scope:"number",begin:sU,relevance:0},vY={scope:"number",begin:aU,relevance:0},wY={scope:"number",begin:lU,relevance:0},xY={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[tp,{begin:/\[/,end:/\]/,relevance:0,contains:[tp]}]}]},bY={scope:"title",begin:iU,relevance:0},SY={scope:"title",begin:TC,relevance:0},kY={begin:"\\.\\s*"+TC,relevance:0},EY=function(t){return Object.assign(t,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})},M0=Object.freeze({__proto__:null,MATCH_NOTHING_RE:lY,IDENT_RE:iU,UNDERSCORE_IDENT_RE:TC,NUMBER_RE:sU,C_NUMBER_RE:aU,BINARY_NUMBER_RE:lU,RE_STARTERS_RE:uY,SHEBANG:cY,BACKSLASH_ESCAPE:tp,APOS_STRING_MODE:dY,QUOTE_STRING_MODE:fY,PHRASAL_WORDS_MODE:pY,COMMENT:L0,C_LINE_COMMENT_MODE:mY,C_BLOCK_COMMENT_MODE:hY,HASH_COMMENT_MODE:gY,NUMBER_MODE:yY,C_NUMBER_MODE:vY,BINARY_NUMBER_MODE:wY,REGEXP_MODE:xY,TITLE_MODE:bY,UNDERSCORE_TITLE_MODE:SY,METHOD_GUARD:kY,END_SAME_AS_BEGIN:EY});function RY(t,e){t.input[t.index-1]==="."&&e.ignoreMatch()}function CY(t,e){t.className!==void 0&&(t.scope=t.className,delete t.className)}function TY(t,e){e&&t.beginKeywords&&(t.begin="\\b("+t.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",t.__beforeBegin=RY,t.keywords=t.keywords||t.beginKeywords,delete t.beginKeywords,t.relevance===void 0&&(t.relevance=0))}function NY(t,e){Array.isArray(t.illegal)&&(t.illegal=RC(...t.illegal))}function OY(t,e){if(t.match){if(t.begin||t.end)throw new Error("begin & end are not supported with match");t.begin=t.match,delete t.match}}function PY(t,e){t.relevance===void 0&&(t.relevance=1)}var MY=(t,e)=>{if(!t.beforeMatch)return;if(t.starts)throw new Error("beforeMatch cannot be used with starts");let n=Object.assign({},t);Object.keys(t).forEach(r=>{delete t[r]}),t.keywords=n.keywords,t.begin=ol(n.beforeMatch,rU(n.begin)),t.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},t.relevance=0,delete n.beforeMatch},AY=["of","and","for","in","not","or","if","then","parent","list","value"],IY="keyword";function uU(t,e,n=IY){let r=Object.create(null);return typeof t=="string"?o(n,t.split(" ")):Array.isArray(t)?o(n,t):Object.keys(t).forEach(function(i){Object.assign(r,uU(t[i],e,i))}),r;function o(i,s){e&&(s=s.map(a=>a.toLowerCase())),s.forEach(function(a){let l=a.split("|");r[l[0]]=[i,LY(l[0],l[1])]})}}function LY(t,e){return e?Number(e):DY(t)?0:1}function DY(t){return AY.includes(t.toLowerCase())}var Y3={},rl=t=>{console.error(t)},X3=(t,...e)=>{console.log(`WARN: ${t}`,...e)},vc=(t,e)=>{Y3[`${t}/${e}`]||(console.log(`Deprecated as of ${t}. ${e}`),Y3[`${t}/${e}`]=!0)},I0=new Error;function cU(t,e,{key:n}){let r=0,o=t[n],i={},s={};for(let a=1;a<=e.length;a++)s[a+r]=o[a],i[a+r]=!0,r+=oU(e[a-1]);t[n]=s,t[n]._emit=i,t[n]._multi=!0}function FY(t){if(Array.isArray(t.begin)){if(t.skip||t.excludeBegin||t.returnBegin)throw rl("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),I0;if(typeof t.beginScope!="object"||t.beginScope===null)throw rl("beginScope must be object"),I0;cU(t,t.begin,{key:"beginScope"}),t.begin=CC(t.begin,{joinWith:""})}}function BY(t){if(Array.isArray(t.end)){if(t.skip||t.excludeEnd||t.returnEnd)throw rl("skip, excludeEnd, returnEnd not compatible with endScope: {}"),I0;if(typeof t.endScope!="object"||t.endScope===null)throw rl("endScope must be object"),I0;cU(t,t.end,{key:"endScope"}),t.end=CC(t.end,{joinWith:""})}}function _Y(t){t.scope&&typeof t.scope=="object"&&t.scope!==null&&(t.beginScope=t.scope,delete t.scope)}function UY(t){_Y(t),typeof t.beginScope=="string"&&(t.beginScope={_wrap:t.beginScope}),typeof t.endScope=="string"&&(t.endScope={_wrap:t.endScope}),FY(t),BY(t)}function JY(t){function e(s,a){return new RegExp(ep(s),"m"+(t.case_insensitive?"i":"")+(t.unicodeRegex?"u":"")+(a?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,a]),this.matchAt+=oU(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let a=this.regexes.map(l=>l[1]);this.matcherRe=e(CC(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;let l=this.matcherRe.exec(a);if(!l)return null;let u=l.findIndex((d,f)=>f>0&&d!==void 0),c=this.matchIndexes[u];return l.splice(0,u),Object.assign(l,c)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];let l=new n;return this.rules.slice(a).forEach(([u,c])=>l.addRule(u,c)),l.compile(),this.multiRegexes[a]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,l){this.rules.push([a,l]),l.type==="begin"&&this.count++}exec(a){let l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let u=l.exec(a);if(this.resumingScanAtSamePosition()&&!(u&&u.index===this.lastIndex)){let c=this.getMatcher(0);c.lastIndex=this.lastIndex+1,u=c.exec(a)}return u&&(this.regexIndex+=u.position+1,this.regexIndex===this.count&&this.considerAll()),u}}function o(s){let a=new r;return s.contains.forEach(l=>a.addRule(l.begin,{rule:l,type:"begin"})),s.terminatorEnd&&a.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&a.addRule(s.illegal,{type:"illegal"}),a}function i(s,a){let l=s;if(s.isCompiled)return l;[CY,OY,UY,MY].forEach(c=>c(s,a)),t.compilerExtensions.forEach(c=>c(s,a)),s.__beforeBegin=null,[TY,NY,PY].forEach(c=>c(s,a)),s.isCompiled=!0;let u=null;return typeof s.keywords=="object"&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),u=s.keywords.$pattern,delete s.keywords.$pattern),u=u||/\w+/,s.keywords&&(s.keywords=uU(s.keywords,t.case_insensitive)),l.keywordPatternRe=e(u,!0),a&&(s.begin||(s.begin=/\B|\b/),l.beginRe=e(l.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(l.endRe=e(l.end)),l.terminatorEnd=ep(l.end)||"",s.endsWithParent&&a.terminatorEnd&&(l.terminatorEnd+=(s.end?"|":"")+a.terminatorEnd)),s.illegal&&(l.illegalRe=e(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map(function(c){return zY(c==="self"?s:c)})),s.contains.forEach(function(c){i(c,l)}),s.starts&&i(s.starts,a),l.matcher=o(l),l}if(t.compilerExtensions||(t.compilerExtensions=[]),t.contains&&t.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return t.classNameAliases=Is(t.classNameAliases||{}),i(t)}function dU(t){return t?t.endsWithParent||dU(t.starts):!1}function zY(t){return t.variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(e){return Is(t,{variants:null},e)})),t.cachedVariants?t.cachedVariants:dU(t)?Is(t,{starts:t.starts?Is(t.starts):null}):Object.isFrozen(t)?Is(t):t}var VY="11.6.0",SC=class extends Error{constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}},vC=nU,Q3=Is,Z3=Symbol("nomatch"),qY=7,jY=function(t){let e=Object.create(null),n=Object.create(null),r=[],o=!0,i="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]},a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:bC};function l(B){return a.noHighlightRe.test(B)}function u(B){let N=B.className+" ";N+=B.parentNode?B.parentNode.className:"";let F=a.languageDetectRe.exec(N);if(F){let G=P(F[1]);return G||(X3(i.replace("{}",F[1])),X3("Falling back to no-highlight mode for this block.",B)),G?F[1]:"no-highlight"}return N.split(/\s+/).find(G=>l(G)||P(G))}function c(B,N,F){let G="",E="";typeof N=="object"?(G=B,F=N.ignoreIllegals,E=N.language):(vc("10.7.0","highlight(lang, code, ...args) has been deprecated."),vc("10.7.0",`Please use highlight(code, options) instead. https://github.com/highlightjs/highlight.js/issues/2277`),E=B,G=N),F===void 0&&(F=!0);let le={code:G,language:E};z("before:highlight",le);let xe=le.result?le.result:d(le.language,le.code,F);return xe.code=le.code,z("after:highlight",xe),xe}function d(B,N,F,G){let E=Object.create(null);function le($,te){return $.keywords[te]}function xe(){if(!ge.keywords){R.addText(_);return}let $=0;ge.keywordPatternRe.lastIndex=0;let te=ge.keywordPatternRe.exec(_),C="";for(;te;){C+=_.substring($,te.index);let L=wt.case_insensitive?te[0].toLowerCase():te[0],K=le(ge,L);if(K){let[ie,be]=K;if(R.addText(C),C="",E[L]=(E[L]||0)+1,E[L]<=qY&&(V+=be),ie.startsWith("_"))C+=te[0];else{let Ke=wt.classNameAliases[ie]||ie;R.addKeyword(te[0],Ke)}}else C+=te[0];$=ge.keywordPatternRe.lastIndex,te=ge.keywordPatternRe.exec(_)}C+=_.substring($),R.addText(C)}function O(){if(_==="")return;let $=null;if(typeof ge.subLanguage=="string"){if(!e[ge.subLanguage]){R.addText(_);return}$=d(ge.subLanguage,_,!0,Ln[ge.subLanguage]),Ln[ge.subLanguage]=$._top}else $=p(_,ge.subLanguage.length?ge.subLanguage:null);ge.relevance>0&&(V+=$.relevance),R.addSublanguage($._emitter,$.language)}function Ne(){ge.subLanguage!=null?O():xe(),_=""}function Oe($,te){let C=1,L=te.length-1;for(;C<=L;){if(!$._emit[C]){C++;continue}let K=wt.classNameAliases[$[C]]||$[C],ie=te[C];K?R.addKeyword(ie,K):(_=ie,xe(),_=""),C++}}function We($,te){return $.scope&&typeof $.scope=="string"&&R.openNode(wt.classNameAliases[$.scope]||$.scope),$.beginScope&&($.beginScope._wrap?(R.addKeyword(_,wt.classNameAliases[$.beginScope._wrap]||$.beginScope._wrap),_=""):$.beginScope._multi&&(Oe($.beginScope,te),_="")),ge=Object.create($,{parent:{value:ge}}),ge}function Tt($,te,C){let L=sY($.endRe,C);if(L){if($["on:end"]){let K=new A0($);$["on:end"](te,K),K.isMatchIgnored&&(L=!1)}if(L){for(;$.endsParent&&$.parent;)$=$.parent;return $}}if($.endsWithParent)return Tt($.parent,te,C)}function qe($){return ge.matcher.regexIndex===0?(_+=$[0],1):(Q=!0,0)}function At($){let te=$[0],C=$.rule,L=new A0(C),K=[C.__beforeBegin,C["on:begin"]];for(let ie of K)if(ie&&(ie($,L),L.isMatchIgnored))return qe(te);return C.skip?_+=te:(C.excludeBegin&&(_+=te),Ne(),!C.returnBegin&&!C.excludeBegin&&(_=te)),We(C,$),C.returnBegin?0:te.length}function at($){let te=$[0],C=N.substring($.index),L=Tt(ge,$,C);if(!L)return Z3;let K=ge;ge.endScope&&ge.endScope._wrap?(Ne(),R.addKeyword(te,ge.endScope._wrap)):ge.endScope&&ge.endScope._multi?(Ne(),Oe(ge.endScope,$)):K.skip?_+=te:(K.returnEnd||K.excludeEnd||(_+=te),Ne(),K.excludeEnd&&(_=te));do ge.scope&&R.closeNode(),!ge.skip&&!ge.subLanguage&&(V+=ge.relevance),ge=ge.parent;while(ge!==L.parent);return L.starts&&We(L.starts,$),K.returnEnd?0:te.length}function Wt(){let $=[];for(let te=ge;te!==wt;te=te.parent)te.scope&&$.unshift(te.scope);$.forEach(te=>R.openNode(te))}let Nt={};function bn($,te){let C=te&&te[0];if(_+=$,C==null)return Ne(),0;if(Nt.type==="begin"&&te.type==="end"&&Nt.index===te.index&&C===""){if(_+=N.slice(te.index,te.index+1),!o){let L=new Error(`0 width match regex (${B})`);throw L.languageName=B,L.badRule=Nt.rule,L}return 1}if(Nt=te,te.type==="begin")return At(te);if(te.type==="illegal"&&!F){let L=new Error('Illegal lexeme "'+C+'" for mode "'+(ge.scope||"")+'"');throw L.mode=ge,L}else if(te.type==="end"){let L=at(te);if(L!==Z3)return L}if(te.type==="illegal"&&C==="")return 1;if(Z>1e5&&Z>te.index*3)throw new Error("potential infinite loop, way more iterations than matches");return _+=C,C.length}let wt=P(B);if(!wt)throw rl(i.replace("{}",B)),new Error('Unknown language: "'+B+'"');let Qn=JY(wt),mt="",ge=G||Qn,Ln={},R=new a.__emitter(a);Wt();let _="",V=0,X=0,Z=0,Q=!1;try{for(ge.matcher.considerAll();;){Z++,Q?Q=!1:ge.matcher.considerAll(),ge.matcher.lastIndex=X;let $=ge.matcher.exec(N);if(!$)break;let te=N.substring(X,$.index),C=bn(te,$);X=$.index+C}return bn(N.substring(X)),R.closeAllNodes(),R.finalize(),mt=R.toHTML(),{language:B,value:mt,relevance:V,illegal:!1,_emitter:R,_top:ge}}catch($){if($.message&&$.message.includes("Illegal"))return{language:B,value:vC(N),illegal:!0,relevance:0,_illegalBy:{message:$.message,index:X,context:N.slice(X-100,X+100),mode:$.mode,resultSoFar:mt},_emitter:R};if(o)return{language:B,value:vC(N),illegal:!1,relevance:0,errorRaised:$,_emitter:R,_top:ge};throw $}}function f(B){let N={value:vC(B),illegal:!1,relevance:0,_top:s,_emitter:new a.__emitter(a)};return N._emitter.addText(B),N}function p(B,N){N=N||a.languages||Object.keys(e);let F=f(B),G=N.filter(P).filter(q).map(Ne=>d(Ne,B,!1));G.unshift(F);let E=G.sort((Ne,Oe)=>{if(Ne.relevance!==Oe.relevance)return Oe.relevance-Ne.relevance;if(Ne.language&&Oe.language){if(P(Ne.language).supersetOf===Oe.language)return 1;if(P(Oe.language).supersetOf===Ne.language)return-1}return 0}),[le,xe]=E,O=le;return O.secondBest=xe,O}function m(B,N,F){let G=N&&n[N]||F;B.classList.add("hljs"),B.classList.add(`language-${G}`)}function y(B){let N=null,F=u(B);if(l(F))return;if(z("before:highlightElement",{el:B,language:F}),B.children.length>0&&(a.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(B)),a.throwUnescapedHTML))throw new SC("One of your code blocks includes unescaped HTML.",B.innerHTML);N=B;let G=N.textContent,E=F?c(G,{language:F,ignoreIllegals:!0}):p(G);B.innerHTML=E.value,m(B,F,E.language),B.result={language:E.language,re:E.relevance,relevance:E.relevance},E.secondBest&&(B.secondBest={language:E.secondBest.language,relevance:E.secondBest.relevance}),z("after:highlightElement",{el:B,result:E,text:G})}function v(B){a=Q3(a,B)}let g=()=>{b(),vc("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function w(){b(),vc("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let S=!1;function b(){if(document.readyState==="loading"){S=!0;return}document.querySelectorAll(a.cssSelector).forEach(y)}function k(){S&&b()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",k,!1);function x(B,N){let F=null;try{F=N(t)}catch(G){if(rl("Language definition for '{}' could not be registered.".replace("{}",B)),o)rl(G);else throw G;F=s}F.name||(F.name=B),e[B]=F,F.rawDefinition=N.bind(null,t),F.aliases&&J(F.aliases,{languageName:B})}function M(B){delete e[B];for(let N of Object.keys(n))n[N]===B&&delete n[N]}function T(){return Object.keys(e)}function P(B){return B=(B||"").toLowerCase(),e[B]||e[n[B]]}function J(B,{languageName:N}){typeof B=="string"&&(B=[B]),B.forEach(F=>{n[F.toLowerCase()]=N})}function q(B){let N=P(B);return N&&!N.disableAutodetect}function A(B){B["before:highlightBlock"]&&!B["before:highlightElement"]&&(B["before:highlightElement"]=N=>{B["before:highlightBlock"](Object.assign({block:N.el},N))}),B["after:highlightBlock"]&&!B["after:highlightElement"]&&(B["after:highlightElement"]=N=>{B["after:highlightBlock"](Object.assign({block:N.el},N))})}function D(B){A(B),r.push(B)}function z(B,N){let F=B;r.forEach(function(G){G[F]&&G[F](N)})}function H(B){return vc("10.7.0","highlightBlock will be removed entirely in v12.0"),vc("10.7.0","Please use highlightElement now."),y(B)}Object.assign(t,{highlight:c,highlightAuto:p,highlightAll:b,highlightElement:y,highlightBlock:H,configure:v,initHighlighting:g,initHighlightingOnLoad:w,registerLanguage:x,unregisterLanguage:M,listLanguages:T,getLanguage:P,registerAliases:J,autoDetection:q,inherit:Q3,addPlugin:D}),t.debugMode=function(){o=!1},t.safeMode=function(){o=!0},t.versionString=VY,t.regex={concat:ol,lookahead:rU,either:RC,optional:oY,anyNumberOfTimes:rY};for(let B in M0)typeof M0[B]=="object"&&kC.exports(M0[B]);return Object.assign(t,M0),t},np=jY({}),HY=np;np.HighlightJS=np;np.default=np;var $Y=HY;function fU(t,e=[]){return t.map(n=>{let r=[...e,...n.properties?n.properties.className:[]];return n.children?fU(n.children,r):{text:n.value,classes:r}}).flat()}function eU(t){return t.value||t.children||[]}function GY(t){return!!$Y.getLanguage(t)}function tU({doc:t,name:e,lowlight:n,defaultLanguage:r}){let o=[];return Oy(t,i=>i.type.name===e).forEach(i=>{let s=i.pos+1,a=i.node.attrs.language||r,l=n.listLanguages(),u=a&&(l.includes(a)||GY(a))?eU(n.highlight(a,i.node.textContent)):eU(n.highlightAuto(i.node.textContent));fU(u).forEach(c=>{let d=s+c.text.length;if(c.classes.length){let f=Lo.inline(s,d,{class:c.classes.join(" ")});o.push(f)}s=d})}),lr.create(t,o)}function WY(t){return typeof t=="function"}function KY({name:t,lowlight:e,defaultLanguage:n}){if(!["highlight","highlightAuto","listLanguages"].every(o=>WY(e[o])))throw Error("You should provide an instance of lowlight to use the code-block-lowlight extension");let r=new st({key:new Bt("lowlight"),state:{init:(o,{doc:i})=>tU({doc:i,name:t,lowlight:e,defaultLanguage:n}),apply:(o,i,s,a)=>{let l=s.selection.$head.parent.type.name,u=a.selection.$head.parent.type.name,c=Oy(s.doc,f=>f.type.name===t),d=Oy(a.doc,f=>f.type.name===t);return o.docChanged&&([l,u].includes(t)||d.length!==c.length||o.steps.some(f=>f.from!==void 0&&f.to!==void 0&&c.some(p=>p.pos>=f.from&&p.pos+p.node.nodeSize<=f.to)))?tU({doc:o.doc,name:t,lowlight:e,defaultLanguage:n}):i.map(o.mapping,o.doc)}},props:{decorations(o){return r.getState(o)}}});return r}var pU=G3.extend({addOptions(){var t;return{...(t=this.parent)===null||t===void 0?void 0:t.call(this),lowlight:{},defaultLanguage:null}},addProseMirrorPlugins(){var t;return[...((t=this.parent)===null||t===void 0?void 0:t.call(this))||[],KY({name:this.name,lowlight:this.options.lowlight,defaultLanguage:this.options.defaultLanguage})]}});var Pi=Y(we(),1),mU=({node:{attrs:{language:t}},updateAttributes:e,extension:n})=>(0,Pi.jsxs)(zy,{className:"code-block",children:[(0,Pi.jsxs)("select",{contentEditable:!1,defaultValue:t,onChange:r=>e({language:r.target.value}),children:[(0,Pi.jsx)("option",{value:"null",children:"auto"}),(0,Pi.jsx)("option",{disabled:!0,children:"\u2014"}),n.options.lowlight.listLanguages().map((r,o)=>(0,Pi.jsx)("option",{value:r,children:r},o))]}),(0,Pi.jsx)("pre",{children:(0,Pi.jsx)(TF,{as:"code"})})]});function hU(t={}){return new st({view(e){return new NC(e,t)}})}var NC=class{constructor(e,n){var r;this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=(r=n.width)!==null&&r!==void 0?r:1,this.color=n.color===!1?void 0:n.color||"black",this.class=n.class,this.handlers=["dragover","dragend","drop","dragleave"].map(o=>{let i=s=>{this[o](s)};return e.dom.addEventListener(o,i),{name:o,handler:i}})}destroy(){this.handlers.forEach(({name:e,handler:n})=>this.editorView.dom.removeEventListener(e,n))}update(e,n){this.cursorPos!=null&&n.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),n=!e.parent.inlineContent,r;if(n){let a=e.nodeBefore,l=e.nodeAfter;if(a||l){let u=this.editorView.nodeDOM(this.cursorPos-(a?a.nodeSize:0));if(u){let c=u.getBoundingClientRect(),d=a?c.bottom:c.top;a&&l&&(d=(d+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2),r={left:c.left,right:c.right,top:d-this.width/2,bottom:d+this.width/2}}}}if(!r){let a=this.editorView.coordsAtPos(this.cursorPos);r={left:a.left-this.width/2,right:a.left+this.width/2,top:a.top,bottom:a.bottom}}let o=this.editorView.dom.offsetParent;this.element||(this.element=o.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",n),this.element.classList.toggle("prosemirror-dropcursor-inline",!n);let i,s;if(!o||o==document.body&&getComputedStyle(o).position=="static")i=-pageXOffset,s=-pageYOffset;else{let a=o.getBoundingClientRect();i=a.left-o.scrollLeft,s=a.top-o.scrollTop}this.element.style.left=r.left-i+"px",this.element.style.top=r.top-s+"px",this.element.style.width=r.right-r.left+"px",this.element.style.height=r.bottom-r.top+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let n=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),r=n&&n.inside>=0&&this.editorView.state.doc.nodeAt(n.inside),o=r&&r.type.spec.disableDropCursor,i=typeof o=="function"?o(this.editorView,n,e):o;if(n&&!i){let s=n.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let a=Yg(this.editorView.state.doc,s,this.editorView.dragging.slice);a!=null&&(s=a)}this.setCursor(s),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){(e.target==this.editorView.dom||!this.editorView.dom.contains(e.relatedTarget))&&this.setCursor(null)}};var gU=ur.create({name:"dropCursor",addOptions(){return{color:"currentColor",width:1,class:void 0}},addProseMirrorPlugins(){return[hU(this.options)]}});var Nr=Y(Ee(),1);var YY=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,yU=_t.create({name:"image",addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{}}},inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:t}){return["img",tt(this.options.HTMLAttributes,t)]},addCommands(){return{setImage:t=>({commands:e})=>e.insertContent({type:this.name,attrs:t})}},addInputRules(){return[BD({find:YY,type:this.type,getAttributes:t=>{let[,,e,n,r]=t;return{src:n,alt:e,title:r}}})]}});var $o=Y(we(),1),XY=t=>{let e=(0,Nr.useRef)(null);return(0,Nr.useLayoutEffect)(()=>{e.current=t},[t]),(0,Nr.useCallback)((...n)=>{if(e.current===null)throw new Error("Handler is not assigned");return e.current(...n)},[])},QY=60,vU="#0096fd",ZY=({node:t,updateAttributes:e})=>{let n=(0,Nr.useRef)(null),r=(0,Nr.useRef)(null),[o,i]=(0,Nr.useState)(!1),[s,a]=(0,Nr.useState)();(0,Nr.useEffect)(()=>{let c=d=>{n.current&&!n.current.contains(d.target)&&i(!1)};return document.addEventListener("click",c),()=>{document.removeEventListener("click",c)}},[o]);let l=XY(c=>{if(!r.current)return;c.preventDefault();let d=c.currentTarget.dataset.direction||"--",f=c.clientX,p=r.current.width,m=p,y=d[1]==="w"?-1:1,v=()=>{window.removeEventListener("mousemove",g),window.removeEventListener("mouseup",v),e({width:m}),a(void 0)},g=w=>{m=Math.max(p+y*(w.clientX-f),QY),a({width:m}),w.buttons||v()};window.addEventListener("mousemove",g),window.addEventListener("mouseup",v)}),u=c=>(0,$o.jsx)("div",{role:"button",tabIndex:0,onMouseDown:l,"data-direction":c,style:{position:"absolute",height:"10px",width:"10px",backgroundColor:vU,...{n:{top:0},s:{bottom:0}}[c[0]],...{w:{left:0},e:{right:0}}[c[1]],cursor:`${c}-resize`}});return(0,$o.jsx)(zy,{ref:n,as:"div",draggable:!0,"data-drag-handle":!0,onClick:()=>i(!0),onBlur:()=>i(!1),children:(0,$o.jsxs)("div",{style:{overflow:"hidden",position:"relative",display:"inline-block",lineHeight:"0px"},children:[(0,$o.jsx)("img",{...t.attrs,ref:r,style:{...s,cursor:"default"}}),o&&(0,$o.jsxs)($o.Fragment,{children:[[{left:0,top:0,height:"100%",width:"1px"},{right:0,top:0,height:"100%",width:"1px"},{top:0,left:0,width:"100%",height:"1px"},{bottom:0,left:0,width:"100%",height:"1px"}].map((c,d)=>(0,$o.jsx)("div",{style:{position:"absolute",backgroundColor:vU,...c}},d)),u("nw"),u("ne"),u("sw"),u("se")]})]})})},wU=yU.extend({addAttributes(){return{...this.parent?.(),width:{renderHTML:({width:t})=>({width:t})},height:{renderHTML:({height:t})=>({height:t})}}},addNodeView(){return Vy(ZY)}}).configure({inline:!0});var me=Y(we(),1),wc=yC();wc.register({html:S3});wc.register({css:l3});wc.register({js:p3});wc.register({ts:b3});wc.register({go:k3});var bU=({})=>{let t=(0,Yn.useRef)(null),{editedContent:e,editContent:n,selectedContent:r,newContent:o,setNewContent:i,changeContent:s}=fa(),{getSources:a}=da(),[l,u]=Lt(hc),{fields:c,loadFormTypes:d}=v0(),f=mc(),{setValue:p}=f,m=(0,Yn.useRef)(void 0),[y,v]=(0,Yn.useState)([]);(0,Yn.useEffect)(()=>(d(),u(f),()=>{m.current&&m.current.abort()}),[]),(0,Yn.useEffect)(()=>{e&&p("data",e.toJson())},[e]);let g=A=>{setTimeout(()=>{k&&k.commands.setContent(xU(A))})};(0,Yn.useEffect)(()=>{o&&(e&&g(e),i(!1))},[o,e]),(0,Yn.useEffect)(()=>{r&&(p("data",r.toJson()),g(r),n(r))},[r]);let w=async A=>{e&&n(new Qe({...e,tags:[...e.tags,A]}))},S=async A=>{e&&n(new Qe({...e,tags:e.tags.filter(D=>D!==A)}))},b=async A=>{m.current&&m.current.abort();let D=new AbortController;m.current=D;try{let z=Ft.infer({prompt:A},{timeoutMs:void 0,signal:D.signal});for await(let H of z){let B=H.text?.split(` -`);if(B)for(let N=0;N{if(localStorage.setItem(pk,A.getHTML()),e)switch(e.type.case){case"post":e.type.value.content=A?.getHTML()||"",n(new Qe({...e,type:{case:"post",value:e.type.value}}));break}},content:xU(e),editorProps:{handleKeyDown:(A,D)=>D.key==="Tab"?(D.preventDefault(),k===null?!1:(D.preventDefault(),D.shiftKey?k.chain().focus().liftListItem("listItem").run():k.chain().focus().sinkListItem("listItem").run(),!0)):!1}}),x=()=>{if(!l)return;let A=Za(l.getValues().data);try{return Qe.fromJson(A)}catch(D){return console.error("failed to parse content",D,"data",Za(A)),e}},M=async()=>{try{let A=await Ft.save({content:x(),related:[]});a(),Xe.success("Saved content")}catch(A){Xe.error("Failed to save content"),console.error("failed to save",A)}},T=()=>{m.current?.abort()},P=()=>{k&&k.commands.setContent("")},J=()=>{let A=window.prompt("URL");A&&k&&(k.chain().focus().setImage({src:A}).run(),v([...y,A]))},q=()=>{if(!k)return"";let{view:A,state:D}=k,{from:z,to:H}=A.state.selection,B=D.doc.textBetween(z,H,"");return k.commands.setTextSelection({from:H,to:H}),k.commands.enter(),B};return(0,me.jsxs)("div",{className:"sm:mx-4 lg:mx-16",children:[(0,me.jsxs)("div",{className:"mb-32 flex flex-col",children:[(0,me.jsxs)("div",{className:"flex flex-row justify-between",children:[(0,me.jsx)("span",{children:e?.tags.map(A=>(0,me.jsx)("span",{className:"badge badge-outline badge-sm",onClick:()=>S(A),children:A},A))}),(0,me.jsx)("button",{onClick:()=>t.current?.showModal(),children:(0,me.jsx)(p1,{className:"h-6 w-6"})})]}),k&&(0,me.jsx)(nX,{content:e,onUpdate:n,editor:k}),k&&(0,me.jsxs)(EF,{className:"space-x-2",editor:k,tippyOptions:{duration:100},children:[(0,me.jsx)("button",{onClick:()=>{let A=q();A&&b(A)},className:"btn "+k.isActive("bold")?"is-active":"",children:"ai"}),(0,me.jsx)(eX,{onPrompt:A=>{let D=q();b(D+" "+A)}}),(0,me.jsx)("button",{onClick:()=>{k.chain().focus().toggleCode().run()},children:"code"})]}),(0,me.jsx)("dialog",{id:"my_modal_1",className:"modal",ref:t,children:(0,me.jsxs)("div",{className:"modal-box",children:[c&&(0,me.jsx)(w0,{fields:c}),(0,me.jsx)("form",{method:"dialog",children:(0,me.jsx)("div",{className:"modal-action",children:(0,me.jsx)("button",{className:"btn",onClick:()=>{n(x())},children:"save"})})})]})})]}),(0,me.jsx)(tX,{changeContent:s,addImage:J,addTag:w,onSend:M,onStop:T,actionRunning:m.current!==void 0})]})},eX=({onPrompt:t})=>{let[e,n]=(0,Yn.useState)(!1),[r,o]=(0,Yn.useState)("");return(0,me.jsxs)(me.Fragment,{children:[(0,me.jsx)(Ja,{open:e,onClose:()=>n(!1),children:(0,me.jsxs)("div",{className:"flex flex-col space-y-2",children:[(0,me.jsxs)("div",{className:"flex flex-row",children:[(0,me.jsx)("input",{type:"text",className:"input input-bordered w-full",value:r,onChange:i=>o(i.target.value)}),(0,me.jsx)("button",{className:"btn",onClick:()=>{t(r),n(!1)},children:"ask"})]}),(0,me.jsx)("button",{onClick:()=>{n(!1)},children:"close"})]})}),(0,me.jsx)("button",{onClick:()=>n(!0),children:"ask"})]})},tX=({changeContent:t,addImage:e,addTag:n,onSend:r,actionRunning:o,onStop:i})=>{let[s,a]=(0,Yn.useState)(!1),[l,u]=(0,Yn.useState)(!1),[c,d]=(0,Yn.useState)(""),f=m=>{m&&(u(!1),n(m))},p=()=>{a(!1)};return(0,me.jsxs)("div",{className:"btm-nav",children:[(0,me.jsx)(t3,{}),(0,me.jsx)(Ja,{open:s,onClose:p,children:(0,me.jsxs)("div",{className:"flex flex-col",children:[(0,me.jsx)("button",{className:"btn",onClick:()=>{e(),a(!1)},children:"image"}),(0,me.jsx)("button",{className:"btn",onClick:()=>{t(o3("https://example.com",[])),a(!1)},children:"url"}),(0,me.jsx)("button",{className:"btn",onClick:()=>{t(r3("Don't think, write.")),a(!1)},children:"post"}),(0,me.jsx)("li",{onClick:()=>{t(n3()),a(!1)},children:(0,me.jsx)("a",{children:"site"})}),(0,me.jsx)("button",{className:"btn",onClick:p,children:"close"})]})}),(0,me.jsx)(Ja,{open:l,onClose:()=>u(!1),children:(0,me.jsxs)("div",{className:"space-y-2",children:[(0,me.jsx)(k0,{selectedTag:c,setSelectedTag:d,onAddTag:f}),(0,me.jsx)("button",{className:"btn",onClick:()=>u(!1),children:"close"})]})}),(0,me.jsx)("button",{onClick:()=>a(!0),children:(0,me.jsx)(Mf,{className:"h-6 w-6"})}),(0,me.jsx)("button",{onClick:()=>u(!0),children:(0,me.jsx)(Af,{className:"h-6 w-6"})}),o&&(0,me.jsx)("button",{onClick:i,children:(0,me.jsx)(x1,{className:"h-6 w-6"})}),(0,me.jsx)("button",{onClick:r,children:(0,me.jsx)(w1,{className:"h-6 w-6"})})]})};var nX=({content:t,editor:e,onUpdate:n})=>(0,me.jsx)("div",{children:(o=>{if(o)switch(o.type.case){case"chatgptConversation":return(0,me.jsx)(X2,{className:"space-y-2",conversation:o.type.value,onUpdate:a=>{n(new Qe({...o,type:{case:"chatgptConversation",value:a}}))}});case"site":return(0,me.jsx)(Y2,{site:o.type.value,onUpdate:a=>{n(new Qe({...o,type:{case:"site",value:a}}))}});case"post":let i=o.type.value;return(0,me.jsxs)("div",{className:"space-y-2",children:[(0,me.jsx)("input",{type:"text",value:i.title,onChange:a=>{n(new Qe({...o,type:{case:"post",value:{...i,title:a.target.value}}}))},placeholder:"title",className:"input w-full max-w-xs"}),(0,me.jsx)(f1,{className:"",editor:e})]});case"data":let s=o.type.value;switch(s.type.case){case"file":return(0,me.jsx)(j2,{id:o.id,file:s.type.value,onChange:l=>{n(new Qe({...o,type:{case:"data",value:{...o.type.value,type:{case:"file",value:l}}}}))}});case"url":let a=s.type.value;return(0,me.jsx)(f2,{id:o.id,url:a.url,onChange:l=>{n(new Qe({...o,type:{case:"data",value:{...o.type.value,type:{case:"url",value:{...a,url:l}}}}}))}})}}return(0,me.jsx)(f1,{className:"h-96",editor:e})})(t)}),xU=t=>{let e="don't think, write.";if(!t)return e;switch(t.type.case){case"post":return t.type.value.content;case"data":let n=t.type.value;switch(n.type.case){case"text":return n.type.value.data.toString()}break}return e};var Xn=Y(we(),1),SU=()=>{let{sources:t,types:e,setSelected:n,getSources:r,tags:o}=da(),{editContent:i}=fa(),{id:s}=ia(),{logout:a}=Po();(0,OC.useEffect)(()=>{r()},[e,o]),(0,OC.useEffect)(()=>{s&&(async()=>{try{let c=await Ft.search({contentID:s});if(c.storedContent.length===0)return;i(c.storedContent[0].content||void 0)}catch(c){console.error("failed to get sources",c)}})()},[s]);let l=c=>{n(c)},u=async()=>{try{let c=await Ft.publish({});Xe.success("Published content")}catch(c){Xe.error("Failed to publish content"),console.error("failed to publish",c)}};return t?(0,Xn.jsxs)("div",{className:"p-5 h-[95vh] flex flex-col",children:[(0,Xn.jsxs)("div",{className:"navbar bg-base-100",children:[(0,Xn.jsx)("div",{className:"flex-1",children:(0,Xn.jsx)("p",{className:"text-xl",children:"just share."})}),(0,Xn.jsx)("div",{className:"flex-none",children:(0,Xn.jsxs)("ul",{className:"menu menu-horizontal px-1",children:[(0,Xn.jsx)("li",{children:(0,Xn.jsx)("a",{onClick:u,children:"publish"})}),(0,Xn.jsx)("li",{children:(0,Xn.jsx)("a",{onClick:a,children:"logout"})})]})})]}),(0,Xn.jsx)("div",{className:"flex-grow",children:(0,Xn.jsx)(bU,{})})]}):(0,Xn.jsx)("div",{className:"loading loading-lg"})};var kU=Y(Ee(),1),D0=Y(we(),1);function xc(){let{user:t,tryLogin:e}=Po();return(0,kU.useEffect)(()=>{e()},[]),(0,D0.jsx)("div",{className:"h-screen flex flex-col gap-4 w-full",children:t?(0,D0.jsx)(SU,{}):(0,D0.jsx)(us,{allowRegister:!0})})}var vo=Y(we(),1),EU=()=>{let{setCurrentGroup:t,user:e}=QA(),[n,r]=(0,rp.useState)(!1),[o,i]=(0,rp.useState)(void 0),{secret:s}=ia();(0,rp.useEffect)(()=>{(async()=>{let c=await Oo.groupInfo({secret:s});i(c.name)})()},[s]);let a=async()=>{try{let c=await Oo.joinGroup({secret:s});Xe.success("Joined group"),r(!0),t(c.id)}catch(c){console.error(c),Xe.error("Failed to join group")}};return n?(0,vo.jsx)(xc,{}):(0,vo.jsxs)("div",{className:"flex flex-col gap-5 h-screen w-screen justify-center items-center",children:[o?(0,vo.jsxs)("h3",{children:["Want to join ",o,"?"]}):(0,vo.jsx)("span",{className:"loading loading-spinner"}),e?(0,vo.jsx)("button",{className:"btn",onClick:a,children:"Join Group"}):(0,vo.jsx)(vo.Fragment,{children:(0,vo.jsx)(us,{allowRegister:!0})})]})};var NU=Y(Ee(),1);var rX=nn([]),RU=()=>{let[t,e]=Lt(rX);return{messages:t,setMessages:e,getMessages:()=>{let r=new AbortController;return(async()=>{try{let o=Fg.receiveMessages({},{signal:r.signal});for await(let i of o)e(s=>[i,...s]),console.log(t)}catch(o){console.log(o),Xe.error("Failed to receive messages")}})(),()=>{r.abort()}}}};var bc=Y(Ee(),1);function CU(t){return new Date(Number(t)*1e3).toLocaleString()}var rt=Y(we(),1),TU=()=>{let{user:t,logout:e}=Po(),{messages:n,getMessages:r}=RU(),[o,i]=(0,bc.useState)("");(0,bc.useEffect)(r,[]);let s=bc.default.useRef(null),a=()=>{s.current&&s.current.showModal()},l=async()=>{let u=await Fg.sendMessage({message:o});i("")};return(0,rt.jsxs)("div",{className:"bg-opacity-0",children:[(0,rt.jsxs)("div",{className:"flex flex-row gap-2",children:[t?(0,rt.jsx)("button",{className:"btn",onClick:e,children:"logout"}):(0,rt.jsx)("button",{className:"btn",onClick:a,children:"login"}),(0,rt.jsx)("dialog",{className:"modal",ref:s,children:(0,rt.jsxs)("div",{className:"modal-box",children:[(0,rt.jsx)(us,{allowRegister:!0,next:"/app/chat"}),(0,rt.jsx)("div",{className:"modal-action",children:(0,rt.jsx)("form",{method:"dialog",children:(0,rt.jsx)("button",{className:"btn",children:"Close"})})})]})}),(0,rt.jsxs)("a",{className:"btn",href:"https://paypal.me/ineedafix",children:["donate",(0,rt.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,rt.jsx)("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"})})]}),(0,rt.jsxs)("a",{className:"btn",href:"https://github.com/lunabrain-ai/lunabrain",children:["code",(0,rt.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",className:"w-6 h-6",children:(0,rt.jsx)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5"})})]})]}),(0,rt.jsxs)("div",{className:"flex flex-row gap-2",children:[(0,rt.jsx)("input",{type:"text",placeholder:"Type here",value:o,onKeyDown:u=>{u.key==="Enter"&&l()},onChange:u=>i(u.target.value),className:"input input-bordered w-full max-w-xs"}),(0,rt.jsx)("button",{className:"btn",onClick:l,children:"Send"})]}),(0,rt.jsx)("div",{className:"w-full",children:n.map((u,c)=>(0,rt.jsxs)("div",{className:"chat chat-start",children:[(0,rt.jsxs)("div",{className:"chat-header",children:[(0,rt.jsx)("span",{className:"mx-1",children:u.user}),(0,rt.jsx)("time",{className:"text-xs opacity-50",children:CU(u.timestamp)})]}),(0,rt.jsx)("div",{className:"chat-bubble",children:u.text})]},c))})]})};var PC=Y(we(),1),OU=()=>{let{user:t,tryLogin:e}=Po();return(0,NU.useEffect)(()=>{e()},[]),(0,PC.jsx)("div",{className:"h-screen flex flex-col gap-4 w-full",children:(0,PC.jsx)(TU,{})})};var F0=Y(Ee(),1);var Sc=Y(we(),1),PU=()=>{let[t,e]=(0,F0.useState)(!1),{secret:n}=ia(),r=async()=>{try{let o=await Oo.verifyUser({secret:n});Xe.success("Joined group"),e(!0)}catch(o){console.error(o),Xe.error("Failed to join group")}};return(0,F0.useEffect)(()=>{r()},[]),t?(0,Sc.jsx)(us,{}):(0,Sc.jsxs)("div",{className:"flex flex-col gap-5 h-screen w-screen justify-center items-center",children:[(0,Sc.jsx)("h3",{children:"Verifying..."}),(0,Sc.jsx)("span",{className:"loading loading-spinner"})]})};var B0=Y(Ee(),1);var zt=Y(we(),1),MU=["ui"],AU=()=>{let[t,e]=B0.default.useState(MU[0]);return(0,zt.jsxs)(zt.Fragment,{children:[(0,zt.jsxs)("div",{className:"navbar bg-base-100",children:[(0,zt.jsx)("div",{className:"flex-1",children:(0,zt.jsx)("a",{className:"btn btn-ghost text-xl",children:"admin"})}),(0,zt.jsx)("div",{className:"flex-none",children:(0,zt.jsx)("ul",{className:"menu menu-horizontal px-1",children:MU.map(n=>(0,zt.jsx)("li",{children:(0,zt.jsx)("a",{className:`btn btn-ghost ${n===t?"btn-active":""}`,onClick:()=>e(n),children:n})},n))})})]}),(0,zt.jsx)(oX,{tab:t})]})},oX=({tab:t})=>{switch(t){case"ui":return(0,zt.jsx)(iX,{})}},iX=()=>(0,zt.jsx)("div",{className:"container mx-auto",children:(0,zt.jsx)(eh,{children:(0,zt.jsx)(sX,{})})}),sX=()=>{let[t,e]=Lt(hc),{fields:n,loadFormTypes:r}=v0(),o=mc();return(0,B0.useEffect)(()=>{r(),e(o)},[]),n===void 0?null:(0,zt.jsxs)(zt.Fragment,{children:[(0,zt.jsx)(w0,{fields:n}),(0,zt.jsx)("button",{className:"btn btn-primary",onClick:()=>{let i=Za(t?.getValues().data);console.log(Qe.fromJson(i))},children:"submit"})]})};var Ct=Y(we(),1),aX=()=>{let e=$b([...[{path:"/app",element:(0,Ct.jsx)("div",{className:"h-screen flex flex-col gap-4 w-full",children:(0,Ct.jsx)("div",{className:"mt-4",children:(0,Ct.jsx)("div",{className:"items-center px-5 py-12 lg:px-20",children:(0,Ct.jsxs)("div",{className:"flex flex-col w-full max-w-md p-10 mx-auto space-y-4",children:[(0,Ct.jsx)("p",{children:"oh, hello."}),(0,Ct.jsx)("a",{href:"/app/content",className:"btn",children:"let's go write something."})]})})})})},{path:"/app/content",element:(0,Ct.jsx)(xc,{})},{path:"/app/group/:groupID",element:(0,Ct.jsx)(xc,{})},{path:"/app/group/join/:secret",element:(0,Ct.jsx)(EU,{})},{path:"/app/chat",element:(0,Ct.jsx)(OU,{})},{path:"/app/verify/:secret",element:(0,Ct.jsx)(PU,{})},{path:"/app/content/:id",element:(0,Ct.jsx)(xc,{})},{path:"/app/admin",element:(0,Ct.jsx)(AU,{})}]]);return(0,Ct.jsx)(Ct.Fragment,{children:e})},IU=({dev:t})=>(0,Ct.jsx)(Ym,{FallbackComponent:FM,children:(0,Ct.jsxs)(eh,{children:[(0,Ct.jsx)(MM,{children:(0,Ct.jsx)(aX,{})}),(0,Ct.jsx)(yM,{})]})});var MC=Y(we(),1);window.React=AC.default;var DU=!1;DU&&new EventSource("/esbuild").addEventListener("change",()=>location.reload());var lX=LU.default.createRoot(document.getElementById("root"));lX.render((0,MC.jsx)(AC.default.StrictMode,{children:(0,MC.jsx)(IU,{dev:DU})}));})(); +`);if(B)for(let N=0;N{if(localStorage.setItem(pk,A.getHTML()),e)switch(e.type.case){case"post":e.type.value.content=A?.getHTML()||"",n(new Qe({...e,type:{case:"post",value:e.type.value}}));break}},content:xU(e),editorProps:{handleKeyDown:(A,D)=>D.key==="Tab"?(D.preventDefault(),k===null?!1:(D.preventDefault(),D.shiftKey?k.chain().focus().liftListItem("listItem").run():k.chain().focus().sinkListItem("listItem").run(),!0)):!1}}),x=()=>{if(!l)return;let A=Za(l.getValues().data);try{return Qe.fromJson(A)}catch(D){return console.error("failed to parse content",D,"data",Za(A)),e}},M=async()=>{try{let A=await Ft.save({content:x(),related:[]});a(),Xe.success("Saved content")}catch(A){Xe.error("Failed to save content"),console.error("failed to save",A)}},T=()=>{m.current?.abort()},P=()=>{k&&k.commands.setContent("")},J=()=>{let A=window.prompt("URL");A&&k&&(k.chain().focus().setImage({src:A}).run(),v([...y,A]))},q=()=>{if(!k)return"";let{view:A,state:D}=k,{from:z,to:H}=A.state.selection,B=D.doc.textBetween(z,H,"");return k.commands.setTextSelection({from:H,to:H}),k.commands.enter(),B};return(0,me.jsxs)("div",{className:"sm:mx-4 lg:mx-16",children:[(0,me.jsxs)("div",{className:"mb-32 flex flex-col",children:[(0,me.jsxs)("div",{className:"flex flex-row justify-between",children:[(0,me.jsx)("span",{children:e?.tags.map(A=>(0,me.jsx)("span",{className:"badge badge-outline badge-sm",onClick:()=>S(A),children:A},A))}),(0,me.jsx)("button",{onClick:()=>t.current?.showModal(),children:(0,me.jsx)(p1,{className:"h-6 w-6"})})]}),k&&(0,me.jsx)(nX,{content:e,onUpdate:n,editor:k}),k&&(0,me.jsxs)(EF,{className:"space-x-2",editor:k,tippyOptions:{duration:100},children:[(0,me.jsx)("button",{onClick:()=>{let A=q();A&&b(A)},className:"btn "+k.isActive("bold")?"is-active":"",children:"ai"}),(0,me.jsx)(eX,{onPrompt:A=>{let D=q();b(D+" "+A)}}),(0,me.jsx)("button",{onClick:()=>{k.chain().focus().toggleCode().run()},children:"code"})]}),(0,me.jsx)("dialog",{id:"my_modal_1",className:"modal",ref:t,children:(0,me.jsxs)("div",{className:"modal-box",children:[c&&(0,me.jsx)(w0,{fields:c}),(0,me.jsx)("form",{method:"dialog",children:(0,me.jsx)("div",{className:"modal-action",children:(0,me.jsx)("button",{className:"btn",onClick:()=>{n(x())},children:"save"})})})]})})]}),(0,me.jsx)(tX,{changeContent:s,addImage:J,addTag:w,onSend:M,onStop:T,actionRunning:m.current!==void 0})]})},eX=({onPrompt:t})=>{let[e,n]=(0,Yn.useState)(!1),[r,o]=(0,Yn.useState)("");return(0,me.jsxs)(me.Fragment,{children:[(0,me.jsx)(Ja,{open:e,onClose:()=>n(!1),children:(0,me.jsxs)("div",{className:"flex flex-col space-y-2",children:[(0,me.jsxs)("div",{className:"flex flex-row",children:[(0,me.jsx)("input",{type:"text",className:"input input-bordered w-full",value:r,onChange:i=>o(i.target.value)}),(0,me.jsx)("button",{className:"btn",onClick:()=>{t(r),n(!1)},children:"ask"})]}),(0,me.jsx)("button",{onClick:()=>{n(!1)},children:"close"})]})}),(0,me.jsx)("button",{onClick:()=>n(!0),children:"ask"})]})},tX=({changeContent:t,addImage:e,addTag:n,onSend:r,actionRunning:o,onStop:i})=>{let[s,a]=(0,Yn.useState)(!1),[l,u]=(0,Yn.useState)(!1),[c,d]=(0,Yn.useState)(""),f=m=>{m&&(u(!1),n(m))},p=()=>{a(!1)};return(0,me.jsxs)("div",{className:"btm-nav",children:[(0,me.jsx)(t3,{}),(0,me.jsx)(Ja,{open:s,onClose:p,children:(0,me.jsxs)("div",{className:"flex flex-col",children:[(0,me.jsx)("button",{className:"btn",onClick:()=>{e(),a(!1)},children:"image"}),(0,me.jsx)("button",{className:"btn",onClick:()=>{t(o3("https://example.com",[])),a(!1)},children:"url"}),(0,me.jsx)("button",{className:"btn",onClick:()=>{t(r3("Don't think, write.")),a(!1)},children:"post"}),(0,me.jsx)("li",{onClick:()=>{t(n3()),a(!1)},children:(0,me.jsx)("a",{children:"site"})}),(0,me.jsx)("button",{className:"btn",onClick:p,children:"close"})]})}),(0,me.jsx)(Ja,{open:l,onClose:()=>u(!1),children:(0,me.jsxs)("div",{className:"space-y-2",children:[(0,me.jsx)(k0,{selectedTag:c,setSelectedTag:d,onAddTag:f}),(0,me.jsx)("button",{className:"btn",onClick:()=>u(!1),children:"close"})]})}),(0,me.jsx)("button",{onClick:()=>a(!0),children:(0,me.jsx)(Mf,{className:"h-6 w-6"})}),(0,me.jsx)("button",{onClick:()=>u(!0),children:(0,me.jsx)(Af,{className:"h-6 w-6"})}),o&&(0,me.jsx)("button",{onClick:i,children:(0,me.jsx)(x1,{className:"h-6 w-6"})}),(0,me.jsx)("button",{onClick:r,children:(0,me.jsx)(w1,{className:"h-6 w-6"})})]})};var nX=({content:t,editor:e,onUpdate:n})=>(0,me.jsx)("div",{children:(o=>{if(o)switch(o.type.case){case"chatgptConversation":return(0,me.jsx)(X2,{className:"space-y-2",conversation:o.type.value,onUpdate:a=>{n(new Qe({...o,type:{case:"chatgptConversation",value:a}}))}});case"site":return(0,me.jsx)(Y2,{site:o.type.value,onUpdate:a=>{n(new Qe({...o,type:{case:"site",value:a}}))}});case"post":let i=o.type.value;return(0,me.jsxs)("div",{className:"space-y-2",children:[(0,me.jsx)("input",{type:"text",value:i.title,onChange:a=>{n(new Qe({...o,type:{case:"post",value:{...i,title:a.target.value}}}))},placeholder:"title",className:"input w-full max-w-xs"}),(0,me.jsx)(f1,{className:"",editor:e})]});case"data":let s=o.type.value;switch(s.type.case){case"file":return(0,me.jsx)(j2,{id:o.id,file:s.type.value,onChange:l=>{n(new Qe({...o,type:{case:"data",value:{...o.type.value,type:{case:"file",value:l}}}}))}});case"url":let a=s.type.value;return(0,me.jsx)(f2,{id:o.id,url:a.url,onChange:l=>{n(new Qe({...o,type:{case:"data",value:{...o.type.value,type:{case:"url",value:{...a,url:l}}}}}))}})}}return(0,me.jsx)(f1,{className:"h-96",editor:e})})(t)}),xU=t=>{let e="don't think, write.";if(!t)return e;switch(t.type.case){case"post":return t.type.value.content;case"data":let n=t.type.value;switch(n.type.case){case"text":return n.type.value.data.toString()}break}return e};var Xn=Y(we(),1),SU=()=>{let{sources:t,types:e,setSelected:n,getSources:r,tags:o}=da(),{editContent:i}=fa(),{id:s}=ia(),{logout:a}=Po();(0,OC.useEffect)(()=>{r()},[e,o]),(0,OC.useEffect)(()=>{s&&(async()=>{try{let c=await Ft.search({contentID:s});if(c.storedContent.length===0)return;i(c.storedContent[0].content||void 0)}catch(c){console.error("failed to get sources",c)}})()},[s]);let l=c=>{n(c)},u=async()=>{try{let c=await Ft.publish({});Xe.success("Published content")}catch(c){Xe.error("Failed to publish content"),console.error("failed to publish",c)}};return t?(0,Xn.jsxs)("div",{className:"p-5 h-[95vh] flex flex-col",children:[(0,Xn.jsxs)("div",{className:"navbar bg-base-100",children:[(0,Xn.jsx)("div",{className:"flex-1",children:(0,Xn.jsx)("p",{className:"text-xl",children:"just share."})}),(0,Xn.jsx)("div",{className:"flex-none",children:(0,Xn.jsxs)("ul",{className:"menu menu-horizontal px-1",children:[(0,Xn.jsx)("li",{children:(0,Xn.jsx)("a",{onClick:u,children:"publish"})}),(0,Xn.jsx)("li",{children:(0,Xn.jsx)("a",{onClick:a,children:"logout"})})]})})]}),(0,Xn.jsx)("div",{className:"flex-grow",children:(0,Xn.jsx)(bU,{})})]}):(0,Xn.jsx)("div",{className:"loading loading-lg"})};var kU=Y(Ee(),1),D0=Y(we(),1);function xc(){let{user:t,tryLogin:e}=Po();return(0,kU.useEffect)(()=>{e()},[]),(0,D0.jsx)("div",{className:"h-screen flex flex-col gap-4 w-full",children:t?(0,D0.jsx)(SU,{}):(0,D0.jsx)(us,{allowRegister:!0})})}var vo=Y(we(),1),EU=()=>{let{setCurrentGroup:t,user:e}=QA(),[n,r]=(0,rp.useState)(!1),[o,i]=(0,rp.useState)(void 0),{secret:s}=ia();(0,rp.useEffect)(()=>{(async()=>{let c=await Oo.groupInfo({secret:s});i(c.name)})()},[s]);let a=async()=>{try{let c=await Oo.joinGroup({secret:s});Xe.success("Joined group"),r(!0),t(c.id)}catch(c){console.error(c),Xe.error("Failed to join group")}};return n?(0,vo.jsx)(xc,{}):(0,vo.jsxs)("div",{className:"flex flex-col gap-5 h-screen w-screen justify-center items-center",children:[o?(0,vo.jsxs)("h3",{children:["Want to join ",o,"?"]}):(0,vo.jsx)("span",{className:"loading loading-spinner"}),e?(0,vo.jsx)("button",{className:"btn",onClick:a,children:"Join Group"}):(0,vo.jsx)(vo.Fragment,{children:(0,vo.jsx)(us,{allowRegister:!0})})]})};var NU=Y(Ee(),1);var rX=nn([]),RU=()=>{let[t,e]=Lt(rX);return{messages:t,setMessages:e,getMessages:()=>{let r=new AbortController;return(async()=>{try{let o=Fg.receiveMessages({},{signal:r.signal});for await(let i of o)e(s=>[i,...s]),console.log(t)}catch(o){console.log(o),Xe.error("Failed to receive messages")}})(),()=>{r.abort()}}}};var bc=Y(Ee(),1);function CU(t){return new Date(Number(t)*1e3).toLocaleString()}var rt=Y(we(),1),TU=()=>{let{user:t,logout:e}=Po(),{messages:n,getMessages:r}=RU(),[o,i]=(0,bc.useState)("");(0,bc.useEffect)(r,[]);let s=bc.default.useRef(null),a=()=>{s.current&&s.current.showModal()},l=async()=>{let u=await Fg.sendMessage({message:o});i("")};return(0,rt.jsxs)("div",{className:"bg-opacity-0",children:[(0,rt.jsxs)("div",{className:"flex flex-row gap-2",children:[t?(0,rt.jsx)("button",{className:"btn",onClick:e,children:"logout"}):(0,rt.jsx)("button",{className:"btn",onClick:a,children:"login"}),(0,rt.jsx)("dialog",{className:"modal",ref:s,children:(0,rt.jsxs)("div",{className:"modal-box",children:[(0,rt.jsx)(us,{allowRegister:!0,next:"/app/chat"}),(0,rt.jsx)("div",{className:"modal-action",children:(0,rt.jsx)("form",{method:"dialog",children:(0,rt.jsx)("button",{className:"btn",children:"Close"})})})]})}),(0,rt.jsxs)("a",{className:"btn",href:"https://paypal.me/ineedafix",children:["donate",(0,rt.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,rt.jsx)("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"})})]}),(0,rt.jsxs)("a",{className:"btn",href:"https://github.com/justshare-io/justshare",children:["code",(0,rt.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",className:"w-6 h-6",children:(0,rt.jsx)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5"})})]})]}),(0,rt.jsxs)("div",{className:"flex flex-row gap-2",children:[(0,rt.jsx)("input",{type:"text",placeholder:"Type here",value:o,onKeyDown:u=>{u.key==="Enter"&&l()},onChange:u=>i(u.target.value),className:"input input-bordered w-full max-w-xs"}),(0,rt.jsx)("button",{className:"btn",onClick:l,children:"Send"})]}),(0,rt.jsx)("div",{className:"w-full",children:n.map((u,c)=>(0,rt.jsxs)("div",{className:"chat chat-start",children:[(0,rt.jsxs)("div",{className:"chat-header",children:[(0,rt.jsx)("span",{className:"mx-1",children:u.user}),(0,rt.jsx)("time",{className:"text-xs opacity-50",children:CU(u.timestamp)})]}),(0,rt.jsx)("div",{className:"chat-bubble",children:u.text})]},c))})]})};var PC=Y(we(),1),OU=()=>{let{user:t,tryLogin:e}=Po();return(0,NU.useEffect)(()=>{e()},[]),(0,PC.jsx)("div",{className:"h-screen flex flex-col gap-4 w-full",children:(0,PC.jsx)(TU,{})})};var F0=Y(Ee(),1);var Sc=Y(we(),1),PU=()=>{let[t,e]=(0,F0.useState)(!1),{secret:n}=ia(),r=async()=>{try{let o=await Oo.verifyUser({secret:n});Xe.success("Joined group"),e(!0)}catch(o){console.error(o),Xe.error("Failed to join group")}};return(0,F0.useEffect)(()=>{r()},[]),t?(0,Sc.jsx)(us,{}):(0,Sc.jsxs)("div",{className:"flex flex-col gap-5 h-screen w-screen justify-center items-center",children:[(0,Sc.jsx)("h3",{children:"Verifying..."}),(0,Sc.jsx)("span",{className:"loading loading-spinner"})]})};var B0=Y(Ee(),1);var zt=Y(we(),1),MU=["ui"],AU=()=>{let[t,e]=B0.default.useState(MU[0]);return(0,zt.jsxs)(zt.Fragment,{children:[(0,zt.jsxs)("div",{className:"navbar bg-base-100",children:[(0,zt.jsx)("div",{className:"flex-1",children:(0,zt.jsx)("a",{className:"btn btn-ghost text-xl",children:"admin"})}),(0,zt.jsx)("div",{className:"flex-none",children:(0,zt.jsx)("ul",{className:"menu menu-horizontal px-1",children:MU.map(n=>(0,zt.jsx)("li",{children:(0,zt.jsx)("a",{className:`btn btn-ghost ${n===t?"btn-active":""}`,onClick:()=>e(n),children:n})},n))})})]}),(0,zt.jsx)(oX,{tab:t})]})},oX=({tab:t})=>{switch(t){case"ui":return(0,zt.jsx)(iX,{})}},iX=()=>(0,zt.jsx)("div",{className:"container mx-auto",children:(0,zt.jsx)(eh,{children:(0,zt.jsx)(sX,{})})}),sX=()=>{let[t,e]=Lt(hc),{fields:n,loadFormTypes:r}=v0(),o=mc();return(0,B0.useEffect)(()=>{r(),e(o)},[]),n===void 0?null:(0,zt.jsxs)(zt.Fragment,{children:[(0,zt.jsx)(w0,{fields:n}),(0,zt.jsx)("button",{className:"btn btn-primary",onClick:()=>{let i=Za(t?.getValues().data);console.log(Qe.fromJson(i))},children:"submit"})]})};var Ct=Y(we(),1),aX=()=>{let e=$b([...[{path:"/app",element:(0,Ct.jsx)("div",{className:"h-screen flex flex-col gap-4 w-full",children:(0,Ct.jsx)("div",{className:"mt-4",children:(0,Ct.jsx)("div",{className:"items-center px-5 py-12 lg:px-20",children:(0,Ct.jsxs)("div",{className:"flex flex-col w-full max-w-md p-10 mx-auto space-y-4",children:[(0,Ct.jsx)("p",{children:"oh, hello."}),(0,Ct.jsx)("a",{href:"/app/content",className:"btn",children:"let's go write something."})]})})})})},{path:"/app/content",element:(0,Ct.jsx)(xc,{})},{path:"/app/group/:groupID",element:(0,Ct.jsx)(xc,{})},{path:"/app/group/join/:secret",element:(0,Ct.jsx)(EU,{})},{path:"/app/chat",element:(0,Ct.jsx)(OU,{})},{path:"/app/verify/:secret",element:(0,Ct.jsx)(PU,{})},{path:"/app/content/:id",element:(0,Ct.jsx)(xc,{})},{path:"/app/admin",element:(0,Ct.jsx)(AU,{})}]]);return(0,Ct.jsx)(Ct.Fragment,{children:e})},IU=({dev:t})=>(0,Ct.jsx)(Ym,{FallbackComponent:FM,children:(0,Ct.jsxs)(eh,{children:[(0,Ct.jsx)(MM,{children:(0,Ct.jsx)(aX,{})}),(0,Ct.jsx)(yM,{})]})});var MC=Y(we(),1);window.React=AC.default;var DU=!1;DU&&new EventSource("/esbuild").addEventListener("change",()=>location.reload());var lX=LU.default.createRoot(document.getElementById("root"));lX.render((0,MC.jsx)(AC.default.StrictMode,{children:(0,MC.jsx)(IU,{dev:DU})}));})(); /*! Bundled license information: react/cjs/react.production.min.js: diff --git a/js/dist/site/index.js.map b/js/dist/site/index.js.map index 4f5a539d..c3d2ad81 100644 --- a/js/dist/site/index.js.map +++ b/js/dist/site/index.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../../../node_modules/react/cjs/react.production.min.js", "../../../node_modules/react/index.js", "../../../node_modules/react-dom/node_modules/scheduler/cjs/scheduler.production.min.js", "../../../node_modules/react-dom/node_modules/scheduler/index.js", "../../../node_modules/react-dom/cjs/react-dom.production.min.js", "../../../node_modules/react-dom/index.js", "../../../node_modules/react-dom/client.js", "../../../node_modules/source-map/lib/base64.js", "../../../node_modules/source-map/lib/base64-vlq.js", "../../../node_modules/source-map/lib/util.js", "../../../node_modules/source-map/lib/array-set.js", "../../../node_modules/source-map/lib/mapping-list.js", "../../../node_modules/source-map/lib/source-map-generator.js", "../../../node_modules/source-map/lib/binary-search.js", "../../../node_modules/source-map/lib/quick-sort.js", "../../../node_modules/source-map/lib/source-map-consumer.js", "../../../node_modules/source-map/lib/source-node.js", "../../../node_modules/source-map/source-map.js", "node-modules-polyfills:path", "node-modules-polyfills-commonjs:path", "node-modules-polyfills:fs", "node-modules-polyfills-commonjs:fs", "../../../node_modules/buffer-from/index.js", "../../../node_modules/source-map-support/source-map-support.js", "../../../node_modules/react/cjs/react-jsx-runtime.production.min.js", "../../../node_modules/react/jsx-runtime.js", "../../../node_modules/is-buffer/index.js", "../../../node_modules/extend/index.js", "../../../node_modules/prop-types/lib/ReactPropTypesSecret.js", "../../../node_modules/prop-types/factoryWithThrowingShims.js", "../../../node_modules/prop-types/index.js", "../../../node_modules/react-is/cjs/react-is.production.min.js", "../../../node_modules/react-is/index.js", "../../../node_modules/inline-style-parser/index.js", "../../../node_modules/style-to-object/index.js", "../../../node_modules/highlight.js/lib/core.js", "../../site/index.tsx", "../../../node_modules/source-map-support/register.js", "../../../node_modules/react-hot-toast/src/core/types.ts", "../../../node_modules/react-hot-toast/src/core/utils.ts", "../../../node_modules/react-hot-toast/src/core/store.ts", "../../../node_modules/react-hot-toast/src/core/toast.ts", "../../../node_modules/react-hot-toast/src/core/use-toaster.ts", "../../../node_modules/react-hot-toast/src/components/toast-bar.tsx", "../../../node_modules/react-hot-toast/src/components/toast-icon.tsx", "../../../node_modules/react-hot-toast/src/components/error.tsx", "../../../node_modules/react-hot-toast/src/components/loader.tsx", "../../../node_modules/react-hot-toast/src/components/checkmark.tsx", "../../../node_modules/react-hot-toast/src/components/toaster.tsx", "../../../node_modules/react-hot-toast/src/index.ts", "../../../node_modules/goober/dist/goober.modern.js", "../../../node_modules/@remix-run/router/history.ts", "../../../node_modules/@remix-run/router/utils.ts", "../../../node_modules/@remix-run/router/router.ts", "../../../node_modules/react-router/lib/context.ts", "../../../node_modules/react-router/lib/hooks.tsx", "../../../node_modules/react-router/lib/components.tsx", "../../../node_modules/react-router/index.ts", "../../../node_modules/react-router-dom/dom.ts", "../../../node_modules/react-router-dom/index.tsx", "../../../node_modules/react-error-boundary/dist/react-error-boundary.esm.js", "../../site/react/FallbackError.tsx", "../../site/auth/JoinGroupPage.tsx", "../../site/auth/AuthForm.tsx", "../../../node_modules/jotai/esm/vanilla.mjs", "../../../node_modules/jotai/esm/react.mjs", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/assert.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/enum.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/message.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/message-type.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/proto-runtime.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/field.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/google/varint.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/binary-encoding.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/field-wrapper.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/scalars.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/binary-format-common.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/binary-format-proto3.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/proto-base64.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/json-format-common.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/json-format-proto3.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/util-common.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/field-list.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/names.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/field.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/proto3.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/binary-format-proto2.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/json-format-proto2.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/proto2.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/service-type.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/descriptor_pb.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/empty_pb.js", "../../rpc/user/user_pb.ts", "../../rpc/content/chatgpt/conversation_pb.ts", "../../rpc/content/browser/history_pb.ts", "../../rpc/content/blog_pb.ts", "../../rpc/content/content_pb.ts", "../../rpc/protoflow_pb.ts", "../../rpc/ai_pb.ts", "../../rpc/protoflow_connect.ts", "../../rpc/content/content_connect.ts", "../../rpc/user/user_connect.ts", "../../rpc/chat/chat_pb.ts", "../../rpc/chat/chat_connect.ts", "../../rpc/event/event_pb.ts", "../../rpc/event/event_connect.ts", "../../../node_modules/@connectrpc/connect/dist/esm/code.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/code-string.js", "../../../node_modules/@connectrpc/connect/dist/esm/connect-error.js", "../../../node_modules/@connectrpc/connect/dist/esm/http-headers.js", "../../../node_modules/@connectrpc/connect/dist/esm/any-client.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/envelope.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.js", "../../../node_modules/@connectrpc/connect/dist/esm/promise-client.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/signals.js", "../../../node_modules/@connectrpc/connect/dist/esm/context-values.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/create-method-url.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/normalize.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/serialization.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/content-type.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/error-json.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/end-stream.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/headers.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/http-status.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/trailer-mux.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/version.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/request-header.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/validate-response.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/get-request.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/run-call.js", "../../../node_modules/@connectrpc/connect-web/dist/esm/assert-fetch-api.js", "../../../node_modules/@connectrpc/connect-web/dist/esm/connect-transport.js", "../../site/service.ts", "../../site/auth/state.ts", "../../site/react/ProjectProvider.tsx", "../../site/source/SourcePage.tsx", "../../site/source/state.ts", "../../site/source/ContentCard.tsx", "../../site/source/ContentEditor.tsx", "../../../node_modules/orderedmap/dist/index.js", "../../../node_modules/prosemirror-model/dist/index.js", "../../../node_modules/prosemirror-transform/dist/index.js", "../../../node_modules/prosemirror-state/dist/index.js", "../../../node_modules/prosemirror-view/dist/index.js", "../../../node_modules/w3c-keyname/index.js", "../../../node_modules/prosemirror-keymap/dist/index.js", "../../../node_modules/prosemirror-commands/dist/index.js", "../../../node_modules/prosemirror-schema-list/dist/index.js", "../../../node_modules/@tiptap/core/src/helpers/createChainableState.ts", "../../../node_modules/@tiptap/core/src/CommandManager.ts", "../../../node_modules/@tiptap/core/src/EventEmitter.ts", "../../../node_modules/@tiptap/core/src/helpers/getExtensionField.ts", "../../../node_modules/@tiptap/core/src/helpers/splitExtensions.ts", "../../../node_modules/@tiptap/core/src/helpers/getAttributesFromExtensions.ts", "../../../node_modules/@tiptap/core/src/helpers/getNodeType.ts", "../../../node_modules/@tiptap/core/src/utilities/mergeAttributes.ts", "../../../node_modules/@tiptap/core/src/helpers/getRenderedAttributes.ts", "../../../node_modules/@tiptap/core/src/utilities/isFunction.ts", "../../../node_modules/@tiptap/core/src/utilities/callOrReturn.ts", "../../../node_modules/@tiptap/core/src/utilities/isEmptyObject.ts", "../../../node_modules/@tiptap/core/src/utilities/fromString.ts", "../../../node_modules/@tiptap/core/src/helpers/injectExtensionAttributesToParseRule.ts", "../../../node_modules/@tiptap/core/src/helpers/getSchemaByResolvedExtensions.ts", "../../../node_modules/@tiptap/core/src/helpers/getSchemaTypeByName.ts", "../../../node_modules/@tiptap/core/src/helpers/isExtensionRulesEnabled.ts", "../../../node_modules/@tiptap/core/src/helpers/getTextContentFromNodes.ts", "../../../node_modules/@tiptap/core/src/utilities/isRegExp.ts", "../../../node_modules/@tiptap/core/src/InputRule.ts", "../../../node_modules/@tiptap/core/src/utilities/isNumber.ts", "../../../node_modules/@tiptap/core/src/PasteRule.ts", "../../../node_modules/@tiptap/core/src/utilities/findDuplicates.ts", "../../../node_modules/@tiptap/core/src/ExtensionManager.ts", "../../../node_modules/@tiptap/core/src/utilities/isPlainObject.ts", "../../../node_modules/@tiptap/core/src/utilities/mergeDeep.ts", "../../../node_modules/@tiptap/core/src/Extension.ts", "../../../node_modules/@tiptap/core/src/helpers/getTextBetween.ts", "../../../node_modules/@tiptap/core/src/helpers/getTextSerializersFromSchema.ts", "../../../node_modules/@tiptap/core/src/extensions/clipboardTextSerializer.ts", "../../../node_modules/@tiptap/core/src/commands/blur.ts", "../../../node_modules/@tiptap/core/src/commands/clearContent.ts", "../../../node_modules/@tiptap/core/src/commands/clearNodes.ts", "../../../node_modules/@tiptap/core/src/commands/command.ts", "../../../node_modules/@tiptap/core/src/commands/createParagraphNear.ts", "../../../node_modules/@tiptap/core/src/commands/cut.ts", "../../../node_modules/@tiptap/core/src/commands/deleteCurrentNode.ts", "../../../node_modules/@tiptap/core/src/commands/deleteNode.ts", "../../../node_modules/@tiptap/core/src/commands/deleteRange.ts", "../../../node_modules/@tiptap/core/src/commands/deleteSelection.ts", "../../../node_modules/@tiptap/core/src/commands/enter.ts", "../../../node_modules/@tiptap/core/src/commands/exitCode.ts", "../../../node_modules/@tiptap/core/src/utilities/objectIncludes.ts", "../../../node_modules/@tiptap/core/src/helpers/getMarkRange.ts", "../../../node_modules/@tiptap/core/src/helpers/getMarkType.ts", "../../../node_modules/@tiptap/core/src/commands/extendMarkRange.ts", "../../../node_modules/@tiptap/core/src/commands/first.ts", "../../../node_modules/@tiptap/core/src/helpers/isTextSelection.ts", "../../../node_modules/@tiptap/core/src/utilities/minMax.ts", "../../../node_modules/@tiptap/core/src/helpers/resolveFocusPosition.ts", "../../../node_modules/@tiptap/core/src/utilities/isiOS.ts", "../../../node_modules/@tiptap/core/src/commands/focus.ts", "../../../node_modules/@tiptap/core/src/commands/forEach.ts", "../../../node_modules/@tiptap/core/src/commands/insertContent.ts", "../../../node_modules/@tiptap/core/src/utilities/elementFromString.ts", "../../../node_modules/@tiptap/core/src/helpers/createNodeFromContent.ts", "../../../node_modules/@tiptap/core/src/helpers/selectionToInsertionEnd.ts", "../../../node_modules/@tiptap/core/src/commands/insertContentAt.ts", "../../../node_modules/@tiptap/core/src/commands/join.ts", "../../../node_modules/@tiptap/core/src/commands/joinItemBackward.ts", "../../../node_modules/@tiptap/core/src/commands/joinItemForward.ts", "../../../node_modules/@tiptap/core/src/utilities/isMacOS.ts", "../../../node_modules/@tiptap/core/src/commands/keyboardShortcut.ts", "../../../node_modules/@tiptap/core/src/helpers/isNodeActive.ts", "../../../node_modules/@tiptap/core/src/commands/lift.ts", "../../../node_modules/@tiptap/core/src/commands/liftEmptyBlock.ts", "../../../node_modules/@tiptap/core/src/commands/liftListItem.ts", "../../../node_modules/@tiptap/core/src/commands/newlineInCode.ts", "../../../node_modules/@tiptap/core/src/helpers/getSchemaTypeNameByName.ts", "../../../node_modules/@tiptap/core/src/utilities/deleteProps.ts", "../../../node_modules/@tiptap/core/src/commands/resetAttributes.ts", "../../../node_modules/@tiptap/core/src/commands/scrollIntoView.ts", "../../../node_modules/@tiptap/core/src/commands/selectAll.ts", "../../../node_modules/@tiptap/core/src/commands/selectNodeBackward.ts", "../../../node_modules/@tiptap/core/src/commands/selectNodeForward.ts", "../../../node_modules/@tiptap/core/src/commands/selectParentNode.ts", "../../../node_modules/@tiptap/core/src/commands/selectTextblockEnd.ts", "../../../node_modules/@tiptap/core/src/commands/selectTextblockStart.ts", "../../../node_modules/@tiptap/core/src/helpers/createDocument.ts", "../../../node_modules/@tiptap/core/src/commands/setContent.ts", "../../../node_modules/@tiptap/core/src/helpers/getMarkAttributes.ts", "../../../node_modules/@tiptap/core/src/helpers/combineTransactionSteps.ts", "../../../node_modules/@tiptap/core/src/helpers/defaultBlockAt.ts", "../../../node_modules/@tiptap/core/src/helpers/findChildren.ts", "../../../node_modules/@tiptap/core/src/helpers/findChildrenInRange.ts", "../../../node_modules/@tiptap/core/src/helpers/findParentNodeClosestToPos.ts", "../../../node_modules/@tiptap/core/src/helpers/findParentNode.ts", "../../../node_modules/@tiptap/core/src/helpers/getHTMLFromFragment.ts", "../../../node_modules/@tiptap/core/src/helpers/getSchema.ts", "../../../node_modules/@tiptap/core/src/helpers/generateHTML.ts", "../../../node_modules/@tiptap/core/src/helpers/generateJSON.ts", "../../../node_modules/@tiptap/core/src/helpers/getText.ts", "../../../node_modules/@tiptap/core/src/helpers/generateText.ts", "../../../node_modules/@tiptap/core/src/helpers/getNodeAttributes.ts", "../../../node_modules/@tiptap/core/src/helpers/getAttributes.ts", "../../../node_modules/@tiptap/core/src/utilities/removeDuplicates.ts", "../../../node_modules/@tiptap/core/src/helpers/getChangedRanges.ts", "../../../node_modules/@tiptap/core/src/helpers/getDebugJSON.ts", "../../../node_modules/@tiptap/core/src/helpers/getMarksBetween.ts", "../../../node_modules/@tiptap/core/src/helpers/getNodeAtPosition.ts", "../../../node_modules/@tiptap/core/src/helpers/getSplittedAttributes.ts", "../../../node_modules/@tiptap/core/src/helpers/isMarkActive.ts", "../../../node_modules/@tiptap/core/src/helpers/isActive.ts", "../../../node_modules/@tiptap/core/src/helpers/isAtEndOfNode.ts", "../../../node_modules/@tiptap/core/src/helpers/isAtStartOfNode.ts", "../../../node_modules/@tiptap/core/src/helpers/isList.ts", "../../../node_modules/@tiptap/core/src/helpers/isNodeEmpty.ts", "../../../node_modules/@tiptap/core/src/helpers/isNodeSelection.ts", "../../../node_modules/@tiptap/core/src/helpers/posToDOMRect.ts", "../../../node_modules/@tiptap/core/src/commands/setMark.ts", "../../../node_modules/@tiptap/core/src/commands/setMeta.ts", "../../../node_modules/@tiptap/core/src/commands/setNode.ts", "../../../node_modules/@tiptap/core/src/commands/setNodeSelection.ts", "../../../node_modules/@tiptap/core/src/commands/setTextSelection.ts", "../../../node_modules/@tiptap/core/src/commands/sinkListItem.ts", "../../../node_modules/@tiptap/core/src/commands/splitBlock.ts", "../../../node_modules/@tiptap/core/src/commands/splitListItem.ts", "../../../node_modules/@tiptap/core/src/commands/toggleList.ts", "../../../node_modules/@tiptap/core/src/commands/toggleMark.ts", "../../../node_modules/@tiptap/core/src/commands/toggleNode.ts", "../../../node_modules/@tiptap/core/src/commands/toggleWrap.ts", "../../../node_modules/@tiptap/core/src/commands/undoInputRule.ts", "../../../node_modules/@tiptap/core/src/commands/unsetAllMarks.ts", "../../../node_modules/@tiptap/core/src/commands/unsetMark.ts", "../../../node_modules/@tiptap/core/src/commands/updateAttributes.ts", "../../../node_modules/@tiptap/core/src/commands/wrapIn.ts", "../../../node_modules/@tiptap/core/src/commands/wrapInList.ts", "../../../node_modules/@tiptap/core/src/extensions/commands.ts", "../../../node_modules/@tiptap/core/src/extensions/editable.ts", "../../../node_modules/@tiptap/core/src/extensions/focusEvents.ts", "../../../node_modules/@tiptap/core/src/extensions/keymap.ts", "../../../node_modules/@tiptap/core/src/extensions/tabindex.ts", "../../../node_modules/@tiptap/core/src/style.ts", "../../../node_modules/@tiptap/core/src/utilities/createStyleTag.ts", "../../../node_modules/@tiptap/core/src/Editor.ts", "../../../node_modules/@tiptap/core/src/inputRules/markInputRule.ts", "../../../node_modules/@tiptap/core/src/inputRules/nodeInputRule.ts", "../../../node_modules/@tiptap/core/src/inputRules/textblockTypeInputRule.ts", "../../../node_modules/@tiptap/core/src/inputRules/textInputRule.ts", "../../../node_modules/@tiptap/core/src/inputRules/wrappingInputRule.ts", "../../../node_modules/@tiptap/core/src/Mark.ts", "../../../node_modules/@tiptap/core/src/Node.ts", "../../../node_modules/@tiptap/core/src/utilities/isAndroid.ts", "../../../node_modules/@tiptap/core/src/NodeView.ts", "../../../node_modules/@tiptap/core/src/pasteRules/markPasteRule.ts", "../../../node_modules/@tiptap/core/src/utilities/escapeForRegEx.ts", "../../../node_modules/@tiptap/core/src/utilities/isString.ts", "../../../node_modules/@tiptap/core/src/pasteRules/nodePasteRule.ts", "../../../node_modules/@tiptap/core/src/pasteRules/textPasteRule.ts", "../../../node_modules/@tiptap/core/src/Tracker.ts", "../../../node_modules/@popperjs/core/lib/enums.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js", "../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js", "../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js", "../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js", "../../../node_modules/@popperjs/core/lib/utils/math.js", "../../../node_modules/@popperjs/core/lib/utils/userAgent.js", "../../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/contains.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js", "../../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js", "../../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js", "../../../node_modules/@popperjs/core/lib/utils/within.js", "../../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js", "../../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js", "../../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js", "../../../node_modules/@popperjs/core/lib/modifiers/arrow.js", "../../../node_modules/@popperjs/core/lib/utils/getVariation.js", "../../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js", "../../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js", "../../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js", "../../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js", "../../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js", "../../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js", "../../../node_modules/@popperjs/core/lib/utils/computeOffsets.js", "../../../node_modules/@popperjs/core/lib/utils/detectOverflow.js", "../../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js", "../../../node_modules/@popperjs/core/lib/modifiers/flip.js", "../../../node_modules/@popperjs/core/lib/modifiers/hide.js", "../../../node_modules/@popperjs/core/lib/modifiers/offset.js", "../../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js", "../../../node_modules/@popperjs/core/lib/utils/getAltAxis.js", "../../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js", "../../../node_modules/@popperjs/core/lib/utils/orderModifiers.js", "../../../node_modules/@popperjs/core/lib/utils/debounce.js", "../../../node_modules/@popperjs/core/lib/utils/mergeByName.js", "../../../node_modules/@popperjs/core/lib/createPopper.js", "../../../node_modules/@popperjs/core/lib/popper.js", "../../../node_modules/tippy.js/src/constants.ts", "../../../node_modules/tippy.js/src/utils.ts", "../../../node_modules/tippy.js/src/dom-utils.ts", "../../../node_modules/tippy.js/src/bindGlobalEventListeners.ts", "../../../node_modules/tippy.js/src/browser.ts", "../../../node_modules/tippy.js/src/validation.ts", "../../../node_modules/tippy.js/src/props.ts", "../../../node_modules/tippy.js/src/template.ts", "../../../node_modules/tippy.js/src/createTippy.ts", "../../../node_modules/tippy.js/src/index.ts", "../../../node_modules/tippy.js/src/addons/createSingleton.ts", "../../../node_modules/tippy.js/src/addons/delegate.ts", "../../../node_modules/tippy.js/src/plugins/animateFill.ts", "../../../node_modules/tippy.js/src/plugins/followCursor.ts", "../../../node_modules/tippy.js/src/plugins/inlinePositioning.ts", "../../../node_modules/tippy.js/src/plugins/sticky.ts", "../../../node_modules/tippy.js/build/base.js", "../../../node_modules/@tiptap/extension-bubble-menu/src/bubble-menu-plugin.ts", "../../../node_modules/@tiptap/extension-bubble-menu/src/bubble-menu.ts", "../../../node_modules/@tiptap/react/src/EditorContent.tsx", "../../../node_modules/@tiptap/react/src/Editor.ts", "../../../node_modules/@tiptap/react/src/useEditor.ts", "../../../node_modules/@tiptap/react/src/Context.tsx", "../../../node_modules/@tiptap/react/src/BubbleMenu.tsx", "../../../node_modules/@tiptap/react/src/FloatingMenu.tsx", "../../../node_modules/@tiptap/react/src/useReactNodeView.ts", "../../../node_modules/@tiptap/react/src/NodeViewContent.tsx", "../../../node_modules/@tiptap/react/src/NodeViewWrapper.tsx", "../../../node_modules/@tiptap/react/src/ReactRenderer.tsx", "../../../node_modules/@tiptap/react/src/ReactNodeViewRenderer.tsx", "../../../node_modules/@tiptap/extension-list-item/src/list-item.ts", "../../../node_modules/@tiptap/extension-text-style/src/text-style.ts", "../../../node_modules/@tiptap/extension-bullet-list/src/bullet-list.ts", "../../../node_modules/@tiptap/extension-list-item/src/list-item.ts", "../../../node_modules/@tiptap/extension-text/src/text.ts", "../../../node_modules/@tiptap/extension-paragraph/src/paragraph.ts", "../../../node_modules/@tiptap/extension-document/src/document.ts", "../../../node_modules/@heroicons/react/24/outline/esm/AdjustmentsHorizontalIcon.js", "../../../node_modules/@heroicons/react/24/outline/esm/HashtagIcon.js", "../../../node_modules/@heroicons/react/24/outline/esm/ListBulletIcon.js", "../../../node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassMinusIcon.js", "../../../node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassIcon.js", "../../../node_modules/@heroicons/react/24/outline/esm/MinusCircleIcon.js", "../../../node_modules/@heroicons/react/24/outline/esm/PaperAirplaneIcon.js", "../../../node_modules/@heroicons/react/24/outline/esm/PlusIcon.js", "../../../node_modules/@heroicons/react/24/outline/esm/StopIcon.js", "../../../node_modules/@heroicons/react/24/outline/esm/TagIcon.js", "../../../node_modules/@heroicons/react/24/outline/esm/TrashIcon.js", "../../../node_modules/linkifyjs/dist/linkify.es.js", "../../../node_modules/@tiptap/extension-link/src/helpers/autolink.ts", "../../../node_modules/@tiptap/extension-link/src/helpers/clickHandler.ts", "../../../node_modules/@tiptap/extension-link/src/helpers/pasteHandler.ts", "../../../node_modules/@tiptap/extension-link/src/link.ts", "../../site/source/rich-text-links.ts", "../../site/source/URLEditor.tsx", "../../site/components/modal.tsx", "../../../node_modules/react-markdown/lib/uri-transformer.js", "../../../node_modules/react-markdown/lib/react-markdown.js", "../../../node_modules/vfile/lib/index.js", "../../../node_modules/unist-util-stringify-position/lib/index.js", "../../../node_modules/vfile-message/lib/index.js", "../../../node_modules/vfile/lib/minpath.browser.js", "../../../node_modules/vfile/lib/minproc.browser.js", "../../../node_modules/vfile/lib/minurl.shared.js", "../../../node_modules/vfile/lib/minurl.browser.js", "../../../node_modules/bail/index.js", "../../../node_modules/unified/lib/index.js", "../../../node_modules/is-plain-obj/index.js", "../../../node_modules/trough/index.js", "../../../node_modules/mdast-util-to-string/lib/index.js", "../../../node_modules/micromark-util-chunked/index.js", "../../../node_modules/micromark-util-combine-extensions/index.js", "../../../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js", "../../../node_modules/micromark-util-character/index.js", "../../../node_modules/micromark-factory-space/index.js", "../../../node_modules/micromark/lib/initialize/content.js", "../../../node_modules/micromark/lib/initialize/document.js", "../../../node_modules/micromark-util-classify-character/index.js", "../../../node_modules/micromark-util-resolve-all/index.js", "../../../node_modules/micromark-core-commonmark/lib/attention.js", "../../../node_modules/micromark-core-commonmark/lib/autolink.js", "../../../node_modules/micromark-core-commonmark/lib/blank-line.js", "../../../node_modules/micromark-core-commonmark/lib/block-quote.js", "../../../node_modules/micromark-core-commonmark/lib/character-escape.js", "../../../node_modules/decode-named-character-reference/index.dom.js", "../../../node_modules/micromark-core-commonmark/lib/character-reference.js", "../../../node_modules/micromark-core-commonmark/lib/code-fenced.js", "../../../node_modules/micromark-core-commonmark/lib/code-indented.js", "../../../node_modules/micromark-core-commonmark/lib/code-text.js", "../../../node_modules/micromark-util-subtokenize/index.js", "../../../node_modules/micromark-core-commonmark/lib/content.js", "../../../node_modules/micromark-factory-destination/index.js", "../../../node_modules/micromark-factory-label/index.js", "../../../node_modules/micromark-factory-title/index.js", "../../../node_modules/micromark-factory-whitespace/index.js", "../../../node_modules/micromark-util-normalize-identifier/index.js", "../../../node_modules/micromark-core-commonmark/lib/definition.js", "../../../node_modules/micromark-core-commonmark/lib/hard-break-escape.js", "../../../node_modules/micromark-core-commonmark/lib/heading-atx.js", "../../../node_modules/micromark-util-html-tag-name/index.js", "../../../node_modules/micromark-core-commonmark/lib/html-flow.js", "../../../node_modules/micromark-core-commonmark/lib/html-text.js", "../../../node_modules/micromark-core-commonmark/lib/label-end.js", "../../../node_modules/micromark-core-commonmark/lib/label-start-image.js", "../../../node_modules/micromark-core-commonmark/lib/label-start-link.js", "../../../node_modules/micromark-core-commonmark/lib/line-ending.js", "../../../node_modules/micromark-core-commonmark/lib/thematic-break.js", "../../../node_modules/micromark-core-commonmark/lib/list.js", "../../../node_modules/micromark-core-commonmark/lib/setext-underline.js", "../../../node_modules/micromark/lib/initialize/flow.js", "../../../node_modules/micromark/lib/initialize/text.js", "../../../node_modules/micromark/lib/create-tokenizer.js", "../../../node_modules/micromark/lib/constructs.js", "../../../node_modules/micromark/lib/parse.js", "../../../node_modules/micromark/lib/preprocess.js", "../../../node_modules/micromark/lib/postprocess.js", "../../../node_modules/micromark-util-decode-numeric-character-reference/index.js", "../../../node_modules/micromark-util-decode-string/index.js", "../../../node_modules/mdast-util-from-markdown/lib/index.js", "../../../node_modules/remark-parse/lib/index.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/break.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/code.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/delete.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js", "../../../node_modules/micromark-util-sanitize-uri/index.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/footnote.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/heading.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/html.js", "../../../node_modules/mdast-util-to-hast/lib/revert.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/image.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/link.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/list-item.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/list.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/root.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/strong.js", "../../../node_modules/unist-util-position/lib/index.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/table.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/table-row.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js", "../../../node_modules/trim-lines/index.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/text.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js", "../../../node_modules/mdast-util-to-hast/lib/handlers/index.js", "../../../node_modules/unist-util-is/lib/index.js", "../../../node_modules/unist-util-visit-parents/lib/index.js", "../../../node_modules/unist-util-visit/lib/index.js", "../../../node_modules/unist-util-generated/lib/index.js", "../../../node_modules/mdast-util-definitions/lib/index.js", "../../../node_modules/mdast-util-to-hast/lib/state.js", "../../../node_modules/mdast-util-to-hast/lib/footer.js", "../../../node_modules/mdast-util-to-hast/lib/index.js", "../../../node_modules/remark-rehype/lib/index.js", "../../../node_modules/property-information/lib/util/schema.js", "../../../node_modules/property-information/lib/util/merge.js", "../../../node_modules/property-information/lib/normalize.js", "../../../node_modules/property-information/lib/util/info.js", "../../../node_modules/property-information/lib/util/types.js", "../../../node_modules/property-information/lib/util/defined-info.js", "../../../node_modules/property-information/lib/util/create.js", "../../../node_modules/property-information/lib/xlink.js", "../../../node_modules/property-information/lib/xml.js", "../../../node_modules/property-information/lib/util/case-sensitive-transform.js", "../../../node_modules/property-information/lib/util/case-insensitive-transform.js", "../../../node_modules/property-information/lib/xmlns.js", "../../../node_modules/property-information/lib/aria.js", "../../../node_modules/property-information/lib/html.js", "../../../node_modules/property-information/lib/svg.js", "../../../node_modules/property-information/lib/find.js", "../../../node_modules/property-information/lib/hast-to-react.js", "../../../node_modules/property-information/index.js", "../../../node_modules/react-markdown/lib/rehype-filter.js", "../../../node_modules/react-markdown/lib/ast-to-react.js", "../../../node_modules/hast-util-whitespace/index.js", "../../../node_modules/space-separated-tokens/index.js", "../../../node_modules/comma-separated-tokens/index.js", "../../../node_modules/style-to-object/index.mjs", "../../../node_modules/rope-sequence/dist/index.js", "../../../node_modules/prosemirror-history/dist/index.js", "../../../node_modules/@tiptap/extension-history/src/history.ts", "../../site/form/Form.tsx", "../../site/util/predicates.ts", "../../site/util/proto.ts", "../../site/util/text.ts", "../../site/form/walk.ts", "../../../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts", "../../../node_modules/react-hook-form/src/utils/isDateObject.ts", "../../../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts", "../../../node_modules/react-hook-form/src/utils/isObject.ts", "../../../node_modules/react-hook-form/src/logic/getEventValue.ts", "../../../node_modules/react-hook-form/src/logic/getNodeParentName.ts", "../../../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts", "../../../node_modules/react-hook-form/src/utils/isPlainObject.ts", "../../../node_modules/react-hook-form/src/utils/isWeb.ts", "../../../node_modules/react-hook-form/src/utils/cloneObject.ts", "../../../node_modules/react-hook-form/src/utils/compact.ts", "../../../node_modules/react-hook-form/src/utils/isUndefined.ts", "../../../node_modules/react-hook-form/src/utils/get.ts", "../../../node_modules/react-hook-form/src/utils/isBoolean.ts", "../../../node_modules/react-hook-form/src/constants.ts", "../../../node_modules/react-hook-form/src/useFormContext.tsx", "../../../node_modules/react-hook-form/src/logic/getProxyFormState.ts", "../../../node_modules/react-hook-form/src/utils/isEmptyObject.ts", "../../../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts", "../../../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts", "../../../node_modules/react-hook-form/src/logic/shouldSubscribeByName.ts", "../../../node_modules/react-hook-form/src/useSubscribe.ts", "../../../node_modules/react-hook-form/src/useFormState.ts", "../../../node_modules/react-hook-form/src/utils/isString.ts", "../../../node_modules/react-hook-form/src/logic/generateWatchOutput.ts", "../../../node_modules/react-hook-form/src/useWatch.ts", "../../../node_modules/react-hook-form/src/utils/isKey.ts", "../../../node_modules/react-hook-form/src/utils/stringToPath.ts", "../../../node_modules/react-hook-form/src/utils/set.ts", "../../../node_modules/react-hook-form/src/useController.ts", "../../../node_modules/react-hook-form/src/controller.tsx", "../../../node_modules/react-hook-form/src/form.tsx", "../../../node_modules/react-hook-form/src/logic/appendErrors.ts", "../../../node_modules/react-hook-form/src/logic/generateId.ts", "../../../node_modules/react-hook-form/src/logic/getFocusFieldName.ts", "../../../node_modules/react-hook-form/src/logic/getValidationModes.ts", "../../../node_modules/react-hook-form/src/logic/isWatched.ts", "../../../node_modules/react-hook-form/src/logic/iterateFieldsByAction.ts", "../../../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts", "../../../node_modules/react-hook-form/src/utils/isFileInput.ts", "../../../node_modules/react-hook-form/src/utils/isFunction.ts", "../../../node_modules/react-hook-form/src/utils/isHTMLElement.ts", "../../../node_modules/react-hook-form/src/utils/isMessage.ts", "../../../node_modules/react-hook-form/src/utils/isRadioInput.ts", "../../../node_modules/react-hook-form/src/utils/isRegex.ts", "../../../node_modules/react-hook-form/src/logic/getCheckboxValue.ts", "../../../node_modules/react-hook-form/src/logic/getRadioValue.ts", "../../../node_modules/react-hook-form/src/logic/getValidateError.ts", "../../../node_modules/react-hook-form/src/logic/getValueAndMessage.ts", "../../../node_modules/react-hook-form/src/logic/validateField.ts", "../../../node_modules/react-hook-form/src/utils/append.ts", "../../../node_modules/react-hook-form/src/utils/fillEmptyArray.ts", "../../../node_modules/react-hook-form/src/utils/insert.ts", "../../../node_modules/react-hook-form/src/utils/move.ts", "../../../node_modules/react-hook-form/src/utils/prepend.ts", "../../../node_modules/react-hook-form/src/utils/remove.ts", "../../../node_modules/react-hook-form/src/utils/swap.ts", "../../../node_modules/react-hook-form/src/utils/unset.ts", "../../../node_modules/react-hook-form/src/utils/update.ts", "../../../node_modules/react-hook-form/src/useFieldArray.ts", "../../../node_modules/react-hook-form/src/utils/createSubject.ts", "../../../node_modules/react-hook-form/src/utils/isPrimitive.ts", "../../../node_modules/react-hook-form/src/utils/deepEqual.ts", "../../../node_modules/react-hook-form/src/utils/isMultipleSelect.ts", "../../../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts", "../../../node_modules/react-hook-form/src/utils/live.ts", "../../../node_modules/react-hook-form/src/utils/objectHasFunction.ts", "../../../node_modules/react-hook-form/src/logic/getDirtyFields.ts", "../../../node_modules/react-hook-form/src/logic/getFieldValueAs.ts", "../../../node_modules/react-hook-form/src/logic/getFieldValue.ts", "../../../node_modules/react-hook-form/src/logic/getResolverOptions.ts", "../../../node_modules/react-hook-form/src/logic/getRuleValue.ts", "../../../node_modules/react-hook-form/src/logic/hasValidation.ts", "../../../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts", "../../../node_modules/react-hook-form/src/logic/skipValidation.ts", "../../../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts", "../../../node_modules/react-hook-form/src/logic/createFormControl.ts", "../../../node_modules/react-hook-form/src/useForm.ts", "../../site/util/form.ts", "../../site/source/editors/FileEditor.tsx", "../../site/source/editors/SiteEditor.tsx", "../../site/source/editors/SectionEditor.tsx", "../../site/tag/AddTagBadge.tsx", "../../site/tag/FilteredTagInput.tsx", "../../../node_modules/@uidotdev/usehooks/index.js", "../../site/tag/state.ts", "../../site/source/editors/ChatGPTConversationEditor.tsx", "../../../node_modules/@tiptap/extension-bold/src/bold.ts", "../../../node_modules/@tiptap/extension-italic/src/italic.ts", "../../../node_modules/@tiptap/extension-strike/src/strike.ts", "../../site/source/ContentDrawer.tsx", "../../extension/util.ts", "../../../node_modules/@tiptap/extension-blockquote/src/blockquote.ts", "../../../node_modules/@tiptap/extension-heading/src/heading.ts", "../../../node_modules/@tiptap/extension-code/src/code.ts", "../../../node_modules/highlight.js/es/languages/css.js", "../../../node_modules/highlight.js/es/languages/javascript.js", "../../../node_modules/highlight.js/es/languages/typescript.js", "../../../node_modules/highlight.js/es/languages/xml.js", "../../../node_modules/highlight.js/es/languages/go.js", "../../../node_modules/highlight.js/es/core.js", "../../../node_modules/lowlight/lib/index.js", "../../../node_modules/@tiptap/extension-code-block/src/code-block.ts", "../../../node_modules/node_modules/highlight.js/lib/core.js", "../../../node_modules/@tiptap/extension-code-block-lowlight/src/lowlight-plugin.ts", "../../../node_modules/@tiptap/extension-code-block-lowlight/src/code-block-lowlight.ts", "../../site/source/CodeBlockComponent.tsx", "../../../node_modules/prosemirror-dropcursor/dist/index.js", "../../../node_modules/@tiptap/extension-dropcursor/src/dropcursor.ts", "../../site/source/ResizeImage.tsx", "../../../node_modules/@tiptap/extension-image/src/image.ts", "../../site/home/Home.tsx", "../../site/chat/ChatPage.tsx", "../../site/chat/state.ts", "../../site/chat/Chat.tsx", "../../site/util/time.ts", "../../site/auth/VerifyPage.tsx", "../../site/admin/Admin.tsx", "../../site/App.tsx"], - "sourcesContent": ["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n", "/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // \u201Csources\u201D entry. This value is prepended to the individual\n // entries in the \u201Csource\u201D field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // \u201CsourceRoot\u201D, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n throw new Error(\n 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n );\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n", "/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n", "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\nvar splitPath = function(filename) {\n return splitPathRe.exec(filename).slice(1);\n};\n\n// path.resolve([from ...], to)\n// posix version\nexport function resolve() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : '/';\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexport function normalize(path) {\n var isPathAbsolute = isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isPathAbsolute).join('/');\n\n if (!path && !isPathAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexport function isAbsolute(path) {\n return path.charAt(0) === '/';\n}\n\n// posix version\nexport function join() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n}\n\n\n// path.relative(from, to)\n// posix version\nexport function relative(from, to) {\n from = resolve(from).substr(1);\n to = resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n}\n\nexport var sep = '/';\nexport var delimiter = ':';\n\nexport function dirname(path) {\n var result = splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n}\n\nexport function basename(path, ext) {\n var f = splitPath(path)[2];\n // TODO: make this comparison case-insensitive on windows?\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n}\n\n\nexport function extname(path) {\n return splitPath(path)[3];\n}\nexport default {\n extname: extname,\n basename: basename,\n dirname: dirname,\n sep: sep,\n delimiter: delimiter,\n relative: relative,\n join: join,\n isAbsolute: isAbsolute,\n normalize: normalize,\n resolve: resolve\n};\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b' ?\n function (str, start, len) { return str.substr(start, len) } :\n function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n", "\nconst polyfill = require('path')\n\nif (polyfill && polyfill.default) {\n module.exports = polyfill.default\n for (let k in polyfill) {\n module.exports[k] = polyfill[k]\n }\n} else if (polyfill) {\n module.exports = polyfill\n}\n\n\n", "export default {};\n", "\nconst polyfill = require('fs')\n\nif (polyfill && polyfill.default) {\n module.exports = polyfill.default\n for (let k in polyfill) {\n module.exports[k] = polyfill[k]\n }\n} else if (polyfill) {\n module.exports = polyfill\n}\n\n\n", "/* eslint-disable node/no-deprecated-api */\n\nvar toString = Object.prototype.toString\n\nvar isModern = (\n typeof Buffer !== 'undefined' &&\n typeof Buffer.alloc === 'function' &&\n typeof Buffer.allocUnsafe === 'function' &&\n typeof Buffer.from === 'function'\n)\n\nfunction isArrayBuffer (input) {\n return toString.call(input).slice(8, -1) === 'ArrayBuffer'\n}\n\nfunction fromArrayBuffer (obj, byteOffset, length) {\n byteOffset >>>= 0\n\n var maxLength = obj.byteLength - byteOffset\n\n if (maxLength < 0) {\n throw new RangeError(\"'offset' is out of bounds\")\n }\n\n if (length === undefined) {\n length = maxLength\n } else {\n length >>>= 0\n\n if (length > maxLength) {\n throw new RangeError(\"'length' is out of bounds\")\n }\n }\n\n return isModern\n ? Buffer.from(obj.slice(byteOffset, byteOffset + length))\n : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length)))\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n return isModern\n ? Buffer.from(string, encoding)\n : new Buffer(string, encoding)\n}\n\nfunction bufferFrom (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (isArrayBuffer(value)) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n return isModern\n ? Buffer.from(value)\n : new Buffer(value)\n}\n\nmodule.exports = bufferFrom\n", "var SourceMapConsumer = require('source-map').SourceMapConsumer;\nvar path = require('path');\n\nvar fs;\ntry {\n fs = require('fs');\n if (!fs.existsSync || !fs.readFileSync) {\n // fs doesn't have all methods we need\n fs = null;\n }\n} catch (err) {\n /* nop */\n}\n\nvar bufferFrom = require('buffer-from');\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param {NodeModule} mod\n * @param {string} request\n */\nfunction dynamicRequire(mod, request) {\n return mod.require(request);\n}\n\n// Only install once if called multiple times\nvar errorFormatterInstalled = false;\nvar uncaughtShimInstalled = false;\n\n// If true, the caches are reset before a stack trace formatting operation\nvar emptyCacheBetweenOperations = false;\n\n// Supports {browser, node, auto}\nvar environment = \"auto\";\n\n// Maps a file path to a string containing the file contents\nvar fileContentsCache = {};\n\n// Maps a file path to a source map for that file\nvar sourceMapCache = {};\n\n// Regex for detecting source maps\nvar reSourceMap = /^data:application\\/json[^,]+base64,/;\n\n// Priority list of retrieve handlers\nvar retrieveFileHandlers = [];\nvar retrieveMapHandlers = [];\n\nfunction isInBrowser() {\n if (environment === \"browser\")\n return true;\n if (environment === \"node\")\n return false;\n return ((typeof window !== 'undefined') && (typeof XMLHttpRequest === 'function') && !(window.require && window.module && window.process && window.process.type === \"renderer\"));\n}\n\nfunction hasGlobalProcessEventEmitter() {\n return ((typeof process === 'object') && (process !== null) && (typeof process.on === 'function'));\n}\n\nfunction globalProcessVersion() {\n if ((typeof process === 'object') && (process !== null)) {\n return process.version;\n } else {\n return '';\n }\n}\n\nfunction globalProcessStderr() {\n if ((typeof process === 'object') && (process !== null)) {\n return process.stderr;\n }\n}\n\nfunction globalProcessExit(code) {\n if ((typeof process === 'object') && (process !== null) && (typeof process.exit === 'function')) {\n return process.exit(code);\n }\n}\n\nfunction handlerExec(list) {\n return function(arg) {\n for (var i = 0; i < list.length; i++) {\n var ret = list[i](arg);\n if (ret) {\n return ret;\n }\n }\n return null;\n };\n}\n\nvar retrieveFile = handlerExec(retrieveFileHandlers);\n\nretrieveFileHandlers.push(function(path) {\n // Trim the path to make sure there is no extra whitespace.\n path = path.trim();\n if (/^file:/.test(path)) {\n // existsSync/readFileSync can't handle file protocol, but once stripped, it works\n path = path.replace(/file:\\/\\/\\/(\\w:)?/, function(protocol, drive) {\n return drive ?\n '' : // file:///C:/dir/file -> C:/dir/file\n '/'; // file:///root-dir/file -> /root-dir/file\n });\n }\n if (path in fileContentsCache) {\n return fileContentsCache[path];\n }\n\n var contents = '';\n try {\n if (!fs) {\n // Use SJAX if we are in the browser\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path, /** async */ false);\n xhr.send(null);\n if (xhr.readyState === 4 && xhr.status === 200) {\n contents = xhr.responseText;\n }\n } else if (fs.existsSync(path)) {\n // Otherwise, use the filesystem\n contents = fs.readFileSync(path, 'utf8');\n }\n } catch (er) {\n /* ignore any errors */\n }\n\n return fileContentsCache[path] = contents;\n});\n\n// Support URLs relative to a directory, but be careful about a protocol prefix\n// in case we are in the browser (i.e. directories may start with \"http://\" or \"file:///\")\nfunction supportRelativeURL(file, url) {\n if (!file) return url;\n var dir = path.dirname(file);\n var match = /^\\w+:\\/\\/[^\\/]*/.exec(dir);\n var protocol = match ? match[0] : '';\n var startPath = dir.slice(protocol.length);\n if (protocol && /^\\/\\w\\:/.test(startPath)) {\n // handle file:///C:/ paths\n protocol += '/';\n return protocol + path.resolve(dir.slice(protocol.length), url).replace(/\\\\/g, '/');\n }\n return protocol + path.resolve(dir.slice(protocol.length), url);\n}\n\nfunction retrieveSourceMapURL(source) {\n var fileData;\n\n if (isInBrowser()) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', source, false);\n xhr.send(null);\n fileData = xhr.readyState === 4 ? xhr.responseText : null;\n\n // Support providing a sourceMappingURL via the SourceMap header\n var sourceMapHeader = xhr.getResponseHeader(\"SourceMap\") ||\n xhr.getResponseHeader(\"X-SourceMap\");\n if (sourceMapHeader) {\n return sourceMapHeader;\n }\n } catch (e) {\n }\n }\n\n // Get the URL of the source map\n fileData = retrieveFile(source);\n var re = /(?:\\/\\/[@#][\\s]*sourceMappingURL=([^\\s'\"]+)[\\s]*$)|(?:\\/\\*[@#][\\s]*sourceMappingURL=([^\\s*'\"]+)[\\s]*(?:\\*\\/)[\\s]*$)/mg;\n // Keep executing the search to find the *last* sourceMappingURL to avoid\n // picking up sourceMappingURLs from comments, strings, etc.\n var lastMatch, match;\n while (match = re.exec(fileData)) lastMatch = match;\n if (!lastMatch) return null;\n return lastMatch[1];\n};\n\n// Can be overridden by the retrieveSourceMap option to install. Takes a\n// generated source filename; returns a {map, optional url} object, or null if\n// there is no source map. The map field may be either a string or the parsed\n// JSON object (ie, it must be a valid argument to the SourceMapConsumer\n// constructor).\nvar retrieveSourceMap = handlerExec(retrieveMapHandlers);\nretrieveMapHandlers.push(function(source) {\n var sourceMappingURL = retrieveSourceMapURL(source);\n if (!sourceMappingURL) return null;\n\n // Read the contents of the source map\n var sourceMapData;\n if (reSourceMap.test(sourceMappingURL)) {\n // Support source map URL as a data url\n var rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(',') + 1);\n sourceMapData = bufferFrom(rawData, \"base64\").toString();\n sourceMappingURL = source;\n } else {\n // Support source map URLs relative to the source URL\n sourceMappingURL = supportRelativeURL(source, sourceMappingURL);\n sourceMapData = retrieveFile(sourceMappingURL);\n }\n\n if (!sourceMapData) {\n return null;\n }\n\n return {\n url: sourceMappingURL,\n map: sourceMapData\n };\n});\n\nfunction mapSourcePosition(position) {\n var sourceMap = sourceMapCache[position.source];\n if (!sourceMap) {\n // Call the (overrideable) retrieveSourceMap function to get the source map.\n var urlAndMap = retrieveSourceMap(position.source);\n if (urlAndMap) {\n sourceMap = sourceMapCache[position.source] = {\n url: urlAndMap.url,\n map: new SourceMapConsumer(urlAndMap.map)\n };\n\n // Load all sources stored inline with the source map into the file cache\n // to pretend like they are already loaded. They may not exist on disk.\n if (sourceMap.map.sourcesContent) {\n sourceMap.map.sources.forEach(function(source, i) {\n var contents = sourceMap.map.sourcesContent[i];\n if (contents) {\n var url = supportRelativeURL(sourceMap.url, source);\n fileContentsCache[url] = contents;\n }\n });\n }\n } else {\n sourceMap = sourceMapCache[position.source] = {\n url: null,\n map: null\n };\n }\n }\n\n // Resolve the source URL relative to the URL of the source map\n if (sourceMap && sourceMap.map && typeof sourceMap.map.originalPositionFor === 'function') {\n var originalPosition = sourceMap.map.originalPositionFor(position);\n\n // Only return the original position if a matching line was found. If no\n // matching line is found then we return position instead, which will cause\n // the stack trace to print the path and line for the compiled file. It is\n // better to give a precise location in the compiled file than a vague\n // location in the original file.\n if (originalPosition.source !== null) {\n originalPosition.source = supportRelativeURL(\n sourceMap.url, originalPosition.source);\n return originalPosition;\n }\n }\n\n return position;\n}\n\n// Parses code generated by FormatEvalOrigin(), a function inside V8:\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js\nfunction mapEvalOrigin(origin) {\n // Most eval() calls are in this format\n var match = /^eval at ([^(]+) \\((.+):(\\d+):(\\d+)\\)$/.exec(origin);\n if (match) {\n var position = mapSourcePosition({\n source: match[2],\n line: +match[3],\n column: match[4] - 1\n });\n return 'eval at ' + match[1] + ' (' + position.source + ':' +\n position.line + ':' + (position.column + 1) + ')';\n }\n\n // Parse nested eval() calls using recursion\n match = /^eval at ([^(]+) \\((.+)\\)$/.exec(origin);\n if (match) {\n return 'eval at ' + match[1] + ' (' + mapEvalOrigin(match[2]) + ')';\n }\n\n // Make sure we still return useful information if we didn't find anything\n return origin;\n}\n\n// This is copied almost verbatim from the V8 source code at\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js. The\n// implementation of wrapCallSite() used to just forward to the actual source\n// code of CallSite.prototype.toString but unfortunately a new release of V8\n// did something to the prototype chain and broke the shim. The only fix I\n// could find was copy/paste.\nfunction CallSiteToString() {\n var fileName;\n var fileLocation = \"\";\n if (this.isNative()) {\n fileLocation = \"native\";\n } else {\n fileName = this.getScriptNameOrSourceURL();\n if (!fileName && this.isEval()) {\n fileLocation = this.getEvalOrigin();\n fileLocation += \", \"; // Expecting source position to follow.\n }\n\n if (fileName) {\n fileLocation += fileName;\n } else {\n // Source code does not originate from a file and is not native, but we\n // can still get the source position inside the source string, e.g. in\n // an eval string.\n fileLocation += \"\";\n }\n var lineNumber = this.getLineNumber();\n if (lineNumber != null) {\n fileLocation += \":\" + lineNumber;\n var columnNumber = this.getColumnNumber();\n if (columnNumber) {\n fileLocation += \":\" + columnNumber;\n }\n }\n }\n\n var line = \"\";\n var functionName = this.getFunctionName();\n var addSuffix = true;\n var isConstructor = this.isConstructor();\n var isMethodCall = !(this.isToplevel() || isConstructor);\n if (isMethodCall) {\n var typeName = this.getTypeName();\n // Fixes shim to be backward compatable with Node v0 to v4\n if (typeName === \"[object Object]\") {\n typeName = \"null\";\n }\n var methodName = this.getMethodName();\n if (functionName) {\n if (typeName && functionName.indexOf(typeName) != 0) {\n line += typeName + \".\";\n }\n line += functionName;\n if (methodName && functionName.indexOf(\".\" + methodName) != functionName.length - methodName.length - 1) {\n line += \" [as \" + methodName + \"]\";\n }\n } else {\n line += typeName + \".\" + (methodName || \"\");\n }\n } else if (isConstructor) {\n line += \"new \" + (functionName || \"\");\n } else if (functionName) {\n line += functionName;\n } else {\n line += fileLocation;\n addSuffix = false;\n }\n if (addSuffix) {\n line += \" (\" + fileLocation + \")\";\n }\n return line;\n}\n\nfunction cloneCallSite(frame) {\n var object = {};\n Object.getOwnPropertyNames(Object.getPrototypeOf(frame)).forEach(function(name) {\n object[name] = /^(?:is|get)/.test(name) ? function() { return frame[name].call(frame); } : frame[name];\n });\n object.toString = CallSiteToString;\n return object;\n}\n\nfunction wrapCallSite(frame, state) {\n // provides interface backward compatibility\n if (state === undefined) {\n state = { nextPosition: null, curPosition: null }\n }\n if(frame.isNative()) {\n state.curPosition = null;\n return frame;\n }\n\n // Most call sites will return the source file from getFileName(), but code\n // passed to eval() ending in \"//# sourceURL=...\" will return the source file\n // from getScriptNameOrSourceURL() instead\n var source = frame.getFileName() || frame.getScriptNameOrSourceURL();\n if (source) {\n var line = frame.getLineNumber();\n var column = frame.getColumnNumber() - 1;\n\n // Fix position in Node where some (internal) code is prepended.\n // See https://github.com/evanw/node-source-map-support/issues/36\n // Header removed in node at ^10.16 || >=11.11.0\n // v11 is not an LTS candidate, we can just test the one version with it.\n // Test node versions for: 10.16-19, 10.20+, 12-19, 20-99, 100+, or 11.11\n var noHeader = /^v(10\\.1[6-9]|10\\.[2-9][0-9]|10\\.[0-9]{3,}|1[2-9]\\d*|[2-9]\\d|\\d{3,}|11\\.11)/;\n var headerLength = noHeader.test(globalProcessVersion()) ? 0 : 62;\n if (line === 1 && column > headerLength && !isInBrowser() && !frame.isEval()) {\n column -= headerLength;\n }\n\n var position = mapSourcePosition({\n source: source,\n line: line,\n column: column\n });\n state.curPosition = position;\n frame = cloneCallSite(frame);\n var originalFunctionName = frame.getFunctionName;\n frame.getFunctionName = function() {\n if (state.nextPosition == null) {\n return originalFunctionName();\n }\n return state.nextPosition.name || originalFunctionName();\n };\n frame.getFileName = function() { return position.source; };\n frame.getLineNumber = function() { return position.line; };\n frame.getColumnNumber = function() { return position.column + 1; };\n frame.getScriptNameOrSourceURL = function() { return position.source; };\n return frame;\n }\n\n // Code called using eval() needs special handling\n var origin = frame.isEval() && frame.getEvalOrigin();\n if (origin) {\n origin = mapEvalOrigin(origin);\n frame = cloneCallSite(frame);\n frame.getEvalOrigin = function() { return origin; };\n return frame;\n }\n\n // If we get here then we were unable to change the source position\n return frame;\n}\n\n// This function is part of the V8 stack trace API, for more info see:\n// https://v8.dev/docs/stack-trace-api\nfunction prepareStackTrace(error, stack) {\n if (emptyCacheBetweenOperations) {\n fileContentsCache = {};\n sourceMapCache = {};\n }\n\n var name = error.name || 'Error';\n var message = error.message || '';\n var errorString = name + \": \" + message;\n\n var state = { nextPosition: null, curPosition: null };\n var processedStack = [];\n for (var i = stack.length - 1; i >= 0; i--) {\n processedStack.push('\\n at ' + wrapCallSite(stack[i], state));\n state.nextPosition = state.curPosition;\n }\n state.curPosition = state.nextPosition = null;\n return errorString + processedStack.reverse().join('');\n}\n\n// Generate position and snippet of original source with pointer\nfunction getErrorSource(error) {\n var match = /\\n at [^(]+ \\((.*):(\\d+):(\\d+)\\)/.exec(error.stack);\n if (match) {\n var source = match[1];\n var line = +match[2];\n var column = +match[3];\n\n // Support the inline sourceContents inside the source map\n var contents = fileContentsCache[source];\n\n // Support files on disk\n if (!contents && fs && fs.existsSync(source)) {\n try {\n contents = fs.readFileSync(source, 'utf8');\n } catch (er) {\n contents = '';\n }\n }\n\n // Format the line from the original source code like node does\n if (contents) {\n var code = contents.split(/(?:\\r\\n|\\r|\\n)/)[line - 1];\n if (code) {\n return source + ':' + line + '\\n' + code + '\\n' +\n new Array(column).join(' ') + '^';\n }\n }\n }\n return null;\n}\n\nfunction printErrorAndExit (error) {\n var source = getErrorSource(error);\n\n // Ensure error is printed synchronously and not truncated\n var stderr = globalProcessStderr();\n if (stderr && stderr._handle && stderr._handle.setBlocking) {\n stderr._handle.setBlocking(true);\n }\n\n if (source) {\n console.error();\n console.error(source);\n }\n\n console.error(error.stack);\n globalProcessExit(1);\n}\n\nfunction shimEmitUncaughtException () {\n var origEmit = process.emit;\n\n process.emit = function (type) {\n if (type === 'uncaughtException') {\n var hasStack = (arguments[1] && arguments[1].stack);\n var hasListeners = (this.listeners(type).length > 0);\n\n if (hasStack && !hasListeners) {\n return printErrorAndExit(arguments[1]);\n }\n }\n\n return origEmit.apply(this, arguments);\n };\n}\n\nvar originalRetrieveFileHandlers = retrieveFileHandlers.slice(0);\nvar originalRetrieveMapHandlers = retrieveMapHandlers.slice(0);\n\nexports.wrapCallSite = wrapCallSite;\nexports.getErrorSource = getErrorSource;\nexports.mapSourcePosition = mapSourcePosition;\nexports.retrieveSourceMap = retrieveSourceMap;\n\nexports.install = function(options) {\n options = options || {};\n\n if (options.environment) {\n environment = options.environment;\n if ([\"node\", \"browser\", \"auto\"].indexOf(environment) === -1) {\n throw new Error(\"environment \" + environment + \" was unknown. Available options are {auto, browser, node}\")\n }\n }\n\n // Allow sources to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveFile) {\n if (options.overrideRetrieveFile) {\n retrieveFileHandlers.length = 0;\n }\n\n retrieveFileHandlers.unshift(options.retrieveFile);\n }\n\n // Allow source maps to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveSourceMap) {\n if (options.overrideRetrieveSourceMap) {\n retrieveMapHandlers.length = 0;\n }\n\n retrieveMapHandlers.unshift(options.retrieveSourceMap);\n }\n\n // Support runtime transpilers that include inline source maps\n if (options.hookRequire && !isInBrowser()) {\n // Use dynamicRequire to avoid including in browser bundles\n var Module = dynamicRequire(module, 'module');\n var $compile = Module.prototype._compile;\n\n if (!$compile.__sourceMapSupport) {\n Module.prototype._compile = function(content, filename) {\n fileContentsCache[filename] = content;\n sourceMapCache[filename] = undefined;\n return $compile.call(this, content, filename);\n };\n\n Module.prototype._compile.__sourceMapSupport = true;\n }\n }\n\n // Configure options\n if (!emptyCacheBetweenOperations) {\n emptyCacheBetweenOperations = 'emptyCacheBetweenOperations' in options ?\n options.emptyCacheBetweenOperations : false;\n }\n\n // Install the error reformatter\n if (!errorFormatterInstalled) {\n errorFormatterInstalled = true;\n Error.prepareStackTrace = prepareStackTrace;\n }\n\n if (!uncaughtShimInstalled) {\n var installHandler = 'handleUncaughtExceptions' in options ?\n options.handleUncaughtExceptions : true;\n\n // Do not override 'uncaughtException' with our own handler in Node.js\n // Worker threads. Workers pass the error to the main thread as an event,\n // rather than printing something to stderr and exiting.\n try {\n // We need to use `dynamicRequire` because `require` on it's own will be optimized by WebPack/Browserify.\n var worker_threads = dynamicRequire(module, 'worker_threads');\n if (worker_threads.isMainThread === false) {\n installHandler = false;\n }\n } catch(e) {}\n\n // Provide the option to not install the uncaught exception handler. This is\n // to support other uncaught exception handlers (in test frameworks, for\n // example). If this handler is not installed and there are no other uncaught\n // exception handlers, uncaught exceptions will be caught by node's built-in\n // exception handler and the process will still be terminated. However, the\n // generated JavaScript code will be shown above the stack trace instead of\n // the original source code.\n if (installHandler && hasGlobalProcessEventEmitter()) {\n uncaughtShimInstalled = true;\n shimEmitUncaughtException();\n }\n }\n};\n\nexports.resetRetrieveHandlers = function() {\n retrieveFileHandlers.length = 0;\n retrieveMapHandlers.length = 0;\n\n retrieveFileHandlers = originalRetrieveFileHandlers.slice(0);\n retrieveMapHandlers = originalRetrieveMapHandlers.slice(0);\n\n retrieveSourceMap = handlerExec(retrieveMapHandlers);\n retrieveFile = handlerExec(retrieveFileHandlers);\n}\n", "/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n", "/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n", "'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n", "/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n", "// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n", "var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\nmodule.exports.default = StyleToObject; // ESM support\n", "/* eslint-disable no-multi-assign */\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear =\n obj.delete =\n obj.set =\n function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add =\n obj.clear =\n obj.delete =\n function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach((name) => {\n const prop = obj[name];\n const type = typeof prop;\n\n // Freeze prop if it is an object or function and also not already frozen\n if ((type === 'object' || type === 'function') && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n // sub-language\n if (name.startsWith(\"language:\")) {\n return name.replace(\"language:\", \"language-\");\n }\n // tiered scope: comment.line\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n // simple scope\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n const className = scopeToCSSClass(node.scope,\n { prefix: this.classPrefix });\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{scope?: string, language?: string, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n /** @type DataNode */\n const result = { children: [] };\n Object.assign(result, opts);\n return result;\n};\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n openNode(scope) {\n /** @type Node */\n const node = newNode({ scope });\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addText(text)\n - __addSublanguage(emitter, subLanguageName)\n - startScope(scope)\n - endScope()\n - finalize()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /** @param {string} scope */\n startScope(scope) {\n this.openNode(scope);\n }\n\n endScope() {\n this.closeNode();\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n __addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n if (name) node.scope = `language:${name}`;\n\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n this.closeAllNodes();\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n scope: \"regexp\",\n begin: /\\/(?=[^/\\n]*\\/)/,\n end: /\\/[gimuy]*/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n APOS_STRING_MODE: APOS_STRING_MODE,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n COMMENT: COMMENT,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n C_NUMBER_RE: C_NUMBER_RE,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n IDENT_RE: IDENT_RE,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n METHOD_GUARD: METHOD_GUARD,\n NUMBER_MODE: NUMBER_MODE,\n NUMBER_RE: NUMBER_RE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n REGEXP_MODE: REGEXP_MODE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type {import(\"highlight.js/private\").KeywordDict} */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.9.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.__addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n function emitKeyword(keyword, scope) {\n if (keyword === \"\") return;\n\n emitter.startScope(scope);\n emitter.addText(keyword);\n emitter.endScope();\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n if (!language.__emitTokens) {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n } else {\n language.__emitTokens(codeToHighlight, emitter);\n }\n\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language });\n\n if (element.dataset.highlighted) {\n console.log(\"Element previously highlighted. To highlight again, first unset `dataset.highlighted`.\", element);\n return;\n }\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n element.dataset.highlighted = \"yes\";\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function removePlugin(plugin) {\n const index = plugins.indexOf(plugin);\n if (index !== -1) {\n plugins.splice(index, 1);\n }\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin,\n removePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// Other names for the variable may break build script\nconst highlight = HLJS({});\n\n// returns a new instance of the highlighter to be used for extensions\n// check https://github.com/wooorm/lowlight/issues/47\nhighlight.newInstance = () => HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n", "import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport 'source-map-support/register';\nimport {App} from \"@/App\";\nimport * as rrweb from 'rrweb';\nimport {HTMLEvents, RRWebRecorder} from \"@/event/HTMLEvents\";\n\nglobal.React = React;\n\nconst isDev = process.env.PRODUCTION === \"false\";\n\n// TODO breadchris more logic can be added here to improve performance https://github.com/evanw/esbuild/blob/7d11ef1e24a3f0981e45e37200957268c4e22619/CHANGELOG.md?plain=1#L1009\nif (isDev) {\n new EventSource('/esbuild').addEventListener('change', () => location.reload())\n}\n\n// const recorder = new RRWebRecorder();\n// recorder.startRecording();\n\nconst root = ReactDOM.createRoot(document.getElementById(\"root\") as HTMLElement);\nroot.render(\n \n \n \n);\n", "require('./').install();\n", "import { CSSProperties } from 'react';\n\nexport type ToastType = 'success' | 'error' | 'loading' | 'blank' | 'custom';\nexport type ToastPosition =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right';\n\nexport type Renderable = JSX.Element | string | null;\n\nexport interface IconTheme {\n primary: string;\n secondary: string;\n}\n\nexport type ValueFunction = (arg: TArg) => TValue;\nexport type ValueOrFunction =\n | TValue\n | ValueFunction;\n\nconst isFunction = (\n valOrFunction: ValueOrFunction\n): valOrFunction is ValueFunction =>\n typeof valOrFunction === 'function';\n\nexport const resolveValue = (\n valOrFunction: ValueOrFunction,\n arg: TArg\n): TValue => (isFunction(valOrFunction) ? valOrFunction(arg) : valOrFunction);\n\nexport interface Toast {\n type: ToastType;\n id: string;\n message: ValueOrFunction;\n icon?: Renderable;\n duration?: number;\n pauseDuration: number;\n position?: ToastPosition;\n\n ariaProps: {\n role: 'status' | 'alert';\n 'aria-live': 'assertive' | 'off' | 'polite';\n };\n\n style?: CSSProperties;\n className?: string;\n iconTheme?: IconTheme;\n\n createdAt: number;\n visible: boolean;\n height?: number;\n}\n\nexport type ToastOptions = Partial<\n Pick<\n Toast,\n | 'id'\n | 'icon'\n | 'duration'\n | 'ariaProps'\n | 'className'\n | 'style'\n | 'position'\n | 'iconTheme'\n >\n>;\n\nexport type DefaultToastOptions = ToastOptions & {\n [key in ToastType]?: ToastOptions;\n};\n\nexport interface ToasterProps {\n position?: ToastPosition;\n toastOptions?: DefaultToastOptions;\n reverseOrder?: boolean;\n gutter?: number;\n containerStyle?: React.CSSProperties;\n containerClassName?: string;\n children?: (toast: Toast) => JSX.Element;\n}\n\nexport interface ToastWrapperProps {\n id: string;\n className?: string;\n style?: React.CSSProperties;\n onHeightUpdate: (id: string, height: number) => void;\n children?: React.ReactNode;\n}\n", "export const genId = (() => {\n let count = 0;\n return () => {\n return (++count).toString();\n };\n})();\n\nexport const prefersReducedMotion = (() => {\n // Cache result\n let shouldReduceMotion: boolean | undefined = undefined;\n\n return () => {\n if (shouldReduceMotion === undefined && typeof window !== 'undefined') {\n const mediaQuery = matchMedia('(prefers-reduced-motion: reduce)');\n shouldReduceMotion = !mediaQuery || mediaQuery.matches;\n }\n return shouldReduceMotion;\n };\n})();\n", "import { useEffect, useState } from 'react';\nimport { DefaultToastOptions, Toast, ToastType } from './types';\n\nconst TOAST_LIMIT = 20;\n\nexport enum ActionType {\n ADD_TOAST,\n UPDATE_TOAST,\n UPSERT_TOAST,\n DISMISS_TOAST,\n REMOVE_TOAST,\n START_PAUSE,\n END_PAUSE,\n}\n\ntype Action =\n | {\n type: ActionType.ADD_TOAST;\n toast: Toast;\n }\n | {\n type: ActionType.UPSERT_TOAST;\n toast: Toast;\n }\n | {\n type: ActionType.UPDATE_TOAST;\n toast: Partial;\n }\n | {\n type: ActionType.DISMISS_TOAST;\n toastId?: string;\n }\n | {\n type: ActionType.REMOVE_TOAST;\n toastId?: string;\n }\n | {\n type: ActionType.START_PAUSE;\n time: number;\n }\n | {\n type: ActionType.END_PAUSE;\n time: number;\n };\n\ninterface State {\n toasts: Toast[];\n pausedAt: number | undefined;\n}\n\nconst toastTimeouts = new Map>();\n\nexport const TOAST_EXPIRE_DISMISS_DELAY = 1000;\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: ActionType.REMOVE_TOAST,\n toastId: toastId,\n });\n }, TOAST_EXPIRE_DISMISS_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nconst clearFromRemoveQueue = (toastId: string) => {\n const timeout = toastTimeouts.get(toastId);\n if (timeout) {\n clearTimeout(timeout);\n }\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case ActionType.ADD_TOAST:\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case ActionType.UPDATE_TOAST:\n // ! Side effects !\n if (action.toast.id) {\n clearFromRemoveQueue(action.toast.id);\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n };\n\n case ActionType.UPSERT_TOAST:\n const { toast } = action;\n return state.toasts.find((t) => t.id === toast.id)\n ? reducer(state, { type: ActionType.UPDATE_TOAST, toast })\n : reducer(state, { type: ActionType.ADD_TOAST, toast });\n\n case ActionType.DISMISS_TOAST:\n const { toastId } = action;\n\n // ! Side effects ! - This could be execrated into a dismissToast() action, but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n visible: false,\n }\n : t\n ),\n };\n case ActionType.REMOVE_TOAST:\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n\n case ActionType.START_PAUSE:\n return {\n ...state,\n pausedAt: action.time,\n };\n\n case ActionType.END_PAUSE:\n const diff = action.time - (state.pausedAt || 0);\n\n return {\n ...state,\n pausedAt: undefined,\n toasts: state.toasts.map((t) => ({\n ...t,\n pauseDuration: t.pauseDuration + diff,\n })),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [], pausedAt: undefined };\n\nexport const dispatch = (action: Action) => {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n};\n\nexport const defaultTimeouts: {\n [key in ToastType]: number;\n} = {\n blank: 4000,\n error: 4000,\n success: 2000,\n loading: Infinity,\n custom: 4000,\n};\n\nexport const useStore = (toastOptions: DefaultToastOptions = {}): State => {\n const [state, setState] = useState(memoryState);\n useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n const mergedToasts = state.toasts.map((t) => ({\n ...toastOptions,\n ...toastOptions[t.type],\n ...t,\n duration:\n t.duration ||\n toastOptions[t.type]?.duration ||\n toastOptions?.duration ||\n defaultTimeouts[t.type],\n style: {\n ...toastOptions.style,\n ...toastOptions[t.type]?.style,\n ...t.style,\n },\n }));\n\n return {\n ...state,\n toasts: mergedToasts,\n };\n};\n", "import {\n Renderable,\n Toast,\n ToastOptions,\n ToastType,\n DefaultToastOptions,\n ValueOrFunction,\n resolveValue,\n} from './types';\nimport { genId } from './utils';\nimport { dispatch, ActionType } from './store';\n\ntype Message = ValueOrFunction;\n\ntype ToastHandler = (message: Message, options?: ToastOptions) => string;\n\nconst createToast = (\n message: Message,\n type: ToastType = 'blank',\n opts?: ToastOptions\n): Toast => ({\n createdAt: Date.now(),\n visible: true,\n type,\n ariaProps: {\n role: 'status',\n 'aria-live': 'polite',\n },\n message,\n pauseDuration: 0,\n ...opts,\n id: opts?.id || genId(),\n});\n\nconst createHandler =\n (type?: ToastType): ToastHandler =>\n (message, options) => {\n const toast = createToast(message, type, options);\n dispatch({ type: ActionType.UPSERT_TOAST, toast });\n return toast.id;\n };\n\nconst toast = (message: Message, opts?: ToastOptions) =>\n createHandler('blank')(message, opts);\n\ntoast.error = createHandler('error');\ntoast.success = createHandler('success');\ntoast.loading = createHandler('loading');\ntoast.custom = createHandler('custom');\n\ntoast.dismiss = (toastId?: string) => {\n dispatch({\n type: ActionType.DISMISS_TOAST,\n toastId,\n });\n};\n\ntoast.remove = (toastId?: string) =>\n dispatch({ type: ActionType.REMOVE_TOAST, toastId });\n\ntoast.promise = (\n promise: Promise,\n msgs: {\n loading: Renderable;\n success: ValueOrFunction;\n error: ValueOrFunction;\n },\n opts?: DefaultToastOptions\n) => {\n const id = toast.loading(msgs.loading, { ...opts, ...opts?.loading });\n\n promise\n .then((p) => {\n toast.success(resolveValue(msgs.success, p), {\n id,\n ...opts,\n ...opts?.success,\n });\n return p;\n })\n .catch((e) => {\n toast.error(resolveValue(msgs.error, e), {\n id,\n ...opts,\n ...opts?.error,\n });\n });\n\n return promise;\n};\n\nexport { toast };\n", "import { useEffect, useCallback } from 'react';\nimport { dispatch, ActionType, useStore } from './store';\nimport { toast } from './toast';\nimport { DefaultToastOptions, Toast, ToastPosition } from './types';\n\nconst updateHeight = (toastId: string, height: number) => {\n dispatch({\n type: ActionType.UPDATE_TOAST,\n toast: { id: toastId, height },\n });\n};\nconst startPause = () => {\n dispatch({\n type: ActionType.START_PAUSE,\n time: Date.now(),\n });\n};\n\nexport const useToaster = (toastOptions?: DefaultToastOptions) => {\n const { toasts, pausedAt } = useStore(toastOptions);\n\n useEffect(() => {\n if (pausedAt) {\n return;\n }\n\n const now = Date.now();\n const timeouts = toasts.map((t) => {\n if (t.duration === Infinity) {\n return;\n }\n\n const durationLeft =\n (t.duration || 0) + t.pauseDuration - (now - t.createdAt);\n\n if (durationLeft < 0) {\n if (t.visible) {\n toast.dismiss(t.id);\n }\n return;\n }\n return setTimeout(() => toast.dismiss(t.id), durationLeft);\n });\n\n return () => {\n timeouts.forEach((timeout) => timeout && clearTimeout(timeout));\n };\n }, [toasts, pausedAt]);\n\n const endPause = useCallback(() => {\n if (pausedAt) {\n dispatch({ type: ActionType.END_PAUSE, time: Date.now() });\n }\n }, [pausedAt]);\n\n const calculateOffset = useCallback(\n (\n toast: Toast,\n opts?: {\n reverseOrder?: boolean;\n gutter?: number;\n defaultPosition?: ToastPosition;\n }\n ) => {\n const { reverseOrder = false, gutter = 8, defaultPosition } = opts || {};\n\n const relevantToasts = toasts.filter(\n (t) =>\n (t.position || defaultPosition) ===\n (toast.position || defaultPosition) && t.height\n );\n const toastIndex = relevantToasts.findIndex((t) => t.id === toast.id);\n const toastsBefore = relevantToasts.filter(\n (toast, i) => i < toastIndex && toast.visible\n ).length;\n\n const offset = relevantToasts\n .filter((t) => t.visible)\n .slice(...(reverseOrder ? [toastsBefore + 1] : [0, toastsBefore]))\n .reduce((acc, t) => acc + (t.height || 0) + gutter, 0);\n\n return offset;\n },\n [toasts]\n );\n\n return {\n toasts,\n handlers: {\n updateHeight,\n startPause,\n endPause,\n calculateOffset,\n },\n };\n};\n", "import * as React from 'react';\nimport { styled, keyframes } from 'goober';\n\nimport { Toast, ToastPosition, resolveValue, Renderable } from '../core/types';\nimport { ToastIcon } from './toast-icon';\nimport { prefersReducedMotion } from '../core/utils';\n\nconst enterAnimation = (factor: number) => `\n0% {transform: translate3d(0,${factor * -200}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`;\n\nconst exitAnimation = (factor: number) => `\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${factor * -150}%,-1px) scale(.6); opacity:0;}\n`;\n\nconst fadeInAnimation = `0%{opacity:0;} 100%{opacity:1;}`;\nconst fadeOutAnimation = `0%{opacity:1;} 100%{opacity:0;}`;\n\nconst ToastBarBase = styled('div')`\n display: flex;\n align-items: center;\n background: #fff;\n color: #363636;\n line-height: 1.3;\n will-change: transform;\n box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05);\n max-width: 350px;\n pointer-events: auto;\n padding: 8px 10px;\n border-radius: 8px;\n`;\n\nconst Message = styled('div')`\n display: flex;\n justify-content: center;\n margin: 4px 10px;\n color: inherit;\n flex: 1 1 auto;\n white-space: pre-line;\n`;\n\ninterface ToastBarProps {\n toast: Toast;\n position?: ToastPosition;\n style?: React.CSSProperties;\n children?: (components: {\n icon: Renderable;\n message: Renderable;\n }) => Renderable;\n}\n\nconst getAnimationStyle = (\n position: ToastPosition,\n visible: boolean\n): React.CSSProperties => {\n const top = position.includes('top');\n const factor = top ? 1 : -1;\n\n const [enter, exit] = prefersReducedMotion()\n ? [fadeInAnimation, fadeOutAnimation]\n : [enterAnimation(factor), exitAnimation(factor)];\n\n return {\n animation: visible\n ? `${keyframes(enter)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`\n : `${keyframes(exit)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`,\n };\n};\n\nexport const ToastBar: React.FC = React.memo(\n ({ toast, position, style, children }) => {\n const animationStyle: React.CSSProperties = toast.height\n ? getAnimationStyle(\n toast.position || position || 'top-center',\n toast.visible\n )\n : { opacity: 0 };\n\n const icon = ;\n const message = (\n \n {resolveValue(toast.message, toast)}\n \n );\n\n return (\n \n {typeof children === 'function' ? (\n children({\n icon,\n message,\n })\n ) : (\n <>\n {icon}\n {message}\n \n )}\n \n );\n }\n);\n", "import * as React from 'react';\nimport { styled, keyframes } from 'goober';\n\nimport { Toast } from '../core/types';\nimport { ErrorIcon, ErrorTheme } from './error';\nimport { LoaderIcon, LoaderTheme } from './loader';\nimport { CheckmarkIcon, CheckmarkTheme } from './checkmark';\n\nconst StatusWrapper = styled('div')`\n position: absolute;\n`;\n\nconst IndicatorWrapper = styled('div')`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 20px;\n min-height: 20px;\n`;\n\nconst enter = keyframes`\nfrom {\n transform: scale(0.6);\n opacity: 0.4;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`;\n\nexport const AnimatedIconWrapper = styled('div')`\n position: relative;\n transform: scale(0.6);\n opacity: 0.4;\n min-width: 20px;\n animation: ${enter} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n`;\n\nexport type IconThemes = Partial<{\n success: CheckmarkTheme;\n error: ErrorTheme;\n loading: LoaderTheme;\n}>;\n\nexport const ToastIcon: React.FC<{\n toast: Toast;\n}> = ({ toast }) => {\n const { icon, type, iconTheme } = toast;\n if (icon !== undefined) {\n if (typeof icon === 'string') {\n return {icon};\n } else {\n return icon;\n }\n }\n\n if (type === 'blank') {\n return null;\n }\n\n return (\n \n \n {type !== 'loading' && (\n \n {type === 'error' ? (\n \n ) : (\n \n )}\n \n )}\n \n );\n};\n", "import { styled, keyframes } from 'goober';\n\nconst circleAnimation = keyframes`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n opacity: 1;\n}`;\n\nconst firstLineAnimation = keyframes`\nfrom {\n transform: scale(0);\n opacity: 0;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`;\n\nconst secondLineAnimation = keyframes`\nfrom {\n transform: scale(0) rotate(90deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(90deg);\n\topacity: 1;\n}`;\n\nexport interface ErrorTheme {\n primary?: string;\n secondary?: string;\n}\n\nexport const ErrorIcon = styled('div')`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${(p) => p.primary || '#ff4b4b'};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${circleAnimation} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n\n &:after,\n &:before {\n content: '';\n animation: ${firstLineAnimation} 0.15s ease-out forwards;\n animation-delay: 150ms;\n position: absolute;\n border-radius: 3px;\n opacity: 0;\n background: ${(p) => p.secondary || '#fff'};\n bottom: 9px;\n left: 4px;\n height: 2px;\n width: 12px;\n }\n\n &:before {\n animation: ${secondLineAnimation} 0.15s ease-out forwards;\n animation-delay: 180ms;\n transform: rotate(90deg);\n }\n`;\n", "import { styled, keyframes } from 'goober';\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`;\n\nexport interface LoaderTheme {\n primary?: string;\n secondary?: string;\n}\n\nexport const LoaderIcon = styled('div')`\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n border: 2px solid;\n border-radius: 100%;\n border-color: ${(p) => p.secondary || '#e0e0e0'};\n border-right-color: ${(p) => p.primary || '#616161'};\n animation: ${rotate} 1s linear infinite;\n`;\n", "import { styled, keyframes } from 'goober';\n\nconst circleAnimation = keyframes`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n\topacity: 1;\n}`;\n\nconst checkmarkAnimation = keyframes`\n0% {\n\theight: 0;\n\twidth: 0;\n\topacity: 0;\n}\n40% {\n height: 0;\n\twidth: 6px;\n\topacity: 1;\n}\n100% {\n opacity: 1;\n height: 10px;\n}`;\n\nexport interface CheckmarkTheme {\n primary?: string;\n secondary?: string;\n}\n\nexport const CheckmarkIcon = styled('div')`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${(p) => p.primary || '#61d345'};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${circleAnimation} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n &:after {\n content: '';\n box-sizing: border-box;\n animation: ${checkmarkAnimation} 0.2s ease-out forwards;\n opacity: 0;\n animation-delay: 200ms;\n position: absolute;\n border-right: 2px solid;\n border-bottom: 2px solid;\n border-color: ${(p) => p.secondary || '#fff'};\n bottom: 6px;\n left: 6px;\n height: 10px;\n width: 6px;\n }\n`;\n", "import { css, setup } from 'goober';\nimport * as React from 'react';\nimport {\n resolveValue,\n ToasterProps,\n ToastPosition,\n ToastWrapperProps,\n} from '../core/types';\nimport { useToaster } from '../core/use-toaster';\nimport { prefersReducedMotion } from '../core/utils';\nimport { ToastBar } from './toast-bar';\n\nsetup(React.createElement);\n\nconst ToastWrapper = ({\n id,\n className,\n style,\n onHeightUpdate,\n children,\n}: ToastWrapperProps) => {\n const ref = React.useCallback(\n (el: HTMLElement | null) => {\n if (el) {\n const updateHeight = () => {\n const height = el.getBoundingClientRect().height;\n onHeightUpdate(id, height);\n };\n updateHeight();\n new MutationObserver(updateHeight).observe(el, {\n subtree: true,\n childList: true,\n characterData: true,\n });\n }\n },\n [id, onHeightUpdate]\n );\n\n return (\n
\n {children}\n
\n );\n};\n\nconst getPositionStyle = (\n position: ToastPosition,\n offset: number\n): React.CSSProperties => {\n const top = position.includes('top');\n const verticalStyle: React.CSSProperties = top ? { top: 0 } : { bottom: 0 };\n const horizontalStyle: React.CSSProperties = position.includes('center')\n ? {\n justifyContent: 'center',\n }\n : position.includes('right')\n ? {\n justifyContent: 'flex-end',\n }\n : {};\n return {\n left: 0,\n right: 0,\n display: 'flex',\n position: 'absolute',\n transition: prefersReducedMotion()\n ? undefined\n : `all 230ms cubic-bezier(.21,1.02,.73,1)`,\n transform: `translateY(${offset * (top ? 1 : -1)}px)`,\n ...verticalStyle,\n ...horizontalStyle,\n };\n};\n\nconst activeClass = css`\n z-index: 9999;\n > * {\n pointer-events: auto;\n }\n`;\n\nconst DEFAULT_OFFSET = 16;\n\nexport const Toaster: React.FC = ({\n reverseOrder,\n position = 'top-center',\n toastOptions,\n gutter,\n children,\n containerStyle,\n containerClassName,\n}) => {\n const { toasts, handlers } = useToaster(toastOptions);\n\n return (\n \n {toasts.map((t) => {\n const toastPosition = t.position || position;\n const offset = handlers.calculateOffset(t, {\n reverseOrder,\n gutter,\n defaultPosition: position,\n });\n const positionStyle = getPositionStyle(toastPosition, offset);\n\n return (\n \n {t.type === 'custom' ? (\n resolveValue(t.message, t)\n ) : children ? (\n children(t)\n ) : (\n \n )}\n \n );\n })}\n \n );\n};\n", "import { toast } from './core/toast';\n\nexport * from './headless';\n\nexport { ToastBar } from './components/toast-bar';\nexport { ToastIcon } from './components/toast-icon';\nexport { Toaster } from './components/toaster';\nexport { CheckmarkIcon } from './components/checkmark';\nexport { ErrorIcon } from './components/error';\nexport { LoaderIcon } from './components/loader';\n\nexport { toast };\nexport default toast;\n", "let e={data:\"\"},t=t=>\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data=\"\",l},l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,a=/\\/\\*[^]*?\\*\\/| +/g,n=/\\n+/g,o=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let c=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+c+\";\":l+=\"f\"==n[1]?o(c,n):n+\"{\"+o(c,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=o.p?o.p(n,c):n+\":\"+c+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},c={},s=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t>>0;return\"go\"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]?o.shift():t[3]?(r=t[3].replace(n,\" \").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n,\" \").trim();return o[0]})(e);c[d]=o(p?{[\"@keyframes \"+d]:t}:t,r?\"\":\".\"+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=u.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}export{u as css,r as extractCss,b as glob,h as keyframes,m as setup,j as styled};\n", "////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n", "import type { Location, Path, To } from \"./history\";\nimport { warning, invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on
,\n * useSubmit(), , etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | DataFunctionValue;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | DataFunctionValue;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n", "import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n DataResult,\n DeferredData,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n DetectErrorBoundaryFunction,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n ShouldRevalidateFunction,\n RouteManifest,\n ImmutableRouteKey,\n ActionFunction,\n LoaderFunction,\n V7_MutationFormMethod,\n V7_FormMethod,\n HTMLFormMethod,\n MutationFormMethod,\n MapRoutePropertiesFunction,\n} from \"./utils\";\nimport {\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key?: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_normalizeFormMethod: boolean;\n v7_prependBasename: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_normalizeFormMethod: false,\n v7_prependBasename: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n updateState({\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n });\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath })\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error);\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher = getSubmittingFetcher(submission, existingFetcher);\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n let doneFetcher = getDoneFetcher(undefined);\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n return;\n } else {\n fetchRedirectIds.add(key);\n let loadingFetcher = getLoadingFetcher(submission);\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n submission,\n isFetchActionRedirect: true,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher = getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n let doneFetcher = getDoneFetcher(undefined);\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let activeSubmission =\n submission || getSubmissionFromNavigation(state.navigation);\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else if (isFetchActionRedirect) {\n // For a fetch action redirect, we kick off a new loading navigation\n // without the fetcher submission, but we send it along for shouldRevalidate\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: getLoadingNavigation(redirectLocation),\n fetcherSubmission: activeSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a submission, we will preserve it through the redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n activeSubmission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => createUseMatchesMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId != null && relative !== \"path\") {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route. When using relative:path,\n // fromRouteId is ignored since that is always relative to the current\n // location path\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getPathContributingMatches(contextualMatches).map((m) => m.pathnameBase),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: RouterNavigateOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: Parameters[0]\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let values = await Promise.all([\n runHandler(handler),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n}\n//#endregion\n", "import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n", "import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n IDLE_BLOCKER,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n errorElement = match.route.errorElement || defaultErrorElement;\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n", "import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n To,\n LazyRouteFunction,\n RelativeRoutingType,\n RouterState,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n RouteContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n useRoutesImpl,\n useLocation,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n future?: FutureConfig;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: RouterState) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > \uD83D\uDC49 **Note**: we can\u2019t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > \uD83D\uDC49 **Note**: we can\u2019t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > \uD83D\uDC49 **Note**: we can\u2019t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n if (open) {\n // If we see another link, or inactive link label, we\u2019ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can\u2019t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we\u2019d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can\u2019t have that, so it\u2019s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > \uD83D\uDC49 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it\u2019s nothing.\n *\n * There was an okay opening, but we didn\u2019t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > \uD83D\uDC49 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there\u2019s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > \uD83D\uDC49 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n return nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn\u2019t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn\u2019t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('thematicBreak')\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code\n return atBreak(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit('thematicBreak')\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n effects.exit('thematicBreakSequence')\n return markdownSpace(code)\n ? factorySpace(effects, atBreak, 'whitespace')(code)\n : atBreak(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n\n/** @type {Construct} */\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n return nok(code)\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine,\n // Can\u2019t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n return nok(code)\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true\n // As we\u2019re closing flow, we\u2019re no longer interrupting.\n self.interrupt = undefined\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length\n /** @type {number | undefined} */\n let content\n /** @type {number | undefined} */\n let text\n /** @type {number | undefined} */\n let definition\n\n // Find the opening of the content.\n // It\u2019ll always exist: we don\u2019t tokenize if it isn\u2019t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n }\n // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we\u2019ll add it later)\n events.splice(index, 1)\n }\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n // Change the paragraph to setext heading text.\n events[text][1].type = 'setextHeadingText'\n\n // If we have definitions in the content, we\u2019ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context])\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length\n /** @type {boolean | undefined} */\n let paragraph\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n marker = code\n return before(code)\n }\n return nok(code)\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('setextHeadingLineSequence')\n return inside(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n effects.exit('setextHeadingLineSequence')\n return markdownSpace(code)\n ? factorySpace(effects, after, 'lineSuffix')(code)\n : after(code)\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n return nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === null) {\n return true\n }\n const list = constructs[code]\n let index = -1\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don\u2019t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n enter = undefined\n }\n }\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can\u2019t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n while (index--) {\n const chunk = chunks[index]\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n eventIndex++\n }\n }\n return events\n}\n", "/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {void}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn\u2019t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record} */\n const columnStart = {}\n /** @type {Array} */\n const resolveAllConstructs = []\n /** @type {Array} */\n let chunks = []\n /** @type {Array} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | void}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice)\n main()\n\n // Exit if we\u2019re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n }\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If we\u2019re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n return Array.isArray(constructs) /* c8 ignore next 1 */\n ? handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n if (list.length === 0) {\n return bogusState\n }\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn\u2019t work because `inspect` in document does a check\n // w/o a bogus, which doesn\u2019t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a \u201Clive binding\u201D, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true\n info.restore()\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n\n /**\n * Restore state.\n *\n * @returns {void}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it\u2019s on a column\n * skip.\n *\n * @returns {void}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array} chunks\n * @param {Pick} token\n * @returns {Array}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array} */\n let view\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n view.shift()\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n case -4: {\n value = '\\n'\n break\n }\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n atTab = chunk === -2\n result.push(value)\n }\n return result.join('')\n}\n", "/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n", "/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n", "/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > 126 && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n return String.fromCharCode(code)\n}\n", "import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The \u201Cstring\u201D content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n", "/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract} Parent\n *\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn\u2019t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don\u2019t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we\u2019ll add `end` in a second.\n end: undefined\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it\u2019s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we\u2019ll add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we\u2019re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n", "/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * @this {import('unified').Processor}\n * @type {import('unified').Plugin<[Options?] | void[], string, Root>}\n */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting\u2019s been going\n // on for years in remark now.\n const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n /** @type {Properties} */\n const properties = {}\n\n if (lang) {\n properties.className = ['language-' + lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | undefined} url\n *   URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n *   Allowed protocols.\n * @returns {string}\n *   Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n  const value = encode(normalizeUri(url || ''))\n  if (!protocol) {\n    return value\n  }\n  const colon = value.indexOf(':')\n  const questionMark = value.indexOf('?')\n  const numberSign = value.indexOf('#')\n  const slash = value.indexOf('/')\n  if (\n    // If there is no protocol, it\u2019s relative.\n    colon < 0 ||\n    // If the first colon is after a `?`, `#`, or `/`, it\u2019s not a protocol.\n    (slash > -1 && colon > slash) ||\n    (questionMark > -1 && colon > questionMark) ||\n    (numberSign > -1 && colon > numberSign) ||\n    // It is a protocol, it should be allowed.\n    protocol.test(value.slice(0, colon))\n  ) {\n    return value\n  }\n  return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n *   URI to normalize.\n * @returns {string}\n *   Normalized URI.\n */\nexport function normalizeUri(value) {\n  /** @type {Array} */\n  const result = []\n  let index = -1\n  let start = 0\n  let skip = 0\n  while (++index < value.length) {\n    const code = value.charCodeAt(index)\n    /** @type {string} */\n    let replace = ''\n\n    // A correct percent encoded value.\n    if (\n      code === 37 &&\n      asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n      asciiAlphanumeric(value.charCodeAt(index + 2))\n    ) {\n      skip = 2\n    }\n    // ASCII.\n    else if (code < 128) {\n      if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n        replace = String.fromCharCode(code)\n      }\n    }\n    // Astral.\n    else if (code > 55295 && code < 57344) {\n      const next = value.charCodeAt(index + 1)\n\n      // A correct surrogate pair.\n      if (code < 56320 && next > 56319 && next < 57344) {\n        replace = String.fromCharCode(code, next)\n        skip = 1\n      }\n      // Lone surrogate.\n      else {\n        replace = '\\uFFFD'\n      }\n    }\n    // Unicode.\n    else {\n      replace = String.fromCharCode(code)\n    }\n    if (replace) {\n      result.push(value.slice(start, index), encodeURIComponent(replace))\n      start = index + skip + 1\n      replace = ''\n    }\n    if (skip) {\n      index += skip\n      skip = 0\n    }\n  }\n  return result.join('') + value.slice(start)\n}\n", "/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  if (index === -1) {\n    state.footnoteOrder.push(id)\n    state.footnoteCounts[id] = 1\n    counter = state.footnoteOrder.length\n  } else {\n    state.footnoteCounts[id]++\n    counter = index + 1\n  }\n\n  const reuseCounter = state.footnoteCounts[id]\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + state.clobberPrefix + 'fn-' + safeId,\n      id:\n        state.clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * \n// * \n// \u2026are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Footnote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnote(state, node) {\n  const footnoteById = state.footnoteById\n  let no = 1\n\n  while (no in footnoteById) no++\n\n  const identifier = String(no)\n\n  footnoteById[identifier] = {\n    type: 'footnoteDefinition',\n    identifier,\n    children: [{type: 'paragraph', children: node.children}],\n    position: node.position\n  }\n\n  return footnoteReference(state, {\n    type: 'footnoteReference',\n    identifier,\n    position: node.position\n  })\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Raw | Element | null}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.dangerous) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  // To do: next major: return `undefined`.\n  return null\n}\n", "/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n *   Info passed around.\n * @param {References} node\n *   Reference node (image, link).\n * @returns {ElementContent | Array}\n *   hast content.\n */\nexport function revert(state, node) {\n  const subtype = node.referenceType\n  let suffix = ']'\n\n  if (subtype === 'collapsed') {\n    suffix += '[]'\n  } else if (subtype === 'full') {\n    suffix += '[' + (node.label || node.identifier) + ']'\n  }\n\n  if (node.type === 'imageReference') {\n    return {type: 'text', value: '![' + node.alt + suffix}\n  }\n\n  const contents = state.all(node)\n  const head = contents[0]\n\n  if (head && head.type === 'text') {\n    head.value = '[' + head.value\n  } else {\n    contents.unshift({type: 'text', value: '['})\n  }\n\n  const tail = contents[contents.length - 1]\n\n  if (tail && tail.type === 'text') {\n    tail.value += suffix\n  } else {\n    contents.push({type: 'text', value: suffix})\n  }\n\n  return contents\n}\n", "/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ListItem} node\n *   mdast node.\n * @param {Parents | null | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function listItem(state, node, parent) {\n  const results = state.all(node)\n  const loose = parent ? listLoose(parent) : listItemLoose(node)\n  /** @type {Properties} */\n  const properties = {}\n  /** @type {Array} */\n  const children = []\n\n  if (typeof node.checked === 'boolean') {\n    const head = results[0]\n    /** @type {Element} */\n    let paragraph\n\n    if (head && head.type === 'element' && head.tagName === 'p') {\n      paragraph = head\n    } else {\n      paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n      results.unshift(paragraph)\n    }\n\n    if (paragraph.children.length > 0) {\n      paragraph.children.unshift({type: 'text', value: ' '})\n    }\n\n    paragraph.children.unshift({\n      type: 'element',\n      tagName: 'input',\n      properties: {type: 'checkbox', checked: node.checked, disabled: true},\n      children: []\n    })\n\n    // According to github-markdown-css, this class hides bullet.\n    // See: .\n    properties.className = ['task-list-item']\n  }\n\n  let index = -1\n\n  while (++index < results.length) {\n    const child = results[index]\n\n    // Add eols before nodes, except if this is a loose, first paragraph.\n    if (\n      loose ||\n      index !== 0 ||\n      child.type !== 'element' ||\n      child.tagName !== 'p'\n    ) {\n      children.push({type: 'text', value: '\\n'})\n    }\n\n    if (child.type === 'element' && child.tagName === 'p' && !loose) {\n      children.push(...child.children)\n    } else {\n      children.push(child)\n    }\n  }\n\n  const tail = results[results.length - 1]\n\n  // Add a final eol.\n  if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n    children.push({type: 'text', value: '\\n'})\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'li', properties, children}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n  let loose = false\n  if (node.type === 'list') {\n    loose = node.spread || false\n    const children = node.children\n    let index = -1\n\n    while (!loose && ++index < children.length) {\n      loose = listItemLoose(children[index])\n    }\n  }\n\n  return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n  const spread = node.spread\n\n  return spread === undefined || spread === null\n    ? node.children.length > 1\n    : spread\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastRoot | HastElement}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n *   Node.\n * @returns\n *   Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n *   Node.\n * @returns\n *   Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n *   Node.\n * @returns {Position}\n *   Position.\n */\nexport function position(node) {\n  return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start' | 'end'} type\n *   Side.\n * @returns\n *   Getter.\n */\nfunction point(type) {\n  return point\n\n  /**\n   * Get the point info of `node` at a bound side.\n   *\n   * @param {NodeLike | Node | null | undefined} [node]\n   * @returns {Point}\n   */\n  function point(node) {\n    const point = (node && node.position && node.position[type]) || {}\n\n    // To do: next major: don\u2019t return points when invalid.\n    return {\n      // @ts-expect-error: in practice, null is allowed.\n      line: point.line || null,\n      // @ts-expect-error: in practice, null is allowed.\n      column: point.column || null,\n      // @ts-expect-error: in practice, null is allowed.\n      offset: point.offset > -1 ? point.offset : null\n    }\n  }\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start.line && end.line) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | null | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(node, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Trimmed value.\n */\nexport function trimLines(value) {\n  const source = String(value)\n  const search = /\\r?\\n|\\r/g\n  let match = search.exec(source)\n  let last = 0\n  /** @type {Array} */\n  const lines = []\n\n  while (match) {\n    lines.push(\n      trimLine(source.slice(last, match.index), last > 0, true),\n      match[0]\n    )\n\n    last = match.index + match[0].length\n    match = search.exec(source)\n  }\n\n  lines.push(trimLine(source.slice(last), last > 0, false))\n\n  return lines.join('')\n}\n\n/**\n * @param {string} value\n *   Line to trim.\n * @param {boolean} start\n *   Whether to trim the start of the line.\n * @param {boolean} end\n *   Whether to trim the end of the line.\n * @returns {string}\n *   Trimmed line.\n */\nfunction trimLine(value, start, end) {\n  let startIndex = 0\n  let endIndex = value.length\n\n  if (start) {\n    let code = value.codePointAt(startIndex)\n\n    while (code === tab || code === space) {\n      startIndex++\n      code = value.codePointAt(startIndex)\n    }\n  }\n\n  if (end) {\n    let code = value.codePointAt(endIndex - 1)\n\n    while (code === tab || code === space) {\n      endIndex--\n      code = value.codePointAt(endIndex - 1)\n    }\n  }\n\n  return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n", "/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastText | HastElement}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n  blockquote,\n  break: hardBreak,\n  code,\n  delete: strikethrough,\n  emphasis,\n  footnoteReference,\n  footnote,\n  heading,\n  html,\n  imageReference,\n  image,\n  inlineCode,\n  linkReference,\n  link,\n  listItem,\n  list,\n  paragraph,\n  root,\n  strong,\n  table,\n  tableCell,\n  tableRow,\n  text,\n  thematicBreak,\n  toml: ignore,\n  yaml: ignore,\n  definition: ignore,\n  footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n  // To do: next major: return `undefined`.\n  return null\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array} Test\n *   Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n *   Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n *   The given context.\n * @param {Node} node\n *   A node.\n * @param {number | null | undefined} [index]\n *   The node\u2019s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node\u2019s parent.\n * @returns {boolean | void}\n *   Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n *   Node type.\n * @typedef {Kind['type'] | Partial | TestFunctionPredicate | Array | TestFunctionPredicate>} PredicateTest\n *   Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n *   Node type.\n * @callback TestFunctionPredicate\n *   Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n *   A node.\n * @param {number | null | undefined} [index]\n *   The node\u2019s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node\u2019s parent.\n * @returns {node is Kind}\n *   Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n *   Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n *   Anything (typically a node).\n * @param {number | null | undefined} [index]\n *   The node\u2019s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node\u2019s parent.\n * @returns {boolean}\n *   Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n *   Node type.\n * @callback AssertPredicate\n *   Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n *   Anything (typically a node).\n * @param {number | null | undefined} [index]\n *   The node\u2019s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node\u2019s parent.\n * @returns {node is Kind}\n *   Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n *   Thing to check, typically `Node`.\n * @param test\n *   A check for a specific node.\n * @param index\n *   The node\u2019s position in its parent.\n * @param parent\n *   The node\u2019s parent.\n * @returns\n *   Whether `node` is a node and passes a test.\n */\nexport const is =\n  /**\n   * @type {(\n   *   (() => false) &\n   *   ((node: unknown, test: PredicateTest, index: number, parent: Parent, context?: unknown) => node is Kind) &\n   *   ((node: unknown, test: PredicateTest, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n   *   ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n   *   ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n   * )}\n   */\n  (\n    /**\n     * @param {unknown} [node]\n     * @param {Test} [test]\n     * @param {number | null | undefined} [index]\n     * @param {Parent | null | undefined} [parent]\n     * @param {unknown} [context]\n     * @returns {boolean}\n     */\n    // eslint-disable-next-line max-params\n    function is(node, test, index, parent, context) {\n      const check = convert(test)\n\n      if (\n        index !== undefined &&\n        index !== null &&\n        (typeof index !== 'number' ||\n          index < 0 ||\n          index === Number.POSITIVE_INFINITY)\n      ) {\n        throw new Error('Expected positive finite index')\n      }\n\n      if (\n        parent !== undefined &&\n        parent !== null &&\n        (!is(parent) || !parent.children)\n      ) {\n        throw new Error('Expected parent node')\n      }\n\n      if (\n        (parent === undefined || parent === null) !==\n        (index === undefined || index === null)\n      ) {\n        throw new Error('Expected both parent and index')\n      }\n\n      // @ts-expect-error Looks like a node.\n      return node && node.type && typeof node.type === 'string'\n        ? Boolean(check.call(context, node, index, parent))\n        : false\n    }\n  )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you\u2019re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n *   *   when nullish, checks if `node` is a `Node`.\n *   *   when `string`, works like passing `(node) => node.type === test`.\n *   *   when `function` checks if function passed the node is true.\n *   *   when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n *   *   when `array`, checks if any one of the subtests pass.\n * @returns\n *   An assertion.\n */\nexport const convert =\n  /**\n   * @type {(\n   *   ((test: PredicateTest) => AssertPredicate) &\n   *   ((test?: Test) => AssertAnything)\n   * )}\n   */\n  (\n    /**\n     * @param {Test} [test]\n     * @returns {AssertAnything}\n     */\n    function (test) {\n      if (test === undefined || test === null) {\n        return ok\n      }\n\n      if (typeof test === 'string') {\n        return typeFactory(test)\n      }\n\n      if (typeof test === 'object') {\n        return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n      }\n\n      if (typeof test === 'function') {\n        return castFactory(test)\n      }\n\n      throw new Error('Expected function, string, or object as test')\n    }\n  )\n\n/**\n * @param {Array} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n  /** @type {Array} */\n  const checks = []\n  let index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return castFactory(any)\n\n  /**\n   * @this {unknown}\n   * @param {Array} parameters\n   * @returns {boolean}\n   */\n  function any(...parameters) {\n    let index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].call(this, ...parameters)) return true\n    }\n\n    return false\n  }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n  return castFactory(all)\n\n  /**\n   * @param {Node} node\n   * @returns {boolean}\n   */\n  function all(node) {\n    /** @type {string} */\n    let key\n\n    for (key in check) {\n      // @ts-expect-error: hush, it sure works as an index.\n      if (node[key] !== check[key]) return false\n    }\n\n    return true\n  }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n  return castFactory(type)\n\n  /**\n   * @param {Node} node\n   */\n  function type(node) {\n    return node && node.type === check\n  }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n  return assertion\n\n  /**\n   * @this {unknown}\n   * @param {unknown} node\n   * @param {Array} parameters\n   * @returns {boolean}\n   */\n  function assertion(node, ...parameters) {\n    return Boolean(\n      node &&\n        typeof node === 'object' &&\n        'type' in node &&\n        // @ts-expect-error: fine.\n        Boolean(check.call(this, node, ...parameters))\n    )\n  }\n}\n\nfunction ok() {\n  return true\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n *   Union of the action types.\n *\n * @typedef {number} Index\n *   Move to the sibling at `index` next (after node itself is completely\n *   traversed).\n *\n *   Useful if mutating the tree, such as removing the node the visitor is\n *   currently on, or any of its previous siblings.\n *   Results less than 0 or greater than or equal to `children.length` stop\n *   traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n *   List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n *   Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n *   Visited node type.\n * @template {Parent} [Ancestor=Parent]\n *   Ancestor type.\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform the parent of node (the last of `ancestors`).\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of an ancestor still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Array} ancestors\n *   Ancestors of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n *   Tree type.\n * @template {Test} [Check=string]\n *   Test type.\n * @typedef {Visitor, Check>, Extract, Parent>>} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node\u2019s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n *   Tree to traverse.\n * @param test\n *   `unist-util-is`-compatible test\n * @param visitor\n *   Handle each node.\n * @param reverse\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n *   Nothing.\n */\nexport const visitParents =\n  /**\n   * @type {(\n   *   ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n   *   ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n   * )}\n   */\n  (\n    /**\n     * @param {Node} tree\n     * @param {Test} test\n     * @param {Visitor} visitor\n     * @param {boolean | null | undefined} [reverse]\n     * @returns {void}\n     */\n    function (tree, test, visitor, reverse) {\n      if (typeof test === 'function' && typeof visitor !== 'function') {\n        reverse = visitor\n        // @ts-expect-error no visitor given, so `visitor` is test.\n        visitor = test\n        test = null\n      }\n\n      const is = convert(test)\n      const step = reverse ? -1 : 1\n\n      factory(tree, undefined, [])()\n\n      /**\n       * @param {Node} node\n       * @param {number | undefined} index\n       * @param {Array} parents\n       */\n      function factory(node, index, parents) {\n        /** @type {Record} */\n        // @ts-expect-error: hush\n        const value = node && typeof node === 'object' ? node : {}\n\n        if (typeof value.type === 'string') {\n          const name =\n            // `hast`\n            typeof value.tagName === 'string'\n              ? value.tagName\n              : // `xast`\n              typeof value.name === 'string'\n              ? value.name\n              : undefined\n\n          Object.defineProperty(visit, 'name', {\n            value:\n              'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n          })\n        }\n\n        return visit\n\n        function visit() {\n          /** @type {ActionTuple} */\n          let result = []\n          /** @type {ActionTuple} */\n          let subresult\n          /** @type {number} */\n          let offset\n          /** @type {Array} */\n          let grandparents\n\n          if (!test || is(node, index, parents[parents.length - 1] || null)) {\n            result = toResult(visitor(node, parents))\n\n            if (result[0] === EXIT) {\n              return result\n            }\n          }\n\n          // @ts-expect-error looks like a parent.\n          if (node.children && result[0] !== SKIP) {\n            // @ts-expect-error looks like a parent.\n            offset = (reverse ? node.children.length : -1) + step\n            // @ts-expect-error looks like a parent.\n            grandparents = parents.concat(node)\n\n            // @ts-expect-error looks like a parent.\n            while (offset > -1 && offset < node.children.length) {\n              // @ts-expect-error looks like a parent.\n              subresult = factory(node.children[offset], offset, grandparents)()\n\n              if (subresult[0] === EXIT) {\n                return subresult\n              }\n\n              offset =\n                typeof subresult[1] === 'number' ? subresult[1] : offset + step\n            }\n          }\n\n          return result\n        }\n      }\n    }\n  )\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n *   Valid return values from visitors.\n * @returns {ActionTuple}\n *   Clean result.\n */\nfunction toResult(value) {\n  if (Array.isArray(value)) {\n    return value\n  }\n\n  if (typeof value === 'number') {\n    return [CONTINUE, value]\n  }\n\n  return [value]\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n *   Node type.\n * @template {Node} Child\n *   Node type.\n * @typedef {(\n *   Ancestor extends Parent\n *     ? Child extends Ancestor['children'][number]\n *       ? Ancestor\n *       : never\n *     : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n *   Visited node type.\n * @template {Parent} [Ancestor=Parent]\n *   Ancestor type.\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform `parent`.\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of `parent` still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Visited extends Node ? number | null : never} index\n *   Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n *   Parent of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n *   Node type.\n * @template {Parent} Ancestor\n *   Parent type.\n * @typedef {Visitor>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n *   Node type.\n * @template {Test} Check\n *   Test type.\n * @typedef {(\n *   BuildVisitorFromMatch<\n *     import('unist-util-visit-parents/complex-types.js').Matches,\n *     Extract\n *   >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n *   Node type.\n * @template {Test} [Check=string]\n *   Test type.\n * @typedef {(\n *   BuildVisitorFromDescendants<\n *     import('unist-util-visit-parents/complex-types.js').InclusiveDescendant,\n *     Check\n *   >\n * )} BuildVisitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n *   Tree to traverse.\n * @param test\n *   `unist-util-is`-compatible test\n * @param visitor\n *   Handle each node.\n * @param reverse\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n *   Nothing.\n */\nexport const visit =\n  /**\n   * @type {(\n   *   ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n   *   ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n   * )}\n   */\n  (\n    /**\n     * @param {Node} tree\n     * @param {Test} test\n     * @param {Visitor} visitor\n     * @param {boolean | null | undefined} [reverse]\n     * @returns {void}\n     */\n    function (tree, test, visitor, reverse) {\n      if (typeof test === 'function' && typeof visitor !== 'function') {\n        reverse = visitor\n        visitor = test\n        test = null\n      }\n\n      visitParents(tree, test, overload, reverse)\n\n      /**\n       * @param {Node} node\n       * @param {Array} parents\n       */\n      function overload(node, parents) {\n        const parent = parents[parents.length - 1]\n        return visitor(\n          node,\n          parent ? parent.children.indexOf(node) : null,\n          parent\n        )\n      }\n    }\n  )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n", "/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n *   Node to check.\n * @returns {boolean}\n *   Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n  return (\n    !node ||\n    !node.position ||\n    !node.position.start ||\n    !node.position.start.line ||\n    !node.position.start.column ||\n    !node.position.end ||\n    !node.position.end.line ||\n    !node.position.end.column\n  )\n}\n", "/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n *   Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n *   Identifier of definition.\n * @returns {Definition | null}\n *   Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n *   Tree to check.\n * @returns {GetDefinition}\n *   Getter.\n */\nexport function definitions(tree) {\n  /** @type {Record} */\n  const cache = Object.create(null)\n\n  if (!tree || !tree.type) {\n    throw new Error('mdast-util-definitions expected node')\n  }\n\n  visit(tree, 'definition', (definition) => {\n    const id = clean(definition.identifier)\n    if (id && !own.call(cache, id)) {\n      cache[id] = definition\n    }\n  })\n\n  return definition\n\n  /** @type {GetDefinition} */\n  function definition(identifier) {\n    const id = clean(identifier)\n    // To do: next major: return `undefined` when not found.\n    return id && own.call(cache, id) ? cache[id] : null\n  }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n  return String(value || '').toUpperCase()\n}\n", "/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract} MdastParents\n *\n * @typedef EmbeddedHastFields\n *   hast fields.\n * @property {string | null | undefined} [hName]\n *   Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n *   Generate an element with these properties instead.\n * @property {Array | null | undefined} [hChildren]\n *   Generate an element with this content instead.\n *\n * @typedef {Record & EmbeddedHastFields} MdastData\n *   mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n *   mdast node with embedded hast data.\n *\n * @typedef PointLike\n *   Point-like value.\n * @property {number | null | undefined} [line]\n *   Line.\n * @property {number | null | undefined} [column]\n *   Column.\n * @property {number | null | undefined} [offset]\n *   Offset.\n *\n * @typedef PositionLike\n *   Position-like value.\n * @property {PointLike | null | undefined} [start]\n *   Point-like value.\n * @property {PointLike | null | undefined} [end]\n *   Point-like value.\n *\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   hast node.\n *\n * @callback HFunctionProps\n *   Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {HastProperties} props\n *   Properties.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @callback HFunctionNoProps\n *   Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @typedef HFields\n *   Info on `state`.\n * @property {boolean} dangerous\n *   Whether HTML is allowed.\n * @property {string} clobberPrefix\n *   Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n *   Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n *   HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n *   Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n *   Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n *   Definition cache.\n * @property {Record} footnoteById\n *   Footnote definitions by their identifier.\n * @property {Array} footnoteOrder\n *   Identifiers of order when footnote calls first appear in tree order.\n * @property {Record} footnoteCounts\n *   Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n *   Applied handlers.\n * @property {Handler} unknownHandler\n *   Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n *   Copy a node\u2019s positional info.\n * @property {(from: MdastNodes, to: Type) => Type | HastElement} applyData\n *   Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array | null | undefined} one\n *   Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array} all\n *   Transform the children of an mdast parent to hast.\n * @property {(nodes: Array, loose?: boolean | null | undefined) => Array} wrap\n *   Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n *   Like `state` but lower-level and usable on non-elements.\n *   Deprecated: use `patch` and `applyData`.\n * @property {Array} passThrough\n *   List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` attribute on footnotes to prevent it from\n *   *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n *   Label to use from backreferences back to their footnote call (affects\n *   screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n *   Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n *   Properties to use on the footnote label (note that `id: 'footnote-label'`\n *   is always added as footnote calls use it with `aria-describedby` to\n *   provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n *   Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n *   Extra handlers for nodes.\n * @property {Array | null | undefined} [passThrough]\n *   List of custom mdast node types to pass through (keep) in hast (note that\n *   the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n *   Handler for all unknown nodes.\n *\n * @typedef {Record} Handlers\n *   Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n *   Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n *   mdast node to transform.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {State}\n *   `state` function.\n */\nexport function createState(tree, options) {\n  const settings = options || {}\n  const dangerous = settings.allowDangerousHtml || false\n  /** @type {Record} */\n  const footnoteById = {}\n\n  // To do: next major: add `options` to state, remove:\n  // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n  // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n  // `unknownHandler`.\n\n  // To do: next major: move to `state.options.allowDangerousHtml`.\n  state.dangerous = dangerous\n  // To do: next major: move to `state.options`.\n  state.clobberPrefix =\n    settings.clobberPrefix === undefined || settings.clobberPrefix === null\n      ? 'user-content-'\n      : settings.clobberPrefix\n  // To do: next major: move to `state.options`.\n  state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  // To do: next major: move to `state.options`.\n  state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n  // To do: next major: move to `state.options`.\n  state.unknownHandler = settings.unknownHandler\n  // To do: next major: move to `state.options`.\n  state.passThrough = settings.passThrough\n\n  state.handlers = {...handlers, ...settings.handlers}\n\n  // To do: next major: replace utility with `definitionById` object, so we\n  // only walk once (as we need footnotes too).\n  state.definition = definitions(tree)\n  state.footnoteById = footnoteById\n  /** @type {Array} */\n  state.footnoteOrder = []\n  /** @type {Record} */\n  state.footnoteCounts = {}\n\n  state.patch = patch\n  state.applyData = applyData\n  state.one = oneBound\n  state.all = allBound\n  state.wrap = wrap\n  // To do: next major: remove `augment`.\n  state.augment = augment\n\n  visit(tree, 'footnoteDefinition', (definition) => {\n    const id = String(definition.identifier).toUpperCase()\n\n    // Mimick CM behavior of link definitions.\n    // See: .\n    if (!own.call(footnoteById, id)) {\n      footnoteById[id] = definition\n    }\n  })\n\n  // @ts-expect-error Hush, it\u2019s fine!\n  return state\n\n  /**\n   * Finalise the created `right`, a hast node, from `left`, an mdast node.\n   *\n   * @param {MdastNodeWithData | PositionLike | null | undefined} left\n   * @param {HastElementContent} right\n   * @returns {HastElementContent}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function augment(left, right) {\n    // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n    if (left && 'data' in left && left.data) {\n      /** @type {MdastData} */\n      const data = left.data\n\n      if (data.hName) {\n        if (right.type !== 'element') {\n          right = {\n            type: 'element',\n            tagName: '',\n            properties: {},\n            children: []\n          }\n        }\n\n        right.tagName = data.hName\n      }\n\n      if (right.type === 'element' && data.hProperties) {\n        right.properties = {...right.properties, ...data.hProperties}\n      }\n\n      if ('children' in right && right.children && data.hChildren) {\n        right.children = data.hChildren\n      }\n    }\n\n    if (left) {\n      const ctx = 'type' in left ? left : {position: left}\n\n      if (!generated(ctx)) {\n        // @ts-expect-error: fine.\n        right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n      }\n    }\n\n    return right\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Create an element for `node`.\n   *\n   * @type {HFunctionProps}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function state(node, tagName, props, children) {\n    if (Array.isArray(props)) {\n      children = props\n      props = {}\n    }\n\n    // @ts-expect-error augmenting an element yields an element.\n    return augment(node, {\n      type: 'element',\n      tagName,\n      properties: props || {},\n      children: children || []\n    })\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Transform an mdast node into a hast node.\n   *\n   * @param {MdastNodes} node\n   *   mdast node.\n   * @param {MdastParents | null | undefined} [parent]\n   *   Parent of `node`.\n   * @returns {HastElementContent | Array | null | undefined}\n   *   Resulting hast node.\n   */\n  function oneBound(node, parent) {\n    // @ts-expect-error: that\u2019s a state :)\n    return one(state, node, parent)\n  }\n\n  /**\n   * Transform the children of an mdast node into hast nodes.\n   *\n   * @param {MdastNodes} parent\n   *   mdast node to compile\n   * @returns {Array}\n   *   Resulting hast nodes.\n   */\n  function allBound(parent) {\n    // @ts-expect-error: that\u2019s a state :)\n    return all(state, parent)\n  }\n}\n\n/**\n * Copy a node\u2019s positional info.\n *\n * @param {MdastNodes} from\n *   mdast node to copy from.\n * @param {HastNodes} to\n *   hast node to copy into.\n * @returns {void}\n *   Nothing.\n */\nfunction patch(from, to) {\n  if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n *   Node type.\n * @param {MdastNodes} from\n *   mdast node to use data from.\n * @param {Type} to\n *   hast node to change.\n * @returns {Type | HastElement}\n *   Nothing.\n */\nfunction applyData(from, to) {\n  /** @type {Type | HastElement} */\n  let result = to\n\n  // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n  if (from && from.data) {\n    const hName = from.data.hName\n    const hChildren = from.data.hChildren\n    const hProperties = from.data.hProperties\n\n    if (typeof hName === 'string') {\n      // Transforming the node resulted in an element with a different name\n      // than wanted:\n      if (result.type === 'element') {\n        result.tagName = hName\n      }\n      // Transforming the node resulted in a non-element, which happens for\n      // raw, text, and root nodes (unless custom handlers are passed).\n      // The intent is likely to keep the content around (otherwise: pass\n      // `hChildren`).\n      else {\n        result = {\n          type: 'element',\n          tagName: hName,\n          properties: {},\n          children: []\n        }\n\n        // To do: next major: take the children from the `root`, or inject the\n        // raw/text/comment or so into the element?\n        // if ('children' in node) {\n        //   // @ts-expect-error: assume `children` are allowed in elements.\n        //   result.children = node.children\n        // } else {\n        //   // @ts-expect-error: assume `node` is allowed in elements.\n        //   result.children.push(node)\n        // }\n      }\n    }\n\n    if (result.type === 'element' && hProperties) {\n      result.properties = {...result.properties, ...hProperties}\n    }\n\n    if (\n      'children' in result &&\n      result.children &&\n      hChildren !== null &&\n      hChildren !== undefined\n    ) {\n      // @ts-expect-error: assume valid children are defined.\n      result.children = hChildren\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   mdast node.\n * @param {MdastParents | null | undefined} [parent]\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n  const type = node && node.type\n\n  // Fail on non-nodes.\n  if (!type) {\n    throw new Error('Expected node, got `' + node + '`')\n  }\n\n  if (own.call(state.handlers, type)) {\n    return state.handlers[type](state, node, parent)\n  }\n\n  if (state.passThrough && state.passThrough.includes(type)) {\n    // To do: next major: deep clone.\n    // @ts-expect-error: types of passed through nodes are expected to be added manually.\n    return 'children' in node ? {...node, children: all(state, node)} : node\n  }\n\n  if (state.unknownHandler) {\n    return state.unknownHandler(state, node, parent)\n  }\n\n  return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} parent\n *   mdast node to compile\n * @returns {Array}\n *   Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n  /** @type {Array} */\n  const values = []\n\n  if ('children' in parent) {\n    const nodes = parent.children\n    let index = -1\n    while (++index < nodes.length) {\n      const result = one(state, nodes[index], parent)\n\n      // To do: see if we van clean this? Can we merge texts?\n      if (result) {\n        if (index && nodes[index - 1].type === 'break') {\n          if (!Array.isArray(result) && result.type === 'text') {\n            result.value = result.value.replace(/^\\s+/, '')\n          }\n\n          if (!Array.isArray(result) && result.type === 'element') {\n            const head = result.children[0]\n\n            if (head && head.type === 'text') {\n              head.value = head.value.replace(/^\\s+/, '')\n            }\n          }\n        }\n\n        if (Array.isArray(result)) {\n          values.push(...result)\n        } else {\n          values.push(result)\n        }\n      }\n    }\n  }\n\n  return values\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   Unknown mdast node.\n * @returns {HastText | HastElement}\n *   Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n  const data = node.data || {}\n  /** @type {HastText | HastElement} */\n  const result =\n    'value' in node &&\n    !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n      ? {type: 'text', value: node.value}\n      : {\n          type: 'element',\n          tagName: 'div',\n          properties: {},\n          children: all(state, node)\n        }\n\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n *   Node type.\n * @param {Array} nodes\n *   List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n *   Whether to add line endings at start and end.\n * @returns {Array}\n *   Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n  /** @type {Array} */\n  const result = []\n  let index = -1\n\n  if (loose) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  while (++index < nodes.length) {\n    if (index) result.push({type: 'text', value: '\\n'})\n    result.push(nodes[index])\n  }\n\n  if (loose && nodes.length > 0) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  return result\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n *   Info passed around.\n * @returns {Element | undefined}\n *   `section` element or `undefined`.\n */\nexport function footer(state) {\n  /** @type {Array} */\n  const listItems = []\n  let index = -1\n\n  while (++index < state.footnoteOrder.length) {\n    const def = state.footnoteById[state.footnoteOrder[index]]\n\n    if (!def) {\n      continue\n    }\n\n    const content = state.all(def)\n    const id = String(def.identifier).toUpperCase()\n    const safeId = normalizeUri(id.toLowerCase())\n    let referenceIndex = 0\n    /** @type {Array} */\n    const backReferences = []\n\n    while (++referenceIndex <= state.footnoteCounts[id]) {\n      /** @type {Element} */\n      const backReference = {\n        type: 'element',\n        tagName: 'a',\n        properties: {\n          href:\n            '#' +\n            state.clobberPrefix +\n            'fnref-' +\n            safeId +\n            (referenceIndex > 1 ? '-' + referenceIndex : ''),\n          dataFootnoteBackref: true,\n          className: ['data-footnote-backref'],\n          ariaLabel: state.footnoteBackLabel\n        },\n        children: [{type: 'text', value: '\u21A9'}]\n      }\n\n      if (referenceIndex > 1) {\n        backReference.children.push({\n          type: 'element',\n          tagName: 'sup',\n          children: [{type: 'text', value: String(referenceIndex)}]\n        })\n      }\n\n      if (backReferences.length > 0) {\n        backReferences.push({type: 'text', value: ' '})\n      }\n\n      backReferences.push(backReference)\n    }\n\n    const tail = content[content.length - 1]\n\n    if (tail && tail.type === 'element' && tail.tagName === 'p') {\n      const tailTail = tail.children[tail.children.length - 1]\n      if (tailTail && tailTail.type === 'text') {\n        tailTail.value += ' '\n      } else {\n        tail.children.push({type: 'text', value: ' '})\n      }\n\n      tail.children.push(...backReferences)\n    } else {\n      content.push(...backReferences)\n    }\n\n    /** @type {Element} */\n    const listItem = {\n      type: 'element',\n      tagName: 'li',\n      properties: {id: state.clobberPrefix + 'fn-' + safeId},\n      children: state.wrap(content, true)\n    }\n\n    state.patch(def, listItem)\n\n    listItems.push(listItem)\n  }\n\n  if (listItems.length === 0) {\n    return\n  }\n\n  return {\n    type: 'element',\n    tagName: 'section',\n    properties: {dataFootnotes: true, className: ['footnotes']},\n    children: [\n      {\n        type: 'element',\n        tagName: state.footnoteLabelTagName,\n        properties: {\n          // To do: use structured clone.\n          ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n          id: 'footnote-label'\n        },\n        children: [{type: 'text', value: state.footnoteLabel}]\n      },\n      {type: 'text', value: '\\n'},\n      {\n        type: 'element',\n        tagName: 'ol',\n        properties: {},\n        children: state.wrap(listItems, true)\n      },\n      {type: 'text', value: '\\n'}\n    ]\n  }\n}\n", "/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don\u2019t:\n *\n * *   `hast-util-to-html` also has an option `allowDangerousHtml` which will\n *     output the raw HTML.\n *     This is typically discouraged as noted by the option name but is useful\n *     if you completely trust authors\n * *   `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n *     into standard hast nodes (`element`, `text`, etc).\n *     This is a heavy task as it needs a full HTML parser, but it is the only\n *     way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * 

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn\u2019t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn\u2019t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If there\u2019s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n", "/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `` overload doesn\u2019t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It\u2019s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It\u2019s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n", "/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record} Properties\n * @typedef {Record} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n", "/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n", "/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n", "export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n", "let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n", "import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n", "/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n", "import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n", "import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n", "/**\n * @param {Record} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n", "import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n", "import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n", "import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n", "import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > \uD83D\uDC49 **Note**: we can\u2019t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > \uD83D\uDC49 **Note**: we can\u2019t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > \uD83D\uDC49 **Note**: we can\u2019t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n if (open) {\n // If we see another link, or inactive link label, we\u2019ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can\u2019t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we\u2019d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can\u2019t have that, so it\u2019s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > \uD83D\uDC49 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it\u2019s nothing.\n *\n * There was an okay opening, but we didn\u2019t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > \uD83D\uDC49 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there\u2019s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > \uD83D\uDC49 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n return nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn\u2019t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn\u2019t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('thematicBreak')\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code\n return atBreak(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit('thematicBreak')\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n effects.exit('thematicBreakSequence')\n return markdownSpace(code)\n ? factorySpace(effects, atBreak, 'whitespace')(code)\n : atBreak(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n\n/** @type {Construct} */\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n return nok(code)\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine,\n // Can\u2019t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n return nok(code)\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true\n // As we\u2019re closing flow, we\u2019re no longer interrupting.\n self.interrupt = undefined\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length\n /** @type {number | undefined} */\n let content\n /** @type {number | undefined} */\n let text\n /** @type {number | undefined} */\n let definition\n\n // Find the opening of the content.\n // It\u2019ll always exist: we don\u2019t tokenize if it isn\u2019t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n }\n // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we\u2019ll add it later)\n events.splice(index, 1)\n }\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n // Change the paragraph to setext heading text.\n events[text][1].type = 'setextHeadingText'\n\n // If we have definitions in the content, we\u2019ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context])\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length\n /** @type {boolean | undefined} */\n let paragraph\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n marker = code\n return before(code)\n }\n return nok(code)\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('setextHeadingLineSequence')\n return inside(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n effects.exit('setextHeadingLineSequence')\n return markdownSpace(code)\n ? factorySpace(effects, after, 'lineSuffix')(code)\n : after(code)\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n return nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === null) {\n return true\n }\n const list = constructs[code]\n let index = -1\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don\u2019t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n enter = undefined\n }\n }\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can\u2019t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n while (index--) {\n const chunk = chunks[index]\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n eventIndex++\n }\n }\n return events\n}\n", "/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {void}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn\u2019t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record} */\n const columnStart = {}\n /** @type {Array} */\n const resolveAllConstructs = []\n /** @type {Array} */\n let chunks = []\n /** @type {Array} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | void}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice)\n main()\n\n // Exit if we\u2019re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n }\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If we\u2019re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n return Array.isArray(constructs) /* c8 ignore next 1 */\n ? handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n if (list.length === 0) {\n return bogusState\n }\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn\u2019t work because `inspect` in document does a check\n // w/o a bogus, which doesn\u2019t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a \u201Clive binding\u201D, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true\n info.restore()\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n\n /**\n * Restore state.\n *\n * @returns {void}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it\u2019s on a column\n * skip.\n *\n * @returns {void}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array} chunks\n * @param {Pick} token\n * @returns {Array}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array} */\n let view\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n view.shift()\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n case -4: {\n value = '\\n'\n break\n }\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n atTab = chunk === -2\n result.push(value)\n }\n return result.join('')\n}\n", "/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n", "/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n", "/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > 126 && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n return String.fromCharCode(code)\n}\n", "import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The \u201Cstring\u201D content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n", "/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract} Parent\n *\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn\u2019t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don\u2019t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we\u2019ll add `end` in a second.\n end: undefined\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it\u2019s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we\u2019ll add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we\u2019re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n", "/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * @this {import('unified').Processor}\n * @type {import('unified').Plugin<[Options?] | void[], string, Root>}\n */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting\u2019s been going\n // on for years in remark now.\n const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n /** @type {Properties} */\n const properties = {}\n\n if (lang) {\n properties.className = ['language-' + lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | undefined} url\n *   URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n *   Allowed protocols.\n * @returns {string}\n *   Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n  const value = encode(normalizeUri(url || ''))\n  if (!protocol) {\n    return value\n  }\n  const colon = value.indexOf(':')\n  const questionMark = value.indexOf('?')\n  const numberSign = value.indexOf('#')\n  const slash = value.indexOf('/')\n  if (\n    // If there is no protocol, it\u2019s relative.\n    colon < 0 ||\n    // If the first colon is after a `?`, `#`, or `/`, it\u2019s not a protocol.\n    (slash > -1 && colon > slash) ||\n    (questionMark > -1 && colon > questionMark) ||\n    (numberSign > -1 && colon > numberSign) ||\n    // It is a protocol, it should be allowed.\n    protocol.test(value.slice(0, colon))\n  ) {\n    return value\n  }\n  return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n *   URI to normalize.\n * @returns {string}\n *   Normalized URI.\n */\nexport function normalizeUri(value) {\n  /** @type {Array} */\n  const result = []\n  let index = -1\n  let start = 0\n  let skip = 0\n  while (++index < value.length) {\n    const code = value.charCodeAt(index)\n    /** @type {string} */\n    let replace = ''\n\n    // A correct percent encoded value.\n    if (\n      code === 37 &&\n      asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n      asciiAlphanumeric(value.charCodeAt(index + 2))\n    ) {\n      skip = 2\n    }\n    // ASCII.\n    else if (code < 128) {\n      if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n        replace = String.fromCharCode(code)\n      }\n    }\n    // Astral.\n    else if (code > 55295 && code < 57344) {\n      const next = value.charCodeAt(index + 1)\n\n      // A correct surrogate pair.\n      if (code < 56320 && next > 56319 && next < 57344) {\n        replace = String.fromCharCode(code, next)\n        skip = 1\n      }\n      // Lone surrogate.\n      else {\n        replace = '\\uFFFD'\n      }\n    }\n    // Unicode.\n    else {\n      replace = String.fromCharCode(code)\n    }\n    if (replace) {\n      result.push(value.slice(start, index), encodeURIComponent(replace))\n      start = index + skip + 1\n      replace = ''\n    }\n    if (skip) {\n      index += skip\n      skip = 0\n    }\n  }\n  return result.join('') + value.slice(start)\n}\n", "/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  if (index === -1) {\n    state.footnoteOrder.push(id)\n    state.footnoteCounts[id] = 1\n    counter = state.footnoteOrder.length\n  } else {\n    state.footnoteCounts[id]++\n    counter = index + 1\n  }\n\n  const reuseCounter = state.footnoteCounts[id]\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + state.clobberPrefix + 'fn-' + safeId,\n      id:\n        state.clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * \n// * \n// \u2026are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Footnote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnote(state, node) {\n  const footnoteById = state.footnoteById\n  let no = 1\n\n  while (no in footnoteById) no++\n\n  const identifier = String(no)\n\n  footnoteById[identifier] = {\n    type: 'footnoteDefinition',\n    identifier,\n    children: [{type: 'paragraph', children: node.children}],\n    position: node.position\n  }\n\n  return footnoteReference(state, {\n    type: 'footnoteReference',\n    identifier,\n    position: node.position\n  })\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Raw | Element | null}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.dangerous) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  // To do: next major: return `undefined`.\n  return null\n}\n", "/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n *   Info passed around.\n * @param {References} node\n *   Reference node (image, link).\n * @returns {ElementContent | Array}\n *   hast content.\n */\nexport function revert(state, node) {\n  const subtype = node.referenceType\n  let suffix = ']'\n\n  if (subtype === 'collapsed') {\n    suffix += '[]'\n  } else if (subtype === 'full') {\n    suffix += '[' + (node.label || node.identifier) + ']'\n  }\n\n  if (node.type === 'imageReference') {\n    return {type: 'text', value: '![' + node.alt + suffix}\n  }\n\n  const contents = state.all(node)\n  const head = contents[0]\n\n  if (head && head.type === 'text') {\n    head.value = '[' + head.value\n  } else {\n    contents.unshift({type: 'text', value: '['})\n  }\n\n  const tail = contents[contents.length - 1]\n\n  if (tail && tail.type === 'text') {\n    tail.value += suffix\n  } else {\n    contents.push({type: 'text', value: suffix})\n  }\n\n  return contents\n}\n", "/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ListItem} node\n *   mdast node.\n * @param {Parents | null | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function listItem(state, node, parent) {\n  const results = state.all(node)\n  const loose = parent ? listLoose(parent) : listItemLoose(node)\n  /** @type {Properties} */\n  const properties = {}\n  /** @type {Array} */\n  const children = []\n\n  if (typeof node.checked === 'boolean') {\n    const head = results[0]\n    /** @type {Element} */\n    let paragraph\n\n    if (head && head.type === 'element' && head.tagName === 'p') {\n      paragraph = head\n    } else {\n      paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n      results.unshift(paragraph)\n    }\n\n    if (paragraph.children.length > 0) {\n      paragraph.children.unshift({type: 'text', value: ' '})\n    }\n\n    paragraph.children.unshift({\n      type: 'element',\n      tagName: 'input',\n      properties: {type: 'checkbox', checked: node.checked, disabled: true},\n      children: []\n    })\n\n    // According to github-markdown-css, this class hides bullet.\n    // See: .\n    properties.className = ['task-list-item']\n  }\n\n  let index = -1\n\n  while (++index < results.length) {\n    const child = results[index]\n\n    // Add eols before nodes, except if this is a loose, first paragraph.\n    if (\n      loose ||\n      index !== 0 ||\n      child.type !== 'element' ||\n      child.tagName !== 'p'\n    ) {\n      children.push({type: 'text', value: '\\n'})\n    }\n\n    if (child.type === 'element' && child.tagName === 'p' && !loose) {\n      children.push(...child.children)\n    } else {\n      children.push(child)\n    }\n  }\n\n  const tail = results[results.length - 1]\n\n  // Add a final eol.\n  if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n    children.push({type: 'text', value: '\\n'})\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'li', properties, children}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n  let loose = false\n  if (node.type === 'list') {\n    loose = node.spread || false\n    const children = node.children\n    let index = -1\n\n    while (!loose && ++index < children.length) {\n      loose = listItemLoose(children[index])\n    }\n  }\n\n  return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n  const spread = node.spread\n\n  return spread === undefined || spread === null\n    ? node.children.length > 1\n    : spread\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastRoot | HastElement}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n *   Node.\n * @returns\n *   Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n *   Node.\n * @returns\n *   Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n *   Node.\n * @returns {Position}\n *   Position.\n */\nexport function position(node) {\n  return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start' | 'end'} type\n *   Side.\n * @returns\n *   Getter.\n */\nfunction point(type) {\n  return point\n\n  /**\n   * Get the point info of `node` at a bound side.\n   *\n   * @param {NodeLike | Node | null | undefined} [node]\n   * @returns {Point}\n   */\n  function point(node) {\n    const point = (node && node.position && node.position[type]) || {}\n\n    // To do: next major: don\u2019t return points when invalid.\n    return {\n      // @ts-expect-error: in practice, null is allowed.\n      line: point.line || null,\n      // @ts-expect-error: in practice, null is allowed.\n      column: point.column || null,\n      // @ts-expect-error: in practice, null is allowed.\n      offset: point.offset > -1 ? point.offset : null\n    }\n  }\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start.line && end.line) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | null | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(node, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Trimmed value.\n */\nexport function trimLines(value) {\n  const source = String(value)\n  const search = /\\r?\\n|\\r/g\n  let match = search.exec(source)\n  let last = 0\n  /** @type {Array} */\n  const lines = []\n\n  while (match) {\n    lines.push(\n      trimLine(source.slice(last, match.index), last > 0, true),\n      match[0]\n    )\n\n    last = match.index + match[0].length\n    match = search.exec(source)\n  }\n\n  lines.push(trimLine(source.slice(last), last > 0, false))\n\n  return lines.join('')\n}\n\n/**\n * @param {string} value\n *   Line to trim.\n * @param {boolean} start\n *   Whether to trim the start of the line.\n * @param {boolean} end\n *   Whether to trim the end of the line.\n * @returns {string}\n *   Trimmed line.\n */\nfunction trimLine(value, start, end) {\n  let startIndex = 0\n  let endIndex = value.length\n\n  if (start) {\n    let code = value.codePointAt(startIndex)\n\n    while (code === tab || code === space) {\n      startIndex++\n      code = value.codePointAt(startIndex)\n    }\n  }\n\n  if (end) {\n    let code = value.codePointAt(endIndex - 1)\n\n    while (code === tab || code === space) {\n      endIndex--\n      code = value.codePointAt(endIndex - 1)\n    }\n  }\n\n  return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n", "/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastText | HastElement}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n", "import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n  blockquote,\n  break: hardBreak,\n  code,\n  delete: strikethrough,\n  emphasis,\n  footnoteReference,\n  footnote,\n  heading,\n  html,\n  imageReference,\n  image,\n  inlineCode,\n  linkReference,\n  link,\n  listItem,\n  list,\n  paragraph,\n  root,\n  strong,\n  table,\n  tableCell,\n  tableRow,\n  text,\n  thematicBreak,\n  toml: ignore,\n  yaml: ignore,\n  definition: ignore,\n  footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n  // To do: next major: return `undefined`.\n  return null\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array} Test\n *   Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n *   Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n *   The given context.\n * @param {Node} node\n *   A node.\n * @param {number | null | undefined} [index]\n *   The node\u2019s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node\u2019s parent.\n * @returns {boolean | void}\n *   Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n *   Node type.\n * @typedef {Kind['type'] | Partial | TestFunctionPredicate | Array | TestFunctionPredicate>} PredicateTest\n *   Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n *   Node type.\n * @callback TestFunctionPredicate\n *   Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n *   A node.\n * @param {number | null | undefined} [index]\n *   The node\u2019s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node\u2019s parent.\n * @returns {node is Kind}\n *   Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n *   Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n *   Anything (typically a node).\n * @param {number | null | undefined} [index]\n *   The node\u2019s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node\u2019s parent.\n * @returns {boolean}\n *   Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n *   Node type.\n * @callback AssertPredicate\n *   Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n *   Anything (typically a node).\n * @param {number | null | undefined} [index]\n *   The node\u2019s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node\u2019s parent.\n * @returns {node is Kind}\n *   Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n *   Thing to check, typically `Node`.\n * @param test\n *   A check for a specific node.\n * @param index\n *   The node\u2019s position in its parent.\n * @param parent\n *   The node\u2019s parent.\n * @returns\n *   Whether `node` is a node and passes a test.\n */\nexport const is =\n  /**\n   * @type {(\n   *   (() => false) &\n   *   ((node: unknown, test: PredicateTest, index: number, parent: Parent, context?: unknown) => node is Kind) &\n   *   ((node: unknown, test: PredicateTest, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n   *   ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n   *   ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n   * )}\n   */\n  (\n    /**\n     * @param {unknown} [node]\n     * @param {Test} [test]\n     * @param {number | null | undefined} [index]\n     * @param {Parent | null | undefined} [parent]\n     * @param {unknown} [context]\n     * @returns {boolean}\n     */\n    // eslint-disable-next-line max-params\n    function is(node, test, index, parent, context) {\n      const check = convert(test)\n\n      if (\n        index !== undefined &&\n        index !== null &&\n        (typeof index !== 'number' ||\n          index < 0 ||\n          index === Number.POSITIVE_INFINITY)\n      ) {\n        throw new Error('Expected positive finite index')\n      }\n\n      if (\n        parent !== undefined &&\n        parent !== null &&\n        (!is(parent) || !parent.children)\n      ) {\n        throw new Error('Expected parent node')\n      }\n\n      if (\n        (parent === undefined || parent === null) !==\n        (index === undefined || index === null)\n      ) {\n        throw new Error('Expected both parent and index')\n      }\n\n      // @ts-expect-error Looks like a node.\n      return node && node.type && typeof node.type === 'string'\n        ? Boolean(check.call(context, node, index, parent))\n        : false\n    }\n  )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you\u2019re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n *   *   when nullish, checks if `node` is a `Node`.\n *   *   when `string`, works like passing `(node) => node.type === test`.\n *   *   when `function` checks if function passed the node is true.\n *   *   when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n *   *   when `array`, checks if any one of the subtests pass.\n * @returns\n *   An assertion.\n */\nexport const convert =\n  /**\n   * @type {(\n   *   ((test: PredicateTest) => AssertPredicate) &\n   *   ((test?: Test) => AssertAnything)\n   * )}\n   */\n  (\n    /**\n     * @param {Test} [test]\n     * @returns {AssertAnything}\n     */\n    function (test) {\n      if (test === undefined || test === null) {\n        return ok\n      }\n\n      if (typeof test === 'string') {\n        return typeFactory(test)\n      }\n\n      if (typeof test === 'object') {\n        return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n      }\n\n      if (typeof test === 'function') {\n        return castFactory(test)\n      }\n\n      throw new Error('Expected function, string, or object as test')\n    }\n  )\n\n/**\n * @param {Array} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n  /** @type {Array} */\n  const checks = []\n  let index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return castFactory(any)\n\n  /**\n   * @this {unknown}\n   * @param {Array} parameters\n   * @returns {boolean}\n   */\n  function any(...parameters) {\n    let index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].call(this, ...parameters)) return true\n    }\n\n    return false\n  }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n  return castFactory(all)\n\n  /**\n   * @param {Node} node\n   * @returns {boolean}\n   */\n  function all(node) {\n    /** @type {string} */\n    let key\n\n    for (key in check) {\n      // @ts-expect-error: hush, it sure works as an index.\n      if (node[key] !== check[key]) return false\n    }\n\n    return true\n  }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n  return castFactory(type)\n\n  /**\n   * @param {Node} node\n   */\n  function type(node) {\n    return node && node.type === check\n  }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n  return assertion\n\n  /**\n   * @this {unknown}\n   * @param {unknown} node\n   * @param {Array} parameters\n   * @returns {boolean}\n   */\n  function assertion(node, ...parameters) {\n    return Boolean(\n      node &&\n        typeof node === 'object' &&\n        'type' in node &&\n        // @ts-expect-error: fine.\n        Boolean(check.call(this, node, ...parameters))\n    )\n  }\n}\n\nfunction ok() {\n  return true\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n *   Union of the action types.\n *\n * @typedef {number} Index\n *   Move to the sibling at `index` next (after node itself is completely\n *   traversed).\n *\n *   Useful if mutating the tree, such as removing the node the visitor is\n *   currently on, or any of its previous siblings.\n *   Results less than 0 or greater than or equal to `children.length` stop\n *   traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n *   List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n *   Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n *   Visited node type.\n * @template {Parent} [Ancestor=Parent]\n *   Ancestor type.\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform the parent of node (the last of `ancestors`).\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of an ancestor still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Array} ancestors\n *   Ancestors of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n *   Tree type.\n * @template {Test} [Check=string]\n *   Test type.\n * @typedef {Visitor, Check>, Extract, Parent>>} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node\u2019s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n *   Tree to traverse.\n * @param test\n *   `unist-util-is`-compatible test\n * @param visitor\n *   Handle each node.\n * @param reverse\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n *   Nothing.\n */\nexport const visitParents =\n  /**\n   * @type {(\n   *   ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n   *   ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n   * )}\n   */\n  (\n    /**\n     * @param {Node} tree\n     * @param {Test} test\n     * @param {Visitor} visitor\n     * @param {boolean | null | undefined} [reverse]\n     * @returns {void}\n     */\n    function (tree, test, visitor, reverse) {\n      if (typeof test === 'function' && typeof visitor !== 'function') {\n        reverse = visitor\n        // @ts-expect-error no visitor given, so `visitor` is test.\n        visitor = test\n        test = null\n      }\n\n      const is = convert(test)\n      const step = reverse ? -1 : 1\n\n      factory(tree, undefined, [])()\n\n      /**\n       * @param {Node} node\n       * @param {number | undefined} index\n       * @param {Array} parents\n       */\n      function factory(node, index, parents) {\n        /** @type {Record} */\n        // @ts-expect-error: hush\n        const value = node && typeof node === 'object' ? node : {}\n\n        if (typeof value.type === 'string') {\n          const name =\n            // `hast`\n            typeof value.tagName === 'string'\n              ? value.tagName\n              : // `xast`\n              typeof value.name === 'string'\n              ? value.name\n              : undefined\n\n          Object.defineProperty(visit, 'name', {\n            value:\n              'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n          })\n        }\n\n        return visit\n\n        function visit() {\n          /** @type {ActionTuple} */\n          let result = []\n          /** @type {ActionTuple} */\n          let subresult\n          /** @type {number} */\n          let offset\n          /** @type {Array} */\n          let grandparents\n\n          if (!test || is(node, index, parents[parents.length - 1] || null)) {\n            result = toResult(visitor(node, parents))\n\n            if (result[0] === EXIT) {\n              return result\n            }\n          }\n\n          // @ts-expect-error looks like a parent.\n          if (node.children && result[0] !== SKIP) {\n            // @ts-expect-error looks like a parent.\n            offset = (reverse ? node.children.length : -1) + step\n            // @ts-expect-error looks like a parent.\n            grandparents = parents.concat(node)\n\n            // @ts-expect-error looks like a parent.\n            while (offset > -1 && offset < node.children.length) {\n              // @ts-expect-error looks like a parent.\n              subresult = factory(node.children[offset], offset, grandparents)()\n\n              if (subresult[0] === EXIT) {\n                return subresult\n              }\n\n              offset =\n                typeof subresult[1] === 'number' ? subresult[1] : offset + step\n            }\n          }\n\n          return result\n        }\n      }\n    }\n  )\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n *   Valid return values from visitors.\n * @returns {ActionTuple}\n *   Clean result.\n */\nfunction toResult(value) {\n  if (Array.isArray(value)) {\n    return value\n  }\n\n  if (typeof value === 'number') {\n    return [CONTINUE, value]\n  }\n\n  return [value]\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n *   Node type.\n * @template {Node} Child\n *   Node type.\n * @typedef {(\n *   Ancestor extends Parent\n *     ? Child extends Ancestor['children'][number]\n *       ? Ancestor\n *       : never\n *     : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n *   Visited node type.\n * @template {Parent} [Ancestor=Parent]\n *   Ancestor type.\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform `parent`.\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of `parent` still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Visited extends Node ? number | null : never} index\n *   Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n *   Parent of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n *   Node type.\n * @template {Parent} Ancestor\n *   Parent type.\n * @typedef {Visitor>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n *   Node type.\n * @template {Test} Check\n *   Test type.\n * @typedef {(\n *   BuildVisitorFromMatch<\n *     import('unist-util-visit-parents/complex-types.js').Matches,\n *     Extract\n *   >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n *   Node type.\n * @template {Test} [Check=string]\n *   Test type.\n * @typedef {(\n *   BuildVisitorFromDescendants<\n *     import('unist-util-visit-parents/complex-types.js').InclusiveDescendant,\n *     Check\n *   >\n * )} BuildVisitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n *   Tree to traverse.\n * @param test\n *   `unist-util-is`-compatible test\n * @param visitor\n *   Handle each node.\n * @param reverse\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n *   Nothing.\n */\nexport const visit =\n  /**\n   * @type {(\n   *   ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n   *   ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n   * )}\n   */\n  (\n    /**\n     * @param {Node} tree\n     * @param {Test} test\n     * @param {Visitor} visitor\n     * @param {boolean | null | undefined} [reverse]\n     * @returns {void}\n     */\n    function (tree, test, visitor, reverse) {\n      if (typeof test === 'function' && typeof visitor !== 'function') {\n        reverse = visitor\n        visitor = test\n        test = null\n      }\n\n      visitParents(tree, test, overload, reverse)\n\n      /**\n       * @param {Node} node\n       * @param {Array} parents\n       */\n      function overload(node, parents) {\n        const parent = parents[parents.length - 1]\n        return visitor(\n          node,\n          parent ? parent.children.indexOf(node) : null,\n          parent\n        )\n      }\n    }\n  )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n", "/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n *   Node to check.\n * @returns {boolean}\n *   Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n  return (\n    !node ||\n    !node.position ||\n    !node.position.start ||\n    !node.position.start.line ||\n    !node.position.start.column ||\n    !node.position.end ||\n    !node.position.end.line ||\n    !node.position.end.column\n  )\n}\n", "/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n *   Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n *   Identifier of definition.\n * @returns {Definition | null}\n *   Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n *   Tree to check.\n * @returns {GetDefinition}\n *   Getter.\n */\nexport function definitions(tree) {\n  /** @type {Record} */\n  const cache = Object.create(null)\n\n  if (!tree || !tree.type) {\n    throw new Error('mdast-util-definitions expected node')\n  }\n\n  visit(tree, 'definition', (definition) => {\n    const id = clean(definition.identifier)\n    if (id && !own.call(cache, id)) {\n      cache[id] = definition\n    }\n  })\n\n  return definition\n\n  /** @type {GetDefinition} */\n  function definition(identifier) {\n    const id = clean(identifier)\n    // To do: next major: return `undefined` when not found.\n    return id && own.call(cache, id) ? cache[id] : null\n  }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n  return String(value || '').toUpperCase()\n}\n", "/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract} MdastParents\n *\n * @typedef EmbeddedHastFields\n *   hast fields.\n * @property {string | null | undefined} [hName]\n *   Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n *   Generate an element with these properties instead.\n * @property {Array | null | undefined} [hChildren]\n *   Generate an element with this content instead.\n *\n * @typedef {Record & EmbeddedHastFields} MdastData\n *   mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n *   mdast node with embedded hast data.\n *\n * @typedef PointLike\n *   Point-like value.\n * @property {number | null | undefined} [line]\n *   Line.\n * @property {number | null | undefined} [column]\n *   Column.\n * @property {number | null | undefined} [offset]\n *   Offset.\n *\n * @typedef PositionLike\n *   Position-like value.\n * @property {PointLike | null | undefined} [start]\n *   Point-like value.\n * @property {PointLike | null | undefined} [end]\n *   Point-like value.\n *\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   hast node.\n *\n * @callback HFunctionProps\n *   Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {HastProperties} props\n *   Properties.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @callback HFunctionNoProps\n *   Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @typedef HFields\n *   Info on `state`.\n * @property {boolean} dangerous\n *   Whether HTML is allowed.\n * @property {string} clobberPrefix\n *   Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n *   Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n *   HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n *   Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n *   Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n *   Definition cache.\n * @property {Record} footnoteById\n *   Footnote definitions by their identifier.\n * @property {Array} footnoteOrder\n *   Identifiers of order when footnote calls first appear in tree order.\n * @property {Record} footnoteCounts\n *   Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n *   Applied handlers.\n * @property {Handler} unknownHandler\n *   Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n *   Copy a node\u2019s positional info.\n * @property {(from: MdastNodes, to: Type) => Type | HastElement} applyData\n *   Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array | null | undefined} one\n *   Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array} all\n *   Transform the children of an mdast parent to hast.\n * @property {(nodes: Array, loose?: boolean | null | undefined) => Array} wrap\n *   Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n *   Like `state` but lower-level and usable on non-elements.\n *   Deprecated: use `patch` and `applyData`.\n * @property {Array} passThrough\n *   List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` attribute on footnotes to prevent it from\n *   *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n *   Label to use from backreferences back to their footnote call (affects\n *   screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n *   Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n *   Properties to use on the footnote label (note that `id: 'footnote-label'`\n *   is always added as footnote calls use it with `aria-describedby` to\n *   provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n *   Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n *   Extra handlers for nodes.\n * @property {Array | null | undefined} [passThrough]\n *   List of custom mdast node types to pass through (keep) in hast (note that\n *   the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n *   Handler for all unknown nodes.\n *\n * @typedef {Record} Handlers\n *   Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n *   Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n *   mdast node to transform.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {State}\n *   `state` function.\n */\nexport function createState(tree, options) {\n  const settings = options || {}\n  const dangerous = settings.allowDangerousHtml || false\n  /** @type {Record} */\n  const footnoteById = {}\n\n  // To do: next major: add `options` to state, remove:\n  // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n  // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n  // `unknownHandler`.\n\n  // To do: next major: move to `state.options.allowDangerousHtml`.\n  state.dangerous = dangerous\n  // To do: next major: move to `state.options`.\n  state.clobberPrefix =\n    settings.clobberPrefix === undefined || settings.clobberPrefix === null\n      ? 'user-content-'\n      : settings.clobberPrefix\n  // To do: next major: move to `state.options`.\n  state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  // To do: next major: move to `state.options`.\n  state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n  // To do: next major: move to `state.options`.\n  state.unknownHandler = settings.unknownHandler\n  // To do: next major: move to `state.options`.\n  state.passThrough = settings.passThrough\n\n  state.handlers = {...handlers, ...settings.handlers}\n\n  // To do: next major: replace utility with `definitionById` object, so we\n  // only walk once (as we need footnotes too).\n  state.definition = definitions(tree)\n  state.footnoteById = footnoteById\n  /** @type {Array} */\n  state.footnoteOrder = []\n  /** @type {Record} */\n  state.footnoteCounts = {}\n\n  state.patch = patch\n  state.applyData = applyData\n  state.one = oneBound\n  state.all = allBound\n  state.wrap = wrap\n  // To do: next major: remove `augment`.\n  state.augment = augment\n\n  visit(tree, 'footnoteDefinition', (definition) => {\n    const id = String(definition.identifier).toUpperCase()\n\n    // Mimick CM behavior of link definitions.\n    // See: .\n    if (!own.call(footnoteById, id)) {\n      footnoteById[id] = definition\n    }\n  })\n\n  // @ts-expect-error Hush, it\u2019s fine!\n  return state\n\n  /**\n   * Finalise the created `right`, a hast node, from `left`, an mdast node.\n   *\n   * @param {MdastNodeWithData | PositionLike | null | undefined} left\n   * @param {HastElementContent} right\n   * @returns {HastElementContent}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function augment(left, right) {\n    // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n    if (left && 'data' in left && left.data) {\n      /** @type {MdastData} */\n      const data = left.data\n\n      if (data.hName) {\n        if (right.type !== 'element') {\n          right = {\n            type: 'element',\n            tagName: '',\n            properties: {},\n            children: []\n          }\n        }\n\n        right.tagName = data.hName\n      }\n\n      if (right.type === 'element' && data.hProperties) {\n        right.properties = {...right.properties, ...data.hProperties}\n      }\n\n      if ('children' in right && right.children && data.hChildren) {\n        right.children = data.hChildren\n      }\n    }\n\n    if (left) {\n      const ctx = 'type' in left ? left : {position: left}\n\n      if (!generated(ctx)) {\n        // @ts-expect-error: fine.\n        right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n      }\n    }\n\n    return right\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Create an element for `node`.\n   *\n   * @type {HFunctionProps}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function state(node, tagName, props, children) {\n    if (Array.isArray(props)) {\n      children = props\n      props = {}\n    }\n\n    // @ts-expect-error augmenting an element yields an element.\n    return augment(node, {\n      type: 'element',\n      tagName,\n      properties: props || {},\n      children: children || []\n    })\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Transform an mdast node into a hast node.\n   *\n   * @param {MdastNodes} node\n   *   mdast node.\n   * @param {MdastParents | null | undefined} [parent]\n   *   Parent of `node`.\n   * @returns {HastElementContent | Array | null | undefined}\n   *   Resulting hast node.\n   */\n  function oneBound(node, parent) {\n    // @ts-expect-error: that\u2019s a state :)\n    return one(state, node, parent)\n  }\n\n  /**\n   * Transform the children of an mdast node into hast nodes.\n   *\n   * @param {MdastNodes} parent\n   *   mdast node to compile\n   * @returns {Array}\n   *   Resulting hast nodes.\n   */\n  function allBound(parent) {\n    // @ts-expect-error: that\u2019s a state :)\n    return all(state, parent)\n  }\n}\n\n/**\n * Copy a node\u2019s positional info.\n *\n * @param {MdastNodes} from\n *   mdast node to copy from.\n * @param {HastNodes} to\n *   hast node to copy into.\n * @returns {void}\n *   Nothing.\n */\nfunction patch(from, to) {\n  if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n *   Node type.\n * @param {MdastNodes} from\n *   mdast node to use data from.\n * @param {Type} to\n *   hast node to change.\n * @returns {Type | HastElement}\n *   Nothing.\n */\nfunction applyData(from, to) {\n  /** @type {Type | HastElement} */\n  let result = to\n\n  // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n  if (from && from.data) {\n    const hName = from.data.hName\n    const hChildren = from.data.hChildren\n    const hProperties = from.data.hProperties\n\n    if (typeof hName === 'string') {\n      // Transforming the node resulted in an element with a different name\n      // than wanted:\n      if (result.type === 'element') {\n        result.tagName = hName\n      }\n      // Transforming the node resulted in a non-element, which happens for\n      // raw, text, and root nodes (unless custom handlers are passed).\n      // The intent is likely to keep the content around (otherwise: pass\n      // `hChildren`).\n      else {\n        result = {\n          type: 'element',\n          tagName: hName,\n          properties: {},\n          children: []\n        }\n\n        // To do: next major: take the children from the `root`, or inject the\n        // raw/text/comment or so into the element?\n        // if ('children' in node) {\n        //   // @ts-expect-error: assume `children` are allowed in elements.\n        //   result.children = node.children\n        // } else {\n        //   // @ts-expect-error: assume `node` is allowed in elements.\n        //   result.children.push(node)\n        // }\n      }\n    }\n\n    if (result.type === 'element' && hProperties) {\n      result.properties = {...result.properties, ...hProperties}\n    }\n\n    if (\n      'children' in result &&\n      result.children &&\n      hChildren !== null &&\n      hChildren !== undefined\n    ) {\n      // @ts-expect-error: assume valid children are defined.\n      result.children = hChildren\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   mdast node.\n * @param {MdastParents | null | undefined} [parent]\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n  const type = node && node.type\n\n  // Fail on non-nodes.\n  if (!type) {\n    throw new Error('Expected node, got `' + node + '`')\n  }\n\n  if (own.call(state.handlers, type)) {\n    return state.handlers[type](state, node, parent)\n  }\n\n  if (state.passThrough && state.passThrough.includes(type)) {\n    // To do: next major: deep clone.\n    // @ts-expect-error: types of passed through nodes are expected to be added manually.\n    return 'children' in node ? {...node, children: all(state, node)} : node\n  }\n\n  if (state.unknownHandler) {\n    return state.unknownHandler(state, node, parent)\n  }\n\n  return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} parent\n *   mdast node to compile\n * @returns {Array}\n *   Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n  /** @type {Array} */\n  const values = []\n\n  if ('children' in parent) {\n    const nodes = parent.children\n    let index = -1\n    while (++index < nodes.length) {\n      const result = one(state, nodes[index], parent)\n\n      // To do: see if we van clean this? Can we merge texts?\n      if (result) {\n        if (index && nodes[index - 1].type === 'break') {\n          if (!Array.isArray(result) && result.type === 'text') {\n            result.value = result.value.replace(/^\\s+/, '')\n          }\n\n          if (!Array.isArray(result) && result.type === 'element') {\n            const head = result.children[0]\n\n            if (head && head.type === 'text') {\n              head.value = head.value.replace(/^\\s+/, '')\n            }\n          }\n        }\n\n        if (Array.isArray(result)) {\n          values.push(...result)\n        } else {\n          values.push(result)\n        }\n      }\n    }\n  }\n\n  return values\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   Unknown mdast node.\n * @returns {HastText | HastElement}\n *   Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n  const data = node.data || {}\n  /** @type {HastText | HastElement} */\n  const result =\n    'value' in node &&\n    !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n      ? {type: 'text', value: node.value}\n      : {\n          type: 'element',\n          tagName: 'div',\n          properties: {},\n          children: all(state, node)\n        }\n\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n *   Node type.\n * @param {Array} nodes\n *   List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n *   Whether to add line endings at start and end.\n * @returns {Array}\n *   Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n  /** @type {Array} */\n  const result = []\n  let index = -1\n\n  if (loose) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  while (++index < nodes.length) {\n    if (index) result.push({type: 'text', value: '\\n'})\n    result.push(nodes[index])\n  }\n\n  if (loose && nodes.length > 0) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  return result\n}\n", "/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n *   Info passed around.\n * @returns {Element | undefined}\n *   `section` element or `undefined`.\n */\nexport function footer(state) {\n  /** @type {Array} */\n  const listItems = []\n  let index = -1\n\n  while (++index < state.footnoteOrder.length) {\n    const def = state.footnoteById[state.footnoteOrder[index]]\n\n    if (!def) {\n      continue\n    }\n\n    const content = state.all(def)\n    const id = String(def.identifier).toUpperCase()\n    const safeId = normalizeUri(id.toLowerCase())\n    let referenceIndex = 0\n    /** @type {Array} */\n    const backReferences = []\n\n    while (++referenceIndex <= state.footnoteCounts[id]) {\n      /** @type {Element} */\n      const backReference = {\n        type: 'element',\n        tagName: 'a',\n        properties: {\n          href:\n            '#' +\n            state.clobberPrefix +\n            'fnref-' +\n            safeId +\n            (referenceIndex > 1 ? '-' + referenceIndex : ''),\n          dataFootnoteBackref: true,\n          className: ['data-footnote-backref'],\n          ariaLabel: state.footnoteBackLabel\n        },\n        children: [{type: 'text', value: '\u21A9'}]\n      }\n\n      if (referenceIndex > 1) {\n        backReference.children.push({\n          type: 'element',\n          tagName: 'sup',\n          children: [{type: 'text', value: String(referenceIndex)}]\n        })\n      }\n\n      if (backReferences.length > 0) {\n        backReferences.push({type: 'text', value: ' '})\n      }\n\n      backReferences.push(backReference)\n    }\n\n    const tail = content[content.length - 1]\n\n    if (tail && tail.type === 'element' && tail.tagName === 'p') {\n      const tailTail = tail.children[tail.children.length - 1]\n      if (tailTail && tailTail.type === 'text') {\n        tailTail.value += ' '\n      } else {\n        tail.children.push({type: 'text', value: ' '})\n      }\n\n      tail.children.push(...backReferences)\n    } else {\n      content.push(...backReferences)\n    }\n\n    /** @type {Element} */\n    const listItem = {\n      type: 'element',\n      tagName: 'li',\n      properties: {id: state.clobberPrefix + 'fn-' + safeId},\n      children: state.wrap(content, true)\n    }\n\n    state.patch(def, listItem)\n\n    listItems.push(listItem)\n  }\n\n  if (listItems.length === 0) {\n    return\n  }\n\n  return {\n    type: 'element',\n    tagName: 'section',\n    properties: {dataFootnotes: true, className: ['footnotes']},\n    children: [\n      {\n        type: 'element',\n        tagName: state.footnoteLabelTagName,\n        properties: {\n          // To do: use structured clone.\n          ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n          id: 'footnote-label'\n        },\n        children: [{type: 'text', value: state.footnoteLabel}]\n      },\n      {type: 'text', value: '\\n'},\n      {\n        type: 'element',\n        tagName: 'ol',\n        properties: {},\n        children: state.wrap(listItems, true)\n      },\n      {type: 'text', value: '\\n'}\n    ]\n  }\n}\n", "/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don\u2019t:\n *\n * *   `hast-util-to-html` also has an option `allowDangerousHtml` which will\n *     output the raw HTML.\n *     This is typically discouraged as noted by the option name but is useful\n *     if you completely trust authors\n * *   `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n *     into standard hast nodes (`element`, `text`, etc).\n *     This is a heavy task as it needs a full HTML parser, but it is the only\n *     way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * 

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn\u2019t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn\u2019t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If there\u2019s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n", "/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `` overload doesn\u2019t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It\u2019s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It\u2019s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n", "/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record} Properties\n * @typedef {Record} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n", "/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n", "/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n", "export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n", "let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n", "import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n", "/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n", "import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n", "import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n", "/**\n * @param {Record} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n", "import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n", "import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n", "import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n", "import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `
` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `