@mcp-b/transports 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/.tsbuildinfo CHANGED
@@ -1 +1 @@
1
- {"fileNames":["../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.12.3/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/types.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/helpers/typealiases.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/helpers/util.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/zoderror.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/locales/en.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/errors.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/helpers/parseutil.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/helpers/enumutil.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/helpers/errorutil.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/helpers/partialutil.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/standard-schema.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/types.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/external.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/index.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/index.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.12.3/node_modules/@modelcontextprotocol/sdk/dist/esm/types.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.12.3/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts","../src/browserwebsocketclienttransport.ts","../src/extensionclienttransport.ts","../src/extensionservertransport.ts","../src/tabclienttransport.ts","../src/tabservertransport.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/ws/index.d.mts","../src/websocketclienttransport.ts","../src/websocketservertransport.ts","../src/browser-types.ts","../src/index.ts","../../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/esm/index.d.ts","../../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/node.d.ts","../../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/index.d.ts","../../../node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/dist/esm/tokenizer.d.ts","../../../node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/dist/esm/parser.d.ts","../../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/index.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/stringify.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/traversal.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/manipulation.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/querying.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/legacy.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/helpers.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/feeds.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/index.d.ts","../../../node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/dist/esm/index.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/preprocessor.d.ts","../../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/generated/decode-data-html.d.ts","../../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts","../../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/decode-codepoint.d.ts","../../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/decode.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tree-adapters/interface.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tree-adapters/default.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/index.d.ts","../../../node_modules/.pnpm/parse5-htmlparser2-tree-adapter@7.1.0/node_modules/parse5-htmlparser2-tree-adapter/dist/index.d.ts","../../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/types.d.ts","../../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/parse.d.ts","../../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/stringify.d.ts","../../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/index.d.ts","../../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/esm/types.d.ts","../../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts","../../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts","../../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts","../../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts","../../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/esm/index.d.ts","../../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/esm/index.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/options.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/api/attributes.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/api/traversing.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/api/manipulation.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/api/css.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/api/forms.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/api/extract.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/cheerio.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/types.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/static.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/load.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/load-parse.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/slim.d.ts","../../../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/dist/esm/sniffer.d.ts","../../../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/dist/esm/index.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/utility.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/header.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/readable.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/fetch.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/formdata.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/connector.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/client-stats.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/client.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/errors.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/dispatcher.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/global-origin.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/pool-stats.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/pool.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/handlers.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/h2c-client.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/agent.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/mock-call-history.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/mock-agent.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/mock-client.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/mock-pool.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/mock-errors.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/retry-handler.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/retry-agent.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/api.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/cache-interceptor.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/interceptors.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/util.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/cookies.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/patch.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/websocket.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/eventsource.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/content-type.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/cache.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/index.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/index.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/index.d.ts","../../../node_modules/.pnpm/@types+har-format@1.2.16/node_modules/@types/har-format/index.d.ts","../../../node_modules/.pnpm/@types+chrome@0.0.326/node_modules/@types/chrome/har-format/index.d.ts","../../../node_modules/.pnpm/@types+chrome@0.0.326/node_modules/@types/chrome/chrome-cast/index.d.ts","../../../node_modules/.pnpm/@types+filewriter@0.0.33/node_modules/@types/filewriter/index.d.ts","../../../node_modules/.pnpm/@types+filesystem@0.0.36/node_modules/@types/filesystem/index.d.ts","../../../node_modules/.pnpm/@types+chrome@0.0.326/node_modules/@types/chrome/index.d.ts","../../../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/ws/index.d.ts"],"fileIdsList":[[87,130],[60,75,87,130],[74,87,130],[87,130,287],[87,130,288,289,291],[87,130,290],[87,127,130],[87,129,130],[130],[87,130,135,165],[87,130,131,136,142,143,150,162,173],[87,130,131,132,142,150],[82,83,84,87,130],[87,130,133,174],[87,130,134,135,143,151],[87,130,135,162,170],[87,130,136,138,142,150],[87,129,130,137],[87,130,138,139],[87,130,140,142],[87,129,130,142],[87,130,142,143,144,162,173],[87,130,142,143,144,157,162,165],[87,125,130],[87,125,130,138,142,145,150,162,173],[87,130,142,143,145,146,150,162,170,173],[87,130,145,147,162,170,173],[85,86,87,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179],[87,130,142,148],[87,130,149,173],[87,130,138,142,150,162],[87,130,151],[87,130,152],[87,129,130,153],[87,127,128,129,130,131,132,133,134,135,136,137,138,139,140,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179],[87,130,155],[87,130,156],[87,130,142,157,158],[87,130,157,159,174,176],[87,130,142,162,163,165],[87,130,164,165],[87,130,162,163],[87,130,165],[87,130,166],[87,127,130,162],[87,130,142,168,169],[87,130,168,169],[87,130,135,150,162,170],[87,130,171],[87,130,150,172],[87,130,145,156,173],[87,130,135,174],[87,130,162,175],[87,130,149,176],[87,130,177],[87,130,142,144,153,162,165,173,176,178],[87,130,162,179],[87,130,142,145,147,150,162,170,173,179,180],[87,130,188,228],[87,130,188,237],[87,130,188,231,237],[87,130,188,237,238],[87,130,188,230,231,232,233,234,235,236,238],[87,130,162,230,238,239,240,241,242,244,285],[87,130,188,230,240],[87,130,188,230,237,238,239],[87,130,188,191,200,217,218,229],[87,130,188,230,237,238,239,240],[87,130,188,230,236,237,238,240],[87,130,222,223,227],[87,130,223],[87,130,222,223,224,225,226],[87,130,222,223],[87,130,222],[87,130,219,220,221],[87,130,219],[87,130,188],[87,130,187],[87,130,186],[87,130,188,192,193,194,195,196,197,198],[87,130,186,188],[87,130,188,191],[87,130,162,243],[87,130,205,206,207],[87,130,186,188,189,190,199],[87,130,189],[87,130,188,217],[87,130,202],[87,130,201,202],[87,130,201],[87,130,201,202,203,209,210,213,214,215,216],[87,130,202,210],[87,130,201,202,203,209,210,211,212],[87,130,201,210],[87,130,210,214],[87,130,202,203,204,208],[87,130,203],[87,130,201,202,210],[87,97,101,130,173],[87,97,130,162,173],[87,92,130],[87,94,97,130,170,173],[87,130,150,170],[87,130,180],[87,92,130,180],[87,94,97,130,150,173],[87,89,90,93,96,130,142,162,173],[87,97,104,130],[87,89,95,130],[87,97,118,119,130],[87,93,97,130,165,173,180],[87,118,130,180],[87,91,92,130,180],[87,97,130],[87,91,92,93,94,95,96,97,98,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,130],[87,97,112,130],[87,97,104,105,130],[87,95,97,105,106,130],[87,96,130],[87,89,92,97,130],[87,97,101,105,106,130],[87,101,130],[87,95,97,100,130,173],[87,89,94,97,104,130],[87,130,162],[87,92,97,118,130,178,180],[87,130,284],[87,130,173,251,254,257,258],[87,130,162,173,254],[87,130,173,254,258],[87,130,248],[87,130,252],[87,130,173,250,251,254],[87,130,180,248],[87,130,150,173,250,254],[87,130,142,162,173,245,246,247,249,253],[87,130,254,262],[87,130,246,252],[87,130,254,278,279],[87,130,165,173,180,246,249,254],[87,130,254],[87,130,173,250,254],[87,130,245],[87,130,248,249,250,252,253,254,255,256,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,279,280,281,282,283],[87,130,138,254,271,274],[87,130,254,262,263,264],[87,130,252,254,263,265],[87,130,253],[87,130,246,248,254],[87,130,254,258,263,265],[87,130,258],[87,130,173,252,254,257],[87,130,246,250,254,262],[87,130,254,271],[87,130,165,178,180,248,254,278],[73,87,130],[63,64,87,130],[61,62,63,65,66,71,87,130],[62,63,87,130],[71,87,130],[72,87,130],[63,87,130],[61,62,63,66,67,68,69,70,87,130],[61,62,73,87,130],[75,87,130],[75,76,87,130],[77,78,79,80,81,87,130,182,183,184],[75,76,87,130,181]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"6bbaa172e4398e6562365e7dca6c2639b8a595b55046c6055706dd2923f7d7c2","impliedFormat":99},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"54f6ec6ea75acea6eb23635617252d249145edbc7bcd9d53f2d70280d2aef953","impliedFormat":1},{"version":"c25ce98cca43a3bfa885862044be0d59557be4ecd06989b2001a83dcf69620fd","impliedFormat":1},{"version":"8e71e53b02c152a38af6aec45e288cc65bede077b92b9b43b3cb54a37978bb33","impliedFormat":1},{"version":"754a9396b14ca3a4241591afb4edc644b293ccc8a3397f49be4dfd520c08acb3","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"de2316e90fc6d379d83002f04ad9698bc1e5285b4d52779778f454dd12ce9f44","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"2da997a01a6aa5c5c09de5d28f0f4407b597c5e1aecfd32f1815809c532650a2","impliedFormat":1},{"version":"5d26d2e47e2352def36f89a3e8bf8581da22b7f857e07ef3114cd52cf4813445","impliedFormat":1},{"version":"3db2efd285e7328d8014b54a7fce3f4861ebcdc655df40517092ed0050983617","impliedFormat":1},{"version":"d5d39a24c759df40480a4bfc0daffd364489702fdbcbdfc1711cde34f8739995","impliedFormat":1},{"version":"b4cf968abdb59faf21fa8a38457bc6d31cc18eff07c1d5f40df95ad87a0b6e80","impliedFormat":99},{"version":"a07daee7d2bf3132c437203f2fb694776a938075b570d339e0d482d85ff3b608","impliedFormat":99},{"version":"4a4ccbb1373e25abffbd6d31305d7482fc2b83bfa1e62259d50f3e07ef9ea907","signature":"00a25f391ab38cfffb6ebaeb0e0959e654deab6b0b8020685e468ca6b5c85a16"},{"version":"adad4d546baa527566e61d0b9625bd5c786715ded16850fbcb0f4b25ced1fd33","signature":"ff5dcf4372c1330044018126270451c0d9a4c63f83c739b9334991468061ae4a"},{"version":"e3673b0d742074da84f4f08b6599338ab7ccfa3bd33bd0b2bac16a963d243b05","signature":"cf35357b11c3ac5385c3fa30335fa725786740b313893fb8df0e6538d8ba9664"},{"version":"4db276a3cdd1fdc6a188413eb1b8758795091e3bde8a46c6ae54319e094c16f0","signature":"21ee733142093f600a17abcecc4424cc54ce71e36c4eabedc505884c29c36cc8"},{"version":"ef1315d0f37611ccbfbbd67023a5582de409fb0eae9ecf5439a73e0a8466303a","signature":"7471d777fed535cf522ba905657d57e733f54f2a5073e6fd208365b79c6b1003"},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"a12d953aa755b14ac1d28ecdc1e184f3285b01d6d1e58abc11bf1826bc9d80e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"a38efe83ff77c34e0f418a806a01ca3910c02ee7d64212a59d59bca6c2c38fa1","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"3fe4022ba1e738034e38ad9afacbf0f1f16b458ed516326f5bf9e4a31e9be1dc","impliedFormat":1},{"version":"a957197054b074bcdf5555d26286e8461680c7c878040d0f4e2d5509a7524944","affectsGlobalScope":true,"impliedFormat":1},{"version":"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","impliedFormat":1},{"version":"e9b97d69510658d2f4199b7d384326b7c4053b9e6645f5c19e1c2a54ede427fc","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"f478f6f5902dc144c0d6d7bdc919c5177cac4d17a8ca8653c2daf6d7dc94317f","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","impliedFormat":1},{"version":"e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true,"impliedFormat":1},{"version":"88bc59b32d0d5b4e5d9632ac38edea23454057e643684c3c0b94511296f2998c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a0a1dda070290b92da5a50113b73ecc4dd6bcbffad66e3c86503d483eafbadcf","impliedFormat":1},{"version":"59dcad36c4549175a25998f6a8b33c1df8e18df9c12ebad1dfb25af13fd4b1ce","impliedFormat":1},{"version":"206a70e72af3e24688397b81304358526ce70d020e4c2606c4acfd1fa1e81fb2","impliedFormat":1},{"version":"017caf5d2a8ef581cf94f678af6ce7415e06956317946315560f1487b9a56167","impliedFormat":1},{"version":"528b62e4272e3ddfb50e8eed9e359dedea0a4d171c3eb8f337f4892aac37b24b","impliedFormat":1},{"version":"d71535813e39c23baa113bc4a29a0e187b87d1105ccc8c5a6ebaca38d9a9bff2","impliedFormat":1},{"version":"4c3148420835de895b9218b2cea321a4607008ba5cefa57b2a57e1c1ef85d22f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f72bc8fe16da67e4e3268599295797b202b95e54bd215a03f97e925dd1502a36","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"915e18c559321c0afaa8d34674d3eb77e1ded12c3e85bf2a9891ec48b07a1ca5","affectsGlobalScope":true,"impliedFormat":1},{"version":"636302a00dfd1f9fe6e8e91e4e9350c6518dcc8d51a474e4fc3a9ba07135100b","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"e1ce1d622f1e561f6cdf246372ead3bbc07ce0342024d0e9c7caf3136f712698","impliedFormat":1},{"version":"199c8269497136f3a0f4da1d1d90ab033f899f070e0dd801946f2a241c8abba2","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"27e4532aaaa1665d0dd19023321e4dc12a35a741d6b8e1ca3517fcc2544e0efe","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"6266d94fb9165d42716e45f3a537ca9f59c07b1dfa8394a659acf139134807db","affectsGlobalScope":true,"impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"98ffdf93dfdd206516971d28e3e473f417a5cfd41172e46b4ce45008f640588e","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true,"impliedFormat":1},{"version":"a7692a54334fd08960cd0c610ff509c2caa93998e0dcefa54021489bcc67c22d","affectsGlobalScope":true,"impliedFormat":1},{"version":"74736930d108365d7bbe740c7154706ccfb1b2a3855a897963ab3e5c07ecbf19","impliedFormat":1},{"version":"3a051941721a7f905544732b0eb819c8d88333a96576b13af08b82c4f17581e4","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"1e25f8d0a8573cafd5b5a16af22d26ab872068a693b9dbccd3f72846ab373655","affectsGlobalScope":true,"impliedFormat":1},{"version":"3797dd6f4ea3dc15f356f8cdd3128bfa18122213b38a80d6c1f05d8e13cbdad8","impliedFormat":1},{"version":"ad90122e1cb599b3bc06a11710eb5489101be678f2920f2322b0ac3e195af78d","impliedFormat":1},{"version":"316f1486e15cbf7896425f0a16dfe12d447dd57cfb3244b8b119c77df870858f","impliedFormat":99},{"version":"dbde42ccb4f43c83fa599c786178a43034a3a209fa9742ea58421c3cd56a9e17","signature":"3b11ef5c155854118ddea86989898b115c10fa855264dae68e5257b5433ed7a1"},{"version":"5cbbb04ac4a17f9c6ad533397ae5e769476b35f2241f468a1e336cc53b5e1dc5","signature":"034897ba28b2f59198b3bf0932fef553aaf3e54a3c7869e466fa8a3e37fd6ef0"},{"version":"aebb775370916c8afc13c7ea8596dd41d004b4a959ff6210ddd8cb3df24fa543","signature":"67e963223c23b123a72306ad2f9109580dc0094cc6270ad60468378dccd176b6"},"02145b8b587e0e7a6c9b1689112af48cd2388ec1d5e80ca5cf87aa5f4013f20a",{"version":"2556e7e8bb7e6f0bb3fe25f3da990d1812cb91f8c9b389354b6a0c8a6d687590","impliedFormat":99},{"version":"ad1c91ca536e0962dcbfcdff40073e3dd18da839e0baad3fe990cf0d10c93065","impliedFormat":99},{"version":"19cf605ba2a4e8fba017edebdddbbc45aea897ddc58b4aae4c55f382b570ff53","impliedFormat":99},{"version":"884aab8c07224434c034b49e88de0511f21536aa83ee88f1285160ba6d3fb77a","impliedFormat":99},{"version":"130b39b18c99e5678635f383ef57efaa507196838ddabb47cb104064e2ce4cd3","impliedFormat":99},{"version":"7618d2cb769e2093acd4623d645b683ab9fea78c262b3aa354aba9f5afdcaaee","impliedFormat":99},{"version":"029f1ce606891c3f57f4c0c60b8a46c8ced53e719d27a7c9693817f2fe37690b","impliedFormat":99},{"version":"83596c963e276a9c5911412fba37ae7c1fe280f2d77329928828eed5a3bfa9a6","impliedFormat":99},{"version":"81acfd3a01767770e559bc57d32684756989475be6ea32e2fe6255472c3ea116","impliedFormat":99},{"version":"88d0c3eae81868b4749ba5b88f9b6d564ee748321ce19a2f4269a4e9dd46020a","impliedFormat":99},{"version":"8266b39a828bfb2695cabfa403e7c1226d7d94599f21bea9f760e35f4ca7a576","impliedFormat":99},{"version":"c1c1e740195c882a776cf084acbaf963907785ee39e723c6375fec9a59bf2387","impliedFormat":99},{"version":"137f96b78e477e08876f6372072c3b6f1767672bf182013f84f8ae53d987ff86","impliedFormat":99},{"version":"29896c61d09880ff39f8a86873bf72ce4deb910158d3a496122781e29904c615","impliedFormat":99},{"version":"81ce540acef0d6972b0b163331583181be3603300f618dcd6a6a3138954ff30c","impliedFormat":99},{"version":"19990350fca066265b2c190c9b6cde1229f35002ea2d4df8c9e397e9942f6c89","impliedFormat":99},{"version":"8fb8fdda477cd7382477ffda92c2bb7d9f7ef583b1aa531eb6b2dc2f0a206c10","impliedFormat":99},{"version":"66995b0c991b5c5d42eff1d950733f85482c7419f7296ab8952e03718169e379","impliedFormat":99},{"version":"9863f888da357e35e013ca3465b794a490a198226bd8232c2f81fb44e16ff323","impliedFormat":99},{"version":"84bc2d80326a83ee4a6e7cba2fd480b86502660770c0e24da96535af597c9f1e","impliedFormat":99},{"version":"ea27768379b866ee3f5da2419650acdb01125479f7af73580a4bceb25b79e372","impliedFormat":99},{"version":"598931eeb4362542cae5845f95c5f0e45ac668925a40ce201e244d7fe808e965","impliedFormat":99},{"version":"da9ef88cde9f715756da642ad80c4cd87a987f465d325462d6bc2a0b11d202c8","impliedFormat":99},{"version":"b4c6184d78303b0816e779a48bef779b15aea4a66028eb819aac0abee8407dea","impliedFormat":99},{"version":"db085d2171d48938a99e851dafe0e486dce9859e5dfa73c21de5ed3d4d6fb0c5","impliedFormat":99},{"version":"62a3ad1ddd1f5974b3bf105680b3e09420f2230711d6520a521fab2be1a32838","impliedFormat":99},{"version":"a77be6fc44c876bc10c897107f84eaba10790913ebdcad40fcda7e47469b2160","impliedFormat":99},{"version":"06cf55b6da5cef54eaaf51cdc3d4e5ebf16adfdd9ebd20cec7fe719be9ced017","impliedFormat":99},{"version":"91f5dbcdb25d145a56cffe957ec665256827892d779ef108eb2f3864faff523b","impliedFormat":99},{"version":"052ba354bab8fb943e0bc05a0769f7b81d7c3b3c6cd0f5cfa53c7b2da2a525c5","impliedFormat":99},{"version":"927955a3de5857e0a1c575ced5a4245e74e6821d720ed213141347dd1870197f","impliedFormat":99},{"version":"fec804d54cd97dd77e956232fc37dc13f53e160d4bbeeb5489e86eeaa91f7ebd","impliedFormat":99},{"version":"75ef949153a3e6ff419e39d0fa5eb6617e92de5019738ad3c43872023d9665f5","impliedFormat":99},{"version":"ed9ce8e6dd5b2d00ab95efc44e4ad9d0eba77362e01619cb21dedfdedbad51b8","impliedFormat":1},{"version":"5520611f997f2b8e62a6e191da45b07813ac2e758304690606604a64ac0ca976","impliedFormat":1},{"version":"00b469cba48c9d772a4555216d21ba41cdb5a732af797ccb57267344f4fc6c3d","impliedFormat":1},{"version":"2766bf77766c85c25ec31586823fefb48344e64556faad7e75a3363e517814f6","impliedFormat":1},{"version":"b7d1eaffd8003e8dc0ec275e58bd24c7b9a4dbae2a2d0d83cf248c88237262ce","impliedFormat":99},{"version":"7a8b08c0521c3a9e1db3c8b14f37e59d838fdc32389f1193b96630b435a8e64e","impliedFormat":99},{"version":"2e54848617fae9eb73654d9cf4295d99dab4b9c759934e5b82e2e57e6aaaef20","impliedFormat":99},{"version":"ae056b7c3f727d492166d4c1169d5905ddd194128a014b5d2d621248ed94b49c","impliedFormat":99},{"version":"edc5d99a04130f066f6e8d31c7c3f9ba4749496356470279408833b4faee3554","impliedFormat":99},{"version":"2f502ac2473a2bbf0d6217f9660e9d5bf40165a2f91067596323898c53dab87c","impliedFormat":99},{"version":"21f27a0c8bc8d9a4e2cf6d9c60140f8b071d0e1ffddb4b7dcf6bbf74d0e8d470","impliedFormat":99},{"version":"754108a1e136331ac67dc8ee6aa9c95cb3bea3ac8bbf48dda7b0dbabbc8f970f","impliedFormat":99},{"version":"9e9979adc151111d71ad049305be1b6df324a98d1d1edd84adb1756cc1911bfd","impliedFormat":99},{"version":"0f38bcf19f105cd31ded5d46491ca50a46462c838816c358d445f41ac7a68f5a","impliedFormat":99},{"version":"a65fc667cd78d7cad733fab96f4bff3183c0dcbc15b083dce0055cffc5c64f9f","impliedFormat":99},{"version":"c735e27dfa775155120c50f714f594639dd7b6ad1878097feb005a0b5c59b7c2","impliedFormat":99},{"version":"f3dd541f4d87bba38dabf43fd06b7616c6f86b11608d30e61086ab39f84fa8d8","impliedFormat":99},{"version":"5583f1c0912e96625a30c20b83cff3d175194b222e4eb22170d19e33f7d8729f","impliedFormat":99},{"version":"a515b08047d24de84d89ad80b2843e565e65ed4a4e7cfc9707656470d7c555f9","impliedFormat":99},{"version":"cf43b2783a58e42fca6e45f0d47465b2ab855b7e9bea5ccb68447297df8aade5","impliedFormat":99},{"version":"27a3f158d8e6f59f29e55c37d4ae3c39574ee99539c4f12bcf46d29929974a62","impliedFormat":99},{"version":"a2d23e2f22006483c89f42077bd6a9bf92db721ebb5e0859b06fdb5c8369586d","impliedFormat":99},{"version":"6a8aec6851c09e4524937485f6553ec7332118482f3ed33238cea7496ff42103","impliedFormat":99},{"version":"d67fd6ea8cf37131627c7a9ae1de96d19d41cb32e741a475f0f56942576a7b3b","impliedFormat":99},{"version":"9b2f424a2c5c592d738100d898df3f9ee018bdd23a279f10849c3686abbec158","impliedFormat":99},{"version":"2fef96aedd23d59b6093d12d9f97c95e3a4008fcc02e8c68304235a1770fc70a","impliedFormat":99},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"e525f9e67f5ddba7b5548430211cae2479070b70ef1fd93550c96c10529457bd","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4bc0794175abedf989547e628949888c1085b1efcd93fc482bccd77ee27f8b7c","impliedFormat":1},{"version":"3c8e93af4d6ce21eb4c8d005ad6dc02e7b5e6781f429d52a35290210f495a674","impliedFormat":1},{"version":"2c9875466123715464539bfd69bcaccb8ff6f3e217809428e0d7bd6323416d01","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"6c8e442ba33b07892169a14f7757321e49ab0f1032d676d321a1fdab8a67d40c","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"1cd673d367293fc5cb31cd7bf03d598eb368e4f31f39cf2b908abbaf120ab85a","impliedFormat":1},{"version":"af13e99445f37022c730bfcafcdc1761e9382ce1ea02afb678e3130b01ce5676","impliedFormat":1},{"version":"3825bf209f1662dfd039010a27747b73d0ef379f79970b1d05601ec8e8a4249f","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"da52342062e70c77213e45107921100ba9f9b3a30dd019444cf349e5fb3470c4","impliedFormat":1},{"version":"e9ace91946385d29192766bf783b8460c7dbcbfc63284aa3c9cae6de5155c8bc","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"1e30c045732e7db8f7a82cf90b516ebe693d2f499ce2250a977ec0d12e44a529","impliedFormat":1},{"version":"84b736594d8760f43400202859cda55607663090a43445a078963031d47e25e7","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"78b29846349d4dfdd88bd6650cc5d2baaa67f2e89dc8a80c8e26ef7995386583","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"e38d4fdf79e1eadd92ed7844c331dbaa40f29f21541cfee4e1acff4db09cda33","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"7c10a32ae6f3962672e6869ee2c794e8055d8225ef35c91c0228e354b4e5d2d3","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"99f569b42ea7e7c5fe404b2848c0893f3e1a56e0547c1cd0f74d5dbb9a9de27e","impliedFormat":1},{"version":"b3fb72492a07a76f7bfa29ecadd029eea081df11512e4dfe6f930a5a9cb1fb75","impliedFormat":1},{"version":"99257d2cf17c6c6f36131f640129289062c66384dba9d21a991cacfdc346711e","impliedFormat":99},{"version":"5574d520dabc450de6be799f1791d86d71da4fb236f16e6ca21b953788bb5154","impliedFormat":1},{"version":"5f877dfc985d1fd3ac8bf4a75cd77b06c42ca608809b324c44b4151758de7189","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f585cea32567574de0301ed79131a4c3d0bb36bbfea7f66e2f29b5dce1c4293","affectsGlobalScope":true,"impliedFormat":1},{"version":"14c2fd6220654a41c53836a62ba96d4b515ae1413b0ccb31c2445fb1ae1de5de","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f29c38739500cd35a2ce41d15a35e34445ca755ebb991915b5f170985a49d21","affectsGlobalScope":true,"impliedFormat":1},{"version":"16f842a1a38c8bc26dfebd1e3c56a63a2c2a0e1979a4141c8012d2f763c38267","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ba59c8bbeed2cb75b239bb12041582fa3e8ef32f8d0bd0ec802e38442d3f317","impliedFormat":1}],"root":[[77,81],[182,185]],"options":{"allowImportingTsExtensions":false,"allowSyntheticDefaultImports":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":false,"jsx":4,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUncheckedIndexedAccess":false,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":false},"referencedMap":[[60,1],[76,2],[75,3],[289,1],[288,4],[292,5],[291,6],[290,1],[287,1],[127,7],[128,7],[129,8],[87,9],[130,10],[131,11],[132,12],[82,1],[85,13],[83,1],[84,1],[133,14],[134,15],[135,16],[136,17],[137,18],[138,19],[139,19],[141,1],[140,20],[142,21],[143,22],[144,23],[126,24],[86,1],[145,25],[146,26],[147,27],[180,28],[148,29],[149,30],[150,31],[151,32],[152,33],[153,34],[154,35],[155,36],[156,37],[157,38],[158,38],[159,39],[160,1],[161,1],[162,40],[164,41],[163,42],[165,43],[166,44],[167,45],[168,46],[169,47],[170,48],[171,49],[172,50],[173,51],[174,52],[175,53],[176,54],[177,55],[178,56],[179,57],[181,58],[293,58],[88,1],[229,59],[231,60],[234,60],[236,61],[235,60],[233,62],[232,62],[237,63],[286,64],[241,65],[240,66],[230,67],[242,68],[239,69],[238,60],[228,70],[226,1],[224,71],[227,72],[225,73],[223,74],[222,75],[220,76],[221,76],[219,1],[191,77],[186,1],[188,78],[187,79],[198,77],[197,77],[199,80],[196,81],[194,77],[195,77],[192,82],[193,77],[244,83],[243,1],[207,1],[208,84],[205,1],[206,1],[200,85],[190,86],[189,1],[218,87],[203,88],[216,89],[201,1],[202,90],[217,91],[212,92],[213,93],[211,94],[215,95],[209,96],[204,97],[214,98],[210,89],[58,1],[59,1],[10,1],[11,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[22,1],[23,1],[4,1],[24,1],[28,1],[25,1],[26,1],[27,1],[29,1],[30,1],[31,1],[5,1],[32,1],[33,1],[34,1],[35,1],[6,1],[39,1],[36,1],[37,1],[38,1],[40,1],[7,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[8,1],[51,1],[48,1],[49,1],[50,1],[52,1],[9,1],[53,1],[54,1],[55,1],[57,1],[56,1],[1,1],[104,99],[114,100],[103,99],[124,101],[95,102],[94,103],[123,104],[117,105],[122,106],[97,107],[111,108],[96,109],[120,110],[92,111],[91,104],[121,112],[93,113],[98,114],[99,1],[102,114],[89,1],[125,115],[115,116],[106,117],[107,118],[109,119],[105,120],[108,121],[118,104],[100,122],[101,123],[110,124],[90,125],[113,116],[112,114],[116,1],[119,126],[285,127],[262,128],[273,129],[260,130],[274,125],[283,131],[251,132],[252,133],[250,103],[282,104],[277,134],[281,135],[254,136],[270,137],[253,138],[280,139],[248,140],[249,134],[255,141],[256,1],[261,142],[259,141],[246,143],[284,144],[275,145],[265,146],[264,141],[266,147],[268,148],[263,149],[267,150],[278,104],[257,151],[258,152],[269,153],[247,125],[272,154],[271,141],[276,1],[245,1],[279,155],[74,156],[65,157],[72,158],[67,1],[68,1],[66,159],[69,160],[61,1],[62,1],[73,161],[64,162],[70,1],[71,163],[63,164],[184,165],[77,166],[78,166],[79,166],[185,167],[80,166],[81,166],[182,168],[183,166]],"affectedFilesPendingEmit":[[184,51],[77,51],[78,51],[79,51],[185,51],[80,51],[81,51],[182,51],[183,51]],"version":"5.8.3"}
1
+ {"fileNames":["../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/helpers/typealiases.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/helpers/util.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/zoderror.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/locales/en.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/errors.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/helpers/parseutil.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/helpers/enumutil.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/helpers/errorutil.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/helpers/partialutil.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/standard-schema.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/types.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/external.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/v3/index.d.ts","../../../node_modules/.pnpm/zod@3.25.64/node_modules/zod/dist/types/index.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.13.2/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/types.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.13.2/node_modules/@modelcontextprotocol/sdk/dist/esm/types.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.13.2/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts","../src/browserwebsocketclienttransport.ts","../src/extensionclienttransport.ts","../src/extensionservertransport.ts","../src/tabclienttransport.ts","../src/tabservertransport.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.15.31/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/ws/index.d.mts","../src/websocketclienttransport.ts","../src/websocketservertransport.ts","../src/browser-types.ts","../src/index.ts","../../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/esm/index.d.ts","../../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/node.d.ts","../../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/index.d.ts","../../../node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/dist/esm/tokenizer.d.ts","../../../node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/dist/esm/parser.d.ts","../../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/index.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/stringify.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/traversal.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/manipulation.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/querying.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/legacy.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/helpers.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/feeds.d.ts","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/index.d.ts","../../../node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/dist/esm/index.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/preprocessor.d.ts","../../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/generated/decode-data-html.d.ts","../../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts","../../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/decode-codepoint.d.ts","../../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/decode.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tree-adapters/interface.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tree-adapters/default.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.d.ts","../../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/index.d.ts","../../../node_modules/.pnpm/parse5-htmlparser2-tree-adapter@7.1.0/node_modules/parse5-htmlparser2-tree-adapter/dist/index.d.ts","../../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/types.d.ts","../../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/parse.d.ts","../../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/stringify.d.ts","../../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/index.d.ts","../../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/esm/types.d.ts","../../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts","../../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts","../../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts","../../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts","../../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/esm/index.d.ts","../../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/esm/index.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/options.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/api/attributes.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/api/traversing.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/api/manipulation.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/api/css.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/api/forms.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/api/extract.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/cheerio.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/types.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/static.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/load.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/load-parse.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/slim.d.ts","../../../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/dist/esm/sniffer.d.ts","../../../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/dist/esm/index.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/utility.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/header.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/readable.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/fetch.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/formdata.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/connector.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/client-stats.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/client.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/errors.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/dispatcher.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/global-origin.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/pool-stats.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/pool.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/handlers.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/h2c-client.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/agent.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/mock-call-history.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/mock-agent.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/mock-client.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/mock-pool.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/mock-errors.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/retry-handler.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/retry-agent.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/api.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/cache-interceptor.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/interceptors.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/util.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/cookies.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/patch.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/websocket.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/eventsource.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/content-type.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/cache.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/types/index.d.ts","../../../node_modules/.pnpm/undici@7.10.0/node_modules/undici/index.d.ts","../../../node_modules/.pnpm/cheerio@1.1.0/node_modules/cheerio/dist/esm/index.d.ts","../../../node_modules/.pnpm/@types+har-format@1.2.16/node_modules/@types/har-format/index.d.ts","../../../node_modules/.pnpm/@types+chrome@0.0.326/node_modules/@types/chrome/har-format/index.d.ts","../../../node_modules/.pnpm/@types+chrome@0.0.326/node_modules/@types/chrome/chrome-cast/index.d.ts","../../../node_modules/.pnpm/@types+filewriter@0.0.33/node_modules/@types/filewriter/index.d.ts","../../../node_modules/.pnpm/@types+filesystem@0.0.36/node_modules/@types/filesystem/index.d.ts","../../../node_modules/.pnpm/@types+chrome@0.0.326/node_modules/@types/chrome/index.d.ts","../../../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/ws/index.d.ts"],"fileIdsList":[[87,130],[75,87,130],[73,74,87,130],[87,130,287],[87,130,288,289,291],[87,130,290],[87,127,130],[87,129,130],[130],[87,130,135,165],[87,130,131,136,142,143,150,162,173],[87,130,131,132,142,150],[82,83,84,87,130],[87,130,133,174],[87,130,134,135,143,151],[87,130,135,162,170],[87,130,136,138,142,150],[87,129,130,137],[87,130,138,139],[87,130,140,142],[87,129,130,142],[87,130,142,143,144,162,173],[87,130,142,143,144,157,162,165],[87,125,130],[87,125,130,138,142,145,150,162,173],[87,130,142,143,145,146,150,162,170,173],[87,130,145,147,162,170,173],[85,86,87,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179],[87,130,142,148],[87,130,149,173],[87,130,138,142,150,162],[87,130,151],[87,130,152],[87,129,130,153],[87,127,128,129,130,131,132,133,134,135,136,137,138,139,140,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179],[87,130,155],[87,130,156],[87,130,142,157,158],[87,130,157,159,174,176],[87,130,142,162,163,165],[87,130,164,165],[87,130,162,163],[87,130,165],[87,130,166],[87,127,130,162],[87,130,142,168,169],[87,130,168,169],[87,130,135,150,162,170],[87,130,171],[87,130,150,172],[87,130,145,156,173],[87,130,135,174],[87,130,162,175],[87,130,149,176],[87,130,177],[87,130,142,144,153,162,165,173,176,178],[87,130,162,179],[87,130,142,145,147,150,162,170,173,179,180],[87,130,188,228],[87,130,188,237],[87,130,188,231,237],[87,130,188,237,238],[87,130,188,230,231,232,233,234,235,236,238],[87,130,162,230,238,239,240,241,242,244,285],[87,130,188,230,240],[87,130,188,230,237,238,239],[87,130,188,191,200,217,218,229],[87,130,188,230,237,238,239,240],[87,130,188,230,236,237,238,240],[87,130,222,223,227],[87,130,223],[87,130,222,223,224,225,226],[87,130,222,223],[87,130,222],[87,130,219,220,221],[87,130,219],[87,130,188],[87,130,187],[87,130,186],[87,130,188,192,193,194,195,196,197,198],[87,130,186,188],[87,130,188,191],[87,130,162,243],[87,130,205,206,207],[87,130,186,188,189,190,199],[87,130,189],[87,130,188,217],[87,130,202],[87,130,201,202],[87,130,201],[87,130,201,202,203,209,210,213,214,215,216],[87,130,202,210],[87,130,201,202,203,209,210,211,212],[87,130,201,210],[87,130,210,214],[87,130,202,203,204,208],[87,130,203],[87,130,201,202,210],[87,97,101,130,173],[87,97,130,162,173],[87,92,130],[87,94,97,130,170,173],[87,130,150,170],[87,130,180],[87,92,130,180],[87,94,97,130,150,173],[87,89,90,93,96,130,142,162,173],[87,97,104,130],[87,89,95,130],[87,97,118,119,130],[87,93,97,130,165,173,180],[87,118,130,180],[87,91,92,130,180],[87,97,130],[87,91,92,93,94,95,96,97,98,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,130],[87,97,112,130],[87,97,104,105,130],[87,95,97,105,106,130],[87,96,130],[87,89,92,97,130],[87,97,101,105,106,130],[87,101,130],[87,95,97,100,130,173],[87,89,94,97,104,130],[87,130,162],[87,92,97,118,130,178,180],[87,130,284],[87,130,173,251,254,257,258],[87,130,162,173,254],[87,130,173,254,258],[87,130,248],[87,130,252],[87,130,173,250,251,254],[87,130,180,248],[87,130,150,173,250,254],[87,130,142,162,173,245,246,247,249,253],[87,130,254,262],[87,130,246,252],[87,130,254,278,279],[87,130,165,173,180,246,249,254],[87,130,254],[87,130,173,250,254],[87,130,245],[87,130,248,249,250,252,253,254,255,256,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,279,280,281,282,283],[87,130,138,254,271,274],[87,130,254,262,263,264],[87,130,252,254,263,265],[87,130,253],[87,130,246,248,254],[87,130,254,258,263,265],[87,130,258],[87,130,173,252,254,257],[87,130,246,250,254,262],[87,130,254,271],[87,130,165,178,180,248,254,278],[72,87,130],[62,63,87,130],[60,61,62,64,65,70,87,130],[61,62,87,130],[70,87,130],[71,87,130],[62,87,130],[60,61,62,65,66,67,68,69,87,130],[60,61,72,87,130],[75,76,87,130],[77,78,79,80,81,87,130,182,183,184],[75,76,87,130,181]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"54f6ec6ea75acea6eb23635617252d249145edbc7bcd9d53f2d70280d2aef953","impliedFormat":1},{"version":"c25ce98cca43a3bfa885862044be0d59557be4ecd06989b2001a83dcf69620fd","impliedFormat":1},{"version":"8e71e53b02c152a38af6aec45e288cc65bede077b92b9b43b3cb54a37978bb33","impliedFormat":1},{"version":"754a9396b14ca3a4241591afb4edc644b293ccc8a3397f49be4dfd520c08acb3","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"de2316e90fc6d379d83002f04ad9698bc1e5285b4d52779778f454dd12ce9f44","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"2da997a01a6aa5c5c09de5d28f0f4407b597c5e1aecfd32f1815809c532650a2","impliedFormat":1},{"version":"5d26d2e47e2352def36f89a3e8bf8581da22b7f857e07ef3114cd52cf4813445","impliedFormat":1},{"version":"3db2efd285e7328d8014b54a7fce3f4861ebcdc655df40517092ed0050983617","impliedFormat":1},{"version":"d5d39a24c759df40480a4bfc0daffd364489702fdbcbdfc1711cde34f8739995","impliedFormat":1},{"version":"4749a5d10b6e3b0bd6c8d90f9ba68a91a97aa0c2c9a340dd83306b2f349d6d34","impliedFormat":99},{"version":"711586151fb1db3fe834f586d83f768cc10db9383a215da241045769cd873265","impliedFormat":99},{"version":"835809bc3ef637c0d80bb1a461bb0fdc55661337f5c27b91c0d32c039076a67f","impliedFormat":99},{"version":"392e6d2c405b18624952fcfbeeb7b88745989a6934c60761d9d554015e6819cd","signature":"00a25f391ab38cfffb6ebaeb0e0959e654deab6b0b8020685e468ca6b5c85a16"},{"version":"c857952cff0ec30136ab7445f6c13f051073a2780c93fcec0ad354d3c2fd2a76","signature":"ff5dcf4372c1330044018126270451c0d9a4c63f83c739b9334991468061ae4a"},{"version":"e3673b0d742074da84f4f08b6599338ab7ccfa3bd33bd0b2bac16a963d243b05","signature":"cf35357b11c3ac5385c3fa30335fa725786740b313893fb8df0e6538d8ba9664"},{"version":"4db276a3cdd1fdc6a188413eb1b8758795091e3bde8a46c6ae54319e094c16f0","signature":"21ee733142093f600a17abcecc4424cc54ce71e36c4eabedc505884c29c36cc8"},{"version":"ef1315d0f37611ccbfbbd67023a5582de409fb0eae9ecf5439a73e0a8466303a","signature":"7471d777fed535cf522ba905657d57e733f54f2a5073e6fd208365b79c6b1003"},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"a12d953aa755b14ac1d28ecdc1e184f3285b01d6d1e58abc11bf1826bc9d80e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"a38efe83ff77c34e0f418a806a01ca3910c02ee7d64212a59d59bca6c2c38fa1","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"3fe4022ba1e738034e38ad9afacbf0f1f16b458ed516326f5bf9e4a31e9be1dc","impliedFormat":1},{"version":"a957197054b074bcdf5555d26286e8461680c7c878040d0f4e2d5509a7524944","affectsGlobalScope":true,"impliedFormat":1},{"version":"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","impliedFormat":1},{"version":"e9b97d69510658d2f4199b7d384326b7c4053b9e6645f5c19e1c2a54ede427fc","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"f478f6f5902dc144c0d6d7bdc919c5177cac4d17a8ca8653c2daf6d7dc94317f","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","impliedFormat":1},{"version":"e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true,"impliedFormat":1},{"version":"88bc59b32d0d5b4e5d9632ac38edea23454057e643684c3c0b94511296f2998c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a0a1dda070290b92da5a50113b73ecc4dd6bcbffad66e3c86503d483eafbadcf","impliedFormat":1},{"version":"59dcad36c4549175a25998f6a8b33c1df8e18df9c12ebad1dfb25af13fd4b1ce","impliedFormat":1},{"version":"206a70e72af3e24688397b81304358526ce70d020e4c2606c4acfd1fa1e81fb2","impliedFormat":1},{"version":"017caf5d2a8ef581cf94f678af6ce7415e06956317946315560f1487b9a56167","impliedFormat":1},{"version":"528b62e4272e3ddfb50e8eed9e359dedea0a4d171c3eb8f337f4892aac37b24b","impliedFormat":1},{"version":"d71535813e39c23baa113bc4a29a0e187b87d1105ccc8c5a6ebaca38d9a9bff2","impliedFormat":1},{"version":"4c3148420835de895b9218b2cea321a4607008ba5cefa57b2a57e1c1ef85d22f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f72bc8fe16da67e4e3268599295797b202b95e54bd215a03f97e925dd1502a36","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"915e18c559321c0afaa8d34674d3eb77e1ded12c3e85bf2a9891ec48b07a1ca5","affectsGlobalScope":true,"impliedFormat":1},{"version":"636302a00dfd1f9fe6e8e91e4e9350c6518dcc8d51a474e4fc3a9ba07135100b","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"e1ce1d622f1e561f6cdf246372ead3bbc07ce0342024d0e9c7caf3136f712698","impliedFormat":1},{"version":"199c8269497136f3a0f4da1d1d90ab033f899f070e0dd801946f2a241c8abba2","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"27e4532aaaa1665d0dd19023321e4dc12a35a741d6b8e1ca3517fcc2544e0efe","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"6266d94fb9165d42716e45f3a537ca9f59c07b1dfa8394a659acf139134807db","affectsGlobalScope":true,"impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"98ffdf93dfdd206516971d28e3e473f417a5cfd41172e46b4ce45008f640588e","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true,"impliedFormat":1},{"version":"a7692a54334fd08960cd0c610ff509c2caa93998e0dcefa54021489bcc67c22d","affectsGlobalScope":true,"impliedFormat":1},{"version":"74736930d108365d7bbe740c7154706ccfb1b2a3855a897963ab3e5c07ecbf19","impliedFormat":1},{"version":"3a051941721a7f905544732b0eb819c8d88333a96576b13af08b82c4f17581e4","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"1e25f8d0a8573cafd5b5a16af22d26ab872068a693b9dbccd3f72846ab373655","affectsGlobalScope":true,"impliedFormat":1},{"version":"3797dd6f4ea3dc15f356f8cdd3128bfa18122213b38a80d6c1f05d8e13cbdad8","impliedFormat":1},{"version":"ad90122e1cb599b3bc06a11710eb5489101be678f2920f2322b0ac3e195af78d","impliedFormat":1},{"version":"316f1486e15cbf7896425f0a16dfe12d447dd57cfb3244b8b119c77df870858f","impliedFormat":99},{"version":"dbde42ccb4f43c83fa599c786178a43034a3a209fa9742ea58421c3cd56a9e17","signature":"3b11ef5c155854118ddea86989898b115c10fa855264dae68e5257b5433ed7a1"},{"version":"5cbbb04ac4a17f9c6ad533397ae5e769476b35f2241f468a1e336cc53b5e1dc5","signature":"034897ba28b2f59198b3bf0932fef553aaf3e54a3c7869e466fa8a3e37fd6ef0"},{"version":"aebb775370916c8afc13c7ea8596dd41d004b4a959ff6210ddd8cb3df24fa543","signature":"67e963223c23b123a72306ad2f9109580dc0094cc6270ad60468378dccd176b6"},"02145b8b587e0e7a6c9b1689112af48cd2388ec1d5e80ca5cf87aa5f4013f20a",{"version":"2556e7e8bb7e6f0bb3fe25f3da990d1812cb91f8c9b389354b6a0c8a6d687590","impliedFormat":99},{"version":"ad1c91ca536e0962dcbfcdff40073e3dd18da839e0baad3fe990cf0d10c93065","impliedFormat":99},{"version":"19cf605ba2a4e8fba017edebdddbbc45aea897ddc58b4aae4c55f382b570ff53","impliedFormat":99},{"version":"884aab8c07224434c034b49e88de0511f21536aa83ee88f1285160ba6d3fb77a","impliedFormat":99},{"version":"130b39b18c99e5678635f383ef57efaa507196838ddabb47cb104064e2ce4cd3","impliedFormat":99},{"version":"7618d2cb769e2093acd4623d645b683ab9fea78c262b3aa354aba9f5afdcaaee","impliedFormat":99},{"version":"029f1ce606891c3f57f4c0c60b8a46c8ced53e719d27a7c9693817f2fe37690b","impliedFormat":99},{"version":"83596c963e276a9c5911412fba37ae7c1fe280f2d77329928828eed5a3bfa9a6","impliedFormat":99},{"version":"81acfd3a01767770e559bc57d32684756989475be6ea32e2fe6255472c3ea116","impliedFormat":99},{"version":"88d0c3eae81868b4749ba5b88f9b6d564ee748321ce19a2f4269a4e9dd46020a","impliedFormat":99},{"version":"8266b39a828bfb2695cabfa403e7c1226d7d94599f21bea9f760e35f4ca7a576","impliedFormat":99},{"version":"c1c1e740195c882a776cf084acbaf963907785ee39e723c6375fec9a59bf2387","impliedFormat":99},{"version":"137f96b78e477e08876f6372072c3b6f1767672bf182013f84f8ae53d987ff86","impliedFormat":99},{"version":"29896c61d09880ff39f8a86873bf72ce4deb910158d3a496122781e29904c615","impliedFormat":99},{"version":"81ce540acef0d6972b0b163331583181be3603300f618dcd6a6a3138954ff30c","impliedFormat":99},{"version":"19990350fca066265b2c190c9b6cde1229f35002ea2d4df8c9e397e9942f6c89","impliedFormat":99},{"version":"8fb8fdda477cd7382477ffda92c2bb7d9f7ef583b1aa531eb6b2dc2f0a206c10","impliedFormat":99},{"version":"66995b0c991b5c5d42eff1d950733f85482c7419f7296ab8952e03718169e379","impliedFormat":99},{"version":"9863f888da357e35e013ca3465b794a490a198226bd8232c2f81fb44e16ff323","impliedFormat":99},{"version":"84bc2d80326a83ee4a6e7cba2fd480b86502660770c0e24da96535af597c9f1e","impliedFormat":99},{"version":"ea27768379b866ee3f5da2419650acdb01125479f7af73580a4bceb25b79e372","impliedFormat":99},{"version":"598931eeb4362542cae5845f95c5f0e45ac668925a40ce201e244d7fe808e965","impliedFormat":99},{"version":"da9ef88cde9f715756da642ad80c4cd87a987f465d325462d6bc2a0b11d202c8","impliedFormat":99},{"version":"b4c6184d78303b0816e779a48bef779b15aea4a66028eb819aac0abee8407dea","impliedFormat":99},{"version":"db085d2171d48938a99e851dafe0e486dce9859e5dfa73c21de5ed3d4d6fb0c5","impliedFormat":99},{"version":"62a3ad1ddd1f5974b3bf105680b3e09420f2230711d6520a521fab2be1a32838","impliedFormat":99},{"version":"a77be6fc44c876bc10c897107f84eaba10790913ebdcad40fcda7e47469b2160","impliedFormat":99},{"version":"06cf55b6da5cef54eaaf51cdc3d4e5ebf16adfdd9ebd20cec7fe719be9ced017","impliedFormat":99},{"version":"91f5dbcdb25d145a56cffe957ec665256827892d779ef108eb2f3864faff523b","impliedFormat":99},{"version":"052ba354bab8fb943e0bc05a0769f7b81d7c3b3c6cd0f5cfa53c7b2da2a525c5","impliedFormat":99},{"version":"927955a3de5857e0a1c575ced5a4245e74e6821d720ed213141347dd1870197f","impliedFormat":99},{"version":"fec804d54cd97dd77e956232fc37dc13f53e160d4bbeeb5489e86eeaa91f7ebd","impliedFormat":99},{"version":"75ef949153a3e6ff419e39d0fa5eb6617e92de5019738ad3c43872023d9665f5","impliedFormat":99},{"version":"ed9ce8e6dd5b2d00ab95efc44e4ad9d0eba77362e01619cb21dedfdedbad51b8","impliedFormat":1},{"version":"5520611f997f2b8e62a6e191da45b07813ac2e758304690606604a64ac0ca976","impliedFormat":1},{"version":"00b469cba48c9d772a4555216d21ba41cdb5a732af797ccb57267344f4fc6c3d","impliedFormat":1},{"version":"2766bf77766c85c25ec31586823fefb48344e64556faad7e75a3363e517814f6","impliedFormat":1},{"version":"b7d1eaffd8003e8dc0ec275e58bd24c7b9a4dbae2a2d0d83cf248c88237262ce","impliedFormat":99},{"version":"7a8b08c0521c3a9e1db3c8b14f37e59d838fdc32389f1193b96630b435a8e64e","impliedFormat":99},{"version":"2e54848617fae9eb73654d9cf4295d99dab4b9c759934e5b82e2e57e6aaaef20","impliedFormat":99},{"version":"ae056b7c3f727d492166d4c1169d5905ddd194128a014b5d2d621248ed94b49c","impliedFormat":99},{"version":"edc5d99a04130f066f6e8d31c7c3f9ba4749496356470279408833b4faee3554","impliedFormat":99},{"version":"2f502ac2473a2bbf0d6217f9660e9d5bf40165a2f91067596323898c53dab87c","impliedFormat":99},{"version":"21f27a0c8bc8d9a4e2cf6d9c60140f8b071d0e1ffddb4b7dcf6bbf74d0e8d470","impliedFormat":99},{"version":"754108a1e136331ac67dc8ee6aa9c95cb3bea3ac8bbf48dda7b0dbabbc8f970f","impliedFormat":99},{"version":"9e9979adc151111d71ad049305be1b6df324a98d1d1edd84adb1756cc1911bfd","impliedFormat":99},{"version":"0f38bcf19f105cd31ded5d46491ca50a46462c838816c358d445f41ac7a68f5a","impliedFormat":99},{"version":"a65fc667cd78d7cad733fab96f4bff3183c0dcbc15b083dce0055cffc5c64f9f","impliedFormat":99},{"version":"c735e27dfa775155120c50f714f594639dd7b6ad1878097feb005a0b5c59b7c2","impliedFormat":99},{"version":"f3dd541f4d87bba38dabf43fd06b7616c6f86b11608d30e61086ab39f84fa8d8","impliedFormat":99},{"version":"5583f1c0912e96625a30c20b83cff3d175194b222e4eb22170d19e33f7d8729f","impliedFormat":99},{"version":"a515b08047d24de84d89ad80b2843e565e65ed4a4e7cfc9707656470d7c555f9","impliedFormat":99},{"version":"cf43b2783a58e42fca6e45f0d47465b2ab855b7e9bea5ccb68447297df8aade5","impliedFormat":99},{"version":"27a3f158d8e6f59f29e55c37d4ae3c39574ee99539c4f12bcf46d29929974a62","impliedFormat":99},{"version":"a2d23e2f22006483c89f42077bd6a9bf92db721ebb5e0859b06fdb5c8369586d","impliedFormat":99},{"version":"6a8aec6851c09e4524937485f6553ec7332118482f3ed33238cea7496ff42103","impliedFormat":99},{"version":"d67fd6ea8cf37131627c7a9ae1de96d19d41cb32e741a475f0f56942576a7b3b","impliedFormat":99},{"version":"9b2f424a2c5c592d738100d898df3f9ee018bdd23a279f10849c3686abbec158","impliedFormat":99},{"version":"2fef96aedd23d59b6093d12d9f97c95e3a4008fcc02e8c68304235a1770fc70a","impliedFormat":99},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"e525f9e67f5ddba7b5548430211cae2479070b70ef1fd93550c96c10529457bd","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4bc0794175abedf989547e628949888c1085b1efcd93fc482bccd77ee27f8b7c","impliedFormat":1},{"version":"3c8e93af4d6ce21eb4c8d005ad6dc02e7b5e6781f429d52a35290210f495a674","impliedFormat":1},{"version":"2c9875466123715464539bfd69bcaccb8ff6f3e217809428e0d7bd6323416d01","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"6c8e442ba33b07892169a14f7757321e49ab0f1032d676d321a1fdab8a67d40c","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"1cd673d367293fc5cb31cd7bf03d598eb368e4f31f39cf2b908abbaf120ab85a","impliedFormat":1},{"version":"af13e99445f37022c730bfcafcdc1761e9382ce1ea02afb678e3130b01ce5676","impliedFormat":1},{"version":"3825bf209f1662dfd039010a27747b73d0ef379f79970b1d05601ec8e8a4249f","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"da52342062e70c77213e45107921100ba9f9b3a30dd019444cf349e5fb3470c4","impliedFormat":1},{"version":"e9ace91946385d29192766bf783b8460c7dbcbfc63284aa3c9cae6de5155c8bc","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"1e30c045732e7db8f7a82cf90b516ebe693d2f499ce2250a977ec0d12e44a529","impliedFormat":1},{"version":"84b736594d8760f43400202859cda55607663090a43445a078963031d47e25e7","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"78b29846349d4dfdd88bd6650cc5d2baaa67f2e89dc8a80c8e26ef7995386583","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"e38d4fdf79e1eadd92ed7844c331dbaa40f29f21541cfee4e1acff4db09cda33","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"7c10a32ae6f3962672e6869ee2c794e8055d8225ef35c91c0228e354b4e5d2d3","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"99f569b42ea7e7c5fe404b2848c0893f3e1a56e0547c1cd0f74d5dbb9a9de27e","impliedFormat":1},{"version":"b3fb72492a07a76f7bfa29ecadd029eea081df11512e4dfe6f930a5a9cb1fb75","impliedFormat":1},{"version":"99257d2cf17c6c6f36131f640129289062c66384dba9d21a991cacfdc346711e","impliedFormat":99},{"version":"5574d520dabc450de6be799f1791d86d71da4fb236f16e6ca21b953788bb5154","impliedFormat":1},{"version":"5f877dfc985d1fd3ac8bf4a75cd77b06c42ca608809b324c44b4151758de7189","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f585cea32567574de0301ed79131a4c3d0bb36bbfea7f66e2f29b5dce1c4293","affectsGlobalScope":true,"impliedFormat":1},{"version":"14c2fd6220654a41c53836a62ba96d4b515ae1413b0ccb31c2445fb1ae1de5de","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f29c38739500cd35a2ce41d15a35e34445ca755ebb991915b5f170985a49d21","affectsGlobalScope":true,"impliedFormat":1},{"version":"16f842a1a38c8bc26dfebd1e3c56a63a2c2a0e1979a4141c8012d2f763c38267","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ba59c8bbeed2cb75b239bb12041582fa3e8ef32f8d0bd0ec802e38442d3f317","impliedFormat":1}],"root":[[77,81],[182,185]],"options":{"allowImportingTsExtensions":false,"allowSyntheticDefaultImports":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":false,"jsx":4,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUncheckedIndexedAccess":false,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":false},"referencedMap":[[74,1],[76,2],[75,3],[289,1],[288,4],[292,5],[291,6],[290,1],[287,1],[127,7],[128,7],[129,8],[87,9],[130,10],[131,11],[132,12],[82,1],[85,13],[83,1],[84,1],[133,14],[134,15],[135,16],[136,17],[137,18],[138,19],[139,19],[141,1],[140,20],[142,21],[143,22],[144,23],[126,24],[86,1],[145,25],[146,26],[147,27],[180,28],[148,29],[149,30],[150,31],[151,32],[152,33],[153,34],[154,35],[155,36],[156,37],[157,38],[158,38],[159,39],[160,1],[161,1],[162,40],[164,41],[163,42],[165,43],[166,44],[167,45],[168,46],[169,47],[170,48],[171,49],[172,50],[173,51],[174,52],[175,53],[176,54],[177,55],[178,56],[179,57],[181,58],[293,58],[88,1],[229,59],[231,60],[234,60],[236,61],[235,60],[233,62],[232,62],[237,63],[286,64],[241,65],[240,66],[230,67],[242,68],[239,69],[238,60],[228,70],[226,1],[224,71],[227,72],[225,73],[223,74],[222,75],[220,76],[221,76],[219,1],[191,77],[186,1],[188,78],[187,79],[198,77],[197,77],[199,80],[196,81],[194,77],[195,77],[192,82],[193,77],[244,83],[243,1],[207,1],[208,84],[205,1],[206,1],[200,85],[190,86],[189,1],[218,87],[203,88],[216,89],[201,1],[202,90],[217,91],[212,92],[213,93],[211,94],[215,95],[209,96],[204,97],[214,98],[210,89],[58,1],[59,1],[10,1],[11,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[22,1],[23,1],[4,1],[24,1],[28,1],[25,1],[26,1],[27,1],[29,1],[30,1],[31,1],[5,1],[32,1],[33,1],[34,1],[35,1],[6,1],[39,1],[36,1],[37,1],[38,1],[40,1],[7,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[8,1],[51,1],[48,1],[49,1],[50,1],[52,1],[9,1],[53,1],[54,1],[55,1],[57,1],[56,1],[1,1],[104,99],[114,100],[103,99],[124,101],[95,102],[94,103],[123,104],[117,105],[122,106],[97,107],[111,108],[96,109],[120,110],[92,111],[91,104],[121,112],[93,113],[98,114],[99,1],[102,114],[89,1],[125,115],[115,116],[106,117],[107,118],[109,119],[105,120],[108,121],[118,104],[100,122],[101,123],[110,124],[90,125],[113,116],[112,114],[116,1],[119,126],[285,127],[262,128],[273,129],[260,130],[274,125],[283,131],[251,132],[252,133],[250,103],[282,104],[277,134],[281,135],[254,136],[270,137],[253,138],[280,139],[248,140],[249,134],[255,141],[256,1],[261,142],[259,141],[246,143],[284,144],[275,145],[265,146],[264,141],[266,147],[268,148],[263,149],[267,150],[278,104],[257,151],[258,152],[269,153],[247,125],[272,154],[271,141],[276,1],[245,1],[279,155],[73,156],[64,157],[71,158],[66,1],[67,1],[65,159],[68,160],[60,1],[61,1],[72,161],[63,162],[69,1],[70,163],[62,164],[184,2],[77,165],[78,165],[79,165],[185,166],[80,165],[81,165],[182,167],[183,165]],"affectedFilesPendingEmit":[[184,51],[77,51],[78,51],[79,51],[185,51],[80,51],[81,51],[182,51],[183,51]],"version":"5.8.3"}
package/dist/index.d.ts CHANGED
@@ -1,179 +1,6 @@
1
1
  import { Transport, TransportSendOptions } from '@modelcontextprotocol/sdk/shared/transport.js';
2
2
  import { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
3
3
 
4
- interface TabClientTransportOptions {
5
- targetOrigin: string;
6
- channelId?: string;
7
- }
8
- declare class TabClientTransport implements Transport {
9
- private _started;
10
- private _targetOrigin;
11
- private _channelId;
12
- private _messageHandler?;
13
- onclose?: () => void;
14
- onerror?: (error: Error) => void;
15
- onmessage?: (message: JSONRPCMessage) => void;
16
- constructor(options: TabClientTransportOptions);
17
- start(): Promise<void>;
18
- send(message: JSONRPCMessage): Promise<void>;
19
- close(): Promise<void>;
20
- }
21
-
22
- interface TabServerTransportOptions {
23
- allowedOrigins: string[];
24
- channelId?: string;
25
- }
26
- declare class TabServerTransport implements Transport {
27
- private _started;
28
- private _allowedOrigins;
29
- private _channelId;
30
- private _messageHandler?;
31
- private _clientOrigin?;
32
- onclose?: () => void;
33
- onerror?: (error: Error) => void;
34
- onmessage?: (message: JSONRPCMessage) => void;
35
- constructor(options: TabServerTransportOptions);
36
- start(): Promise<void>;
37
- send(message: JSONRPCMessage): Promise<void>;
38
- close(): Promise<void>;
39
- }
40
-
41
- /**
42
- * Configuration options for ExtensionClientTransport
43
- */
44
- interface ExtensionClientTransportOptions {
45
- /**
46
- * The extension ID to connect to (optional for same-extension connections)
47
- */
48
- extensionId?: string;
49
- /**
50
- * Port name for the connection
51
- * Default: 'mcp'
52
- */
53
- portName?: string;
54
- }
55
- /**
56
- * Client transport for Chrome extensions using Port-based messaging.
57
- * This transport can be used in content scripts, popup scripts, or sidepanel scripts
58
- * to connect to a server running in the background service worker.
59
- */
60
- declare class ExtensionClientTransport implements Transport {
61
- private _port?;
62
- private _extensionId?;
63
- private _portName;
64
- private _messageHandler?;
65
- private _disconnectHandler?;
66
- onclose?: () => void;
67
- onerror?: (error: Error) => void;
68
- onmessage?: (message: JSONRPCMessage) => void;
69
- constructor(options?: ExtensionClientTransportOptions);
70
- /**
71
- * Starts the transport by connecting to the extension port
72
- */
73
- start(): Promise<void>;
74
- /**
75
- * Sends a message to the server
76
- */
77
- send(message: JSONRPCMessage, _options?: TransportSendOptions): Promise<void>;
78
- /**
79
- * Closes the transport
80
- */
81
- close(): Promise<void>;
82
- /**
83
- * Cleans up event listeners and references
84
- */
85
- private _cleanup;
86
- }
87
-
88
- /**
89
- * Server transport for Chrome extensions using Port-based messaging.
90
- * This transport handles a single client connection through Chrome's port messaging API.
91
- * It should be used in the extension's background service worker.
92
- */
93
- declare class ExtensionServerTransport implements Transport {
94
- private _port;
95
- private _started;
96
- private _messageHandler?;
97
- private _disconnectHandler?;
98
- onclose?: () => void;
99
- onerror?: (error: Error) => void;
100
- onmessage?: (message: JSONRPCMessage) => void;
101
- constructor(port: chrome.runtime.Port);
102
- /**
103
- * Starts the transport and begins handling messages
104
- */
105
- start(): Promise<void>;
106
- /**
107
- * Sends a message to the client
108
- */
109
- send(message: JSONRPCMessage, _options?: TransportSendOptions): Promise<void>;
110
- /**
111
- * Closes the transport
112
- */
113
- close(): Promise<void>;
114
- /**
115
- * Cleans up event listeners and references
116
- */
117
- private _cleanup;
118
- }
119
-
120
- /**
121
- * Client transport for WebSocket: this will connect to a server over the WebSocket protocol.
122
- * This transport is Node.js specific and requires the 'ws' package to be installed.
123
- */
124
- declare class WebSocketClientTransport implements Transport {
125
- private _socket?;
126
- private _url;
127
- private _WebSocket?;
128
- onclose?: () => void;
129
- onerror?: (error: Error) => void;
130
- onmessage?: (message: JSONRPCMessage) => void;
131
- constructor(url: URL);
132
- start(): Promise<void>;
133
- close(): Promise<void>;
134
- send(message: JSONRPCMessage): Promise<void>;
135
- }
136
-
137
- /**
138
- * Server transport for WebSocket: this will accept connections from MCP clients over WebSocket protocol.
139
- * Designed to work in browser extension environments.
140
- */
141
- declare class WebSocketServerTransport implements Transport {
142
- private _options;
143
- private _socket?;
144
- private _server?;
145
- private _started;
146
- private _connectionId?;
147
- onclose?: () => void;
148
- onerror?: (error: Error) => void;
149
- onmessage?: (message: JSONRPCMessage) => void;
150
- constructor(_options: {
151
- /**
152
- * For browser extensions: provide an existing WebSocket connection
153
- */
154
- socket?: WebSocket;
155
- /**
156
- * For Node.js: provide port to create WebSocketServer
157
- */
158
- port?: number;
159
- });
160
- /**
161
- * Starts the transport. In browser extension context, this validates the socket.
162
- */
163
- start(): Promise<void>;
164
- private setupSocketHandlers;
165
- close(): Promise<void>;
166
- send(message: JSONRPCMessage): Promise<void>;
167
- /**
168
- * Get the current WebSocket connection (if any)
169
- */
170
- get socket(): WebSocket | undefined;
171
- /**
172
- * Check if transport has an active connection
173
- */
174
- get isConnected(): boolean;
175
- }
176
-
177
4
  interface BrowserWebSocketClientTransportOptions {
178
5
  maxRetries?: number;
179
6
  initialRetryDelay?: number;
@@ -336,4 +163,177 @@ interface StoredEvent {
336
163
  clientId: string;
337
164
  }
338
165
 
166
+ /**
167
+ * Configuration options for ExtensionClientTransport
168
+ */
169
+ interface ExtensionClientTransportOptions {
170
+ /**
171
+ * The extension ID to connect to (optional for same-extension connections)
172
+ */
173
+ extensionId?: string;
174
+ /**
175
+ * Port name for the connection
176
+ * Default: 'mcp'
177
+ */
178
+ portName?: string;
179
+ }
180
+ /**
181
+ * Client transport for Chrome extensions using Port-based messaging.
182
+ * This transport can be used in content scripts, popup scripts, or sidepanel scripts
183
+ * to connect to a server running in the background service worker.
184
+ */
185
+ declare class ExtensionClientTransport implements Transport {
186
+ private _port?;
187
+ private _extensionId?;
188
+ private _portName;
189
+ private _messageHandler?;
190
+ private _disconnectHandler?;
191
+ onclose?: () => void;
192
+ onerror?: (error: Error) => void;
193
+ onmessage?: (message: JSONRPCMessage) => void;
194
+ constructor(options?: ExtensionClientTransportOptions);
195
+ /**
196
+ * Starts the transport by connecting to the extension port
197
+ */
198
+ start(): Promise<void>;
199
+ /**
200
+ * Sends a message to the server
201
+ */
202
+ send(message: JSONRPCMessage, _options?: TransportSendOptions): Promise<void>;
203
+ /**
204
+ * Closes the transport
205
+ */
206
+ close(): Promise<void>;
207
+ /**
208
+ * Cleans up event listeners and references
209
+ */
210
+ private _cleanup;
211
+ }
212
+
213
+ /**
214
+ * Server transport for Chrome extensions using Port-based messaging.
215
+ * This transport handles a single client connection through Chrome's port messaging API.
216
+ * It should be used in the extension's background service worker.
217
+ */
218
+ declare class ExtensionServerTransport implements Transport {
219
+ private _port;
220
+ private _started;
221
+ private _messageHandler?;
222
+ private _disconnectHandler?;
223
+ onclose?: () => void;
224
+ onerror?: (error: Error) => void;
225
+ onmessage?: (message: JSONRPCMessage) => void;
226
+ constructor(port: chrome.runtime.Port);
227
+ /**
228
+ * Starts the transport and begins handling messages
229
+ */
230
+ start(): Promise<void>;
231
+ /**
232
+ * Sends a message to the client
233
+ */
234
+ send(message: JSONRPCMessage, _options?: TransportSendOptions): Promise<void>;
235
+ /**
236
+ * Closes the transport
237
+ */
238
+ close(): Promise<void>;
239
+ /**
240
+ * Cleans up event listeners and references
241
+ */
242
+ private _cleanup;
243
+ }
244
+
245
+ interface TabClientTransportOptions {
246
+ targetOrigin: string;
247
+ channelId?: string;
248
+ }
249
+ declare class TabClientTransport implements Transport {
250
+ private _started;
251
+ private _targetOrigin;
252
+ private _channelId;
253
+ private _messageHandler?;
254
+ onclose?: () => void;
255
+ onerror?: (error: Error) => void;
256
+ onmessage?: (message: JSONRPCMessage) => void;
257
+ constructor(options: TabClientTransportOptions);
258
+ start(): Promise<void>;
259
+ send(message: JSONRPCMessage): Promise<void>;
260
+ close(): Promise<void>;
261
+ }
262
+
263
+ interface TabServerTransportOptions {
264
+ allowedOrigins: string[];
265
+ channelId?: string;
266
+ }
267
+ declare class TabServerTransport implements Transport {
268
+ private _started;
269
+ private _allowedOrigins;
270
+ private _channelId;
271
+ private _messageHandler?;
272
+ private _clientOrigin?;
273
+ onclose?: () => void;
274
+ onerror?: (error: Error) => void;
275
+ onmessage?: (message: JSONRPCMessage) => void;
276
+ constructor(options: TabServerTransportOptions);
277
+ start(): Promise<void>;
278
+ send(message: JSONRPCMessage): Promise<void>;
279
+ close(): Promise<void>;
280
+ }
281
+
282
+ /**
283
+ * Client transport for WebSocket: this will connect to a server over the WebSocket protocol.
284
+ * This transport is Node.js specific and requires the 'ws' package to be installed.
285
+ */
286
+ declare class WebSocketClientTransport implements Transport {
287
+ private _socket?;
288
+ private _url;
289
+ private _WebSocket?;
290
+ onclose?: () => void;
291
+ onerror?: (error: Error) => void;
292
+ onmessage?: (message: JSONRPCMessage) => void;
293
+ constructor(url: URL);
294
+ start(): Promise<void>;
295
+ close(): Promise<void>;
296
+ send(message: JSONRPCMessage): Promise<void>;
297
+ }
298
+
299
+ /**
300
+ * Server transport for WebSocket: this will accept connections from MCP clients over WebSocket protocol.
301
+ * Designed to work in browser extension environments.
302
+ */
303
+ declare class WebSocketServerTransport implements Transport {
304
+ private _options;
305
+ private _socket?;
306
+ private _server?;
307
+ private _started;
308
+ private _connectionId?;
309
+ onclose?: () => void;
310
+ onerror?: (error: Error) => void;
311
+ onmessage?: (message: JSONRPCMessage) => void;
312
+ constructor(_options: {
313
+ /**
314
+ * For browser extensions: provide an existing WebSocket connection
315
+ */
316
+ socket?: WebSocket;
317
+ /**
318
+ * For Node.js: provide port to create WebSocketServer
319
+ */
320
+ port?: number;
321
+ });
322
+ /**
323
+ * Starts the transport. In browser extension context, this validates the socket.
324
+ */
325
+ start(): Promise<void>;
326
+ private setupSocketHandlers;
327
+ close(): Promise<void>;
328
+ send(message: JSONRPCMessage): Promise<void>;
329
+ /**
330
+ * Get the current WebSocket connection (if any)
331
+ */
332
+ get socket(): WebSocket | undefined;
333
+ /**
334
+ * Check if transport has an active connection
335
+ */
336
+ get isConnected(): boolean;
337
+ }
338
+
339
339
  export { BrowserWebSocketClientTransport, type BrowserWebSocketClientTransportOptions, type EventId, ExtensionClientTransport, type ExtensionClientTransportOptions, ExtensionServerTransport, type MCPBrowserInterface, type MCPConnectOptions, type MCPEventMessage, type MCPEventStore, type MCPReplayEventMessage, type MCPServerInfo, type MCPServerInfoMessage, type MCPWindow, type StoredEvent, type StreamId, TabClientTransport, type TabClientTransportOptions, TabServerTransport, type TabServerTransportOptions, WebSocketClientTransport, WebSocketServerTransport };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import {JSONRPCMessageSchema}from'@modelcontextprotocol/sdk/types.js';var a=class{_started=false;_targetOrigin;_channelId;_messageHandler;onclose;onerror;onmessage;constructor(e){if(!e.targetOrigin)throw new Error("targetOrigin must be explicitly set for security");this._targetOrigin=e.targetOrigin,this._channelId=e.channelId||"mcp-default";}async start(){if(this._started)throw new Error("Transport already started");this._messageHandler=e=>{if(e.origin===this._targetOrigin&&!(e.data?.channel!==this._channelId||e.data?.type!=="mcp")&&e.data?.direction==="server-to-client")try{let t=JSONRPCMessageSchema.parse(e.data.payload);this.onmessage?.(t);}catch(t){this.onerror?.(new Error(`Invalid message: ${t}`));}},window.addEventListener("message",this._messageHandler),this._started=true;}async send(e){if(!this._started)throw new Error("Transport not started");window.postMessage({channel:this._channelId,type:"mcp",direction:"client-to-server",payload:e},this._targetOrigin);}async close(){this._messageHandler&&window.removeEventListener("message",this._messageHandler),this._started=false,this.onclose?.();}};var c=class{_started=false;_allowedOrigins;_channelId;_messageHandler;_clientOrigin;onclose;onerror;onmessage;constructor(e){if(!e.allowedOrigins||e.allowedOrigins.length===0)throw new Error("At least one allowed origin must be specified");this._allowedOrigins=e.allowedOrigins,this._channelId=e.channelId||"mcp-default";}async start(){if(this._started)throw new Error("Transport already started");this._messageHandler=e=>{if(console.log({event:e}),!(!this._allowedOrigins.includes(e.origin)&&!this._allowedOrigins.includes("*"))&&!(e.data?.channel!==this._channelId||e.data?.type!=="mcp")&&e.data?.direction==="client-to-server"){this._clientOrigin=e.origin;try{let t=JSONRPCMessageSchema.parse(e.data.payload);this.onmessage?.(t);}catch(t){this.onerror?.(new Error(`Invalid message: ${t}`));}}},window.addEventListener("message",this._messageHandler),this._started=true;}async send(e){if(!this._started)throw new Error("Transport not started");if(!this._clientOrigin)throw new Error("No client connected");window.postMessage({channel:this._channelId,type:"mcp",direction:"server-to-client",payload:e},this._clientOrigin);}async close(){this._messageHandler&&window.removeEventListener("message",this._messageHandler),this._started=false,this.onclose?.();}};var d=class{_port;_extensionId;_portName;_messageHandler;_disconnectHandler;onclose;onerror;onmessage;constructor(e={}){this._extensionId=e.extensionId,this._portName=e.portName||"mcp";}async start(){if(this._port){console.warn("ExtensionClientTransport already started! If using Client class, note that connect() calls start() automatically.");return}return new Promise((e,t)=>{if(!chrome?.runtime?.connect){t(new Error("Chrome runtime API not available. This transport must be used in a Chrome extension context."));return}try{this._extensionId?this._port=chrome.runtime.connect(this._extensionId,{name:this._portName}):this._port=chrome.runtime.connect({name:this._portName}),this._messageHandler=s=>{try{let o=JSONRPCMessageSchema.parse(s);this.onmessage?.(o);}catch(o){this.onerror?.(new Error(`Failed to parse message: ${o}`));}},this._disconnectHandler=()=>{this._cleanup(),this.onclose?.();},this._port.onMessage.addListener(this._messageHandler),this._port.onDisconnect.addListener(this._disconnectHandler);let r=chrome.runtime.lastError;if(r){this._cleanup(),t(new Error(`Connection failed: ${r.message}`));return}e();}catch(r){t(r);}})}async send(e,t){if(!this._port)throw new Error("Not connected");try{this._port.postMessage(e);}catch(r){throw new Error(`Failed to send message: ${r}`)}}async close(){if(this._port)try{this._port.disconnect();}catch{}this._cleanup(),this.onclose?.();}_cleanup(){this._port&&(this._messageHandler&&this._port.onMessage.removeListener(this._messageHandler),this._disconnectHandler&&this._port.onDisconnect.removeListener(this._disconnectHandler)),this._port=void 0;}};var h=class{_port;_started=false;_messageHandler;_disconnectHandler;onclose;onerror;onmessage;constructor(e){this._port=e;}async start(){if(this._started)throw new Error("ExtensionServerTransport already started! If using Server class, note that connect() calls start() automatically.");if(!this._port)throw new Error("Port not available");this._started=true,this._messageHandler=e=>{try{let t=JSONRPCMessageSchema.parse(e);this.onmessage?.(t);}catch(t){this.onerror?.(new Error(`Failed to parse message: ${t}`));}},this._disconnectHandler=()=>{this._cleanup(),this.onclose?.();},this._port.onMessage.addListener(this._messageHandler),this._port.onDisconnect.addListener(this._disconnectHandler);}async send(e,t){if(!this._started)throw new Error("Transport not started");if(!this._port)throw new Error("Not connected to client");try{this._port.postMessage(e);}catch(r){throw new Error(`Failed to send message: ${r}`)}}async close(){if(this._started=false,this._port)try{this._port.disconnect();}catch{}this._cleanup(),this.onclose?.();}_cleanup(){this._port&&(this._messageHandler&&this._port.onMessage.removeListener(this._messageHandler),this._disconnectHandler&&this._port.onDisconnect.removeListener(this._disconnectHandler));}};var l="mcp",m=class{_socket;_url;_WebSocket;onclose;onerror;onmessage;constructor(e){this._url=e;}async start(){if(this._socket)throw new Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");if(!this._WebSocket)try{let e=await import('ws');this._WebSocket=e.WebSocket;}catch{throw new Error("Failed to import 'ws' package. Please install it with: npm install ws")}return new Promise((e,t)=>{this._socket=new this._WebSocket(this._url.toString(),{perMessageDeflate:false,...{protocol:l}}),this._socket.on("error",r=>{t(r),this.onerror?.(r);}),this._socket.on("open",()=>{e();}),this._socket.on("close",()=>{this.onclose?.();}),this._socket.on("message",r=>{let s;try{let o=r instanceof Buffer?r.toString("utf-8"):r.toString();s=JSONRPCMessageSchema.parse(JSON.parse(o));}catch(o){this.onerror?.(o);return}this.onmessage?.(s);});})}async close(){this._socket&&this._WebSocket&&this._socket.readyState===this._WebSocket.OPEN&&this._socket.close();}async send(e){return new Promise((t,r)=>{if(!this._socket||!this._WebSocket){r(new Error("Not connected"));return}if(this._socket.readyState!==this._WebSocket.OPEN){r(new Error("WebSocket is not open"));return}this._socket.send(JSON.stringify(e),s=>{s?r(s):t();});})}};var _=class{constructor(e){this._options=e;}_socket;_server;_started=false;_connectionId;onclose;onerror;onmessage;async start(){if(this._started)throw new Error("WebSocketServerTransport already started! If using Server class, note that connect() calls start() automatically.");if(this._started=true,this._options.socket)this._socket=this._options.socket,this.setupSocketHandlers(this._socket);else throw new Error("WebSocketServerTransport requires either a socket ")}setupSocketHandlers(e){e.onmessage=t=>{let r;try{let s=typeof t.data=="string"?t.data:t.data.toString(),o=JSON.parse(s);if(o.connectionId){this._connectionId=o.connectionId;let{connectionId:u,...n}=o;r=JSONRPCMessageSchema.parse(n);}else r=JSONRPCMessageSchema.parse(o);}catch(s){this.onerror?.(s);return}this.onmessage?.(r);},e.onerror=t=>{let r=new Error(`WebSocket error: ${JSON.stringify(t)}`);this.onerror?.(r);},e.onclose=()=>{this._socket=void 0,this.onclose?.();};}async close(){if(this._socket&&(this._socket.close(),this._socket=void 0),this._server)return new Promise(e=>{this._server.close(()=>{this._server=void 0,e();});})}send(e){return new Promise((t,r)=>{if(!this._socket||this._socket.readyState!==WebSocket.OPEN){r(new Error("No active WebSocket connection"));return}try{let s=this._connectionId?{...e,connectionId:this._connectionId}:e;this._socket.send(JSON.stringify(s)),t();}catch(s){r(s);}})}get socket(){return this._socket}get isConnected(){return this._socket?.readyState===WebSocket.OPEN}};var g=class{_socket;_url;_connectionId;_options;_retryCount=0;_isClosing=false;_connectionTimeoutId;onclose;onerror;onmessage;constructor(e,t){this._url=e.toString(),this._options={maxRetries:t?.maxRetries??10,initialRetryDelay:t?.initialRetryDelay??1e3,maxRetryDelay:t?.maxRetryDelay??3e4,connectionTimeout:t?.connectionTimeout??1e4,retryMultiplier:t?.retryMultiplier??1.5};}async start(){if(this._socket)throw new Error("BrowserWebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return this._isClosing=false,this._retryCount=0,this._connectWithRetry()}async _connectWithRetry(){for(;this._retryCount<=this._options.maxRetries&&!this._isClosing;)try{await this._attemptConnection();return}catch(e){if(this._retryCount++,this._isClosing)throw new Error("Connection cancelled");if(this._retryCount>this._options.maxRetries)throw new Error(`Failed to connect after ${this._options.maxRetries} retries: ${e}`);let t=Math.min(this._options.initialRetryDelay*Math.pow(this._options.retryMultiplier,this._retryCount-1),this._options.maxRetryDelay);console.log(`[WebSocket] Connection failed, retrying in ${t}ms (attempt ${this._retryCount}/${this._options.maxRetries})`),await this._sleep(t);}}_sleep(e){return new Promise(t=>setTimeout(t,e))}async _attemptConnection(){return new Promise((e,t)=>{try{this._connectionTimeoutId&&clearTimeout(this._connectionTimeoutId),this._socket=new WebSocket(this._url),this._connectionTimeoutId=setTimeout(()=>{this._socket&&this._socket.readyState===WebSocket.CONNECTING&&(this._socket.close(),t(new Error(`Connection timeout after ${this._options.connectionTimeout}ms`)));},this._options.connectionTimeout),this._socket.onopen=()=>{this._connectionTimeoutId&&(clearTimeout(this._connectionTimeoutId),this._connectionTimeoutId=void 0),this._retryCount=0,e();},this._socket.onerror=r=>{let s=new Error("WebSocket connection error");t(s);},this._socket.onclose=()=>{this._socket=void 0,this._connectionId=void 0,!this._isClosing&&this._retryCount===0&&this.onclose?.();},this._socket.onmessage=r=>{let s;try{if(s=JSON.parse(r.data),s.connectionId&&!this._connectionId&&(this._connectionId=s.connectionId),s.connectionId){let{connectionId:u,...n}=s;s=n;}let o=JSONRPCMessageSchema.parse(s);this.onmessage?.(o);}catch(o){this.onerror?.(o);}};}catch(r){t(r);}})}async close(){this._isClosing=true,this._connectionTimeoutId&&(clearTimeout(this._connectionTimeoutId),this._connectionTimeoutId=void 0),this._socket&&this._socket.readyState===WebSocket.OPEN&&this._socket.close();}async send(e){return new Promise((t,r)=>{if(!this._socket||this._socket.readyState!==WebSocket.OPEN){r(new Error("WebSocket is not connected"));return}try{let s=this._connectionId?{...e,connectionId:this._connectionId}:e;this._socket.send(JSON.stringify(s)),t();}catch(s){r(s);}})}get isConnected(){return this._socket?.readyState===WebSocket.OPEN}};export{g as BrowserWebSocketClientTransport,d as ExtensionClientTransport,h as ExtensionServerTransport,a as TabClientTransport,c as TabServerTransport,m as WebSocketClientTransport,_ as WebSocketServerTransport};//# sourceMappingURL=index.js.map
1
+ import {JSONRPCMessageSchema}from'@modelcontextprotocol/sdk/types.js';var a=class{_socket;_url;_connectionId;_options;_retryCount=0;_isClosing=false;_connectionTimeoutId;onclose;onerror;onmessage;constructor(e,t){this._url=e.toString(),this._options={maxRetries:t?.maxRetries??10,initialRetryDelay:t?.initialRetryDelay??1e3,maxRetryDelay:t?.maxRetryDelay??3e4,connectionTimeout:t?.connectionTimeout??1e4,retryMultiplier:t?.retryMultiplier??1.5};}async start(){if(this._socket)throw new Error("BrowserWebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return this._isClosing=false,this._retryCount=0,this._connectWithRetry()}async _connectWithRetry(){for(;this._retryCount<=this._options.maxRetries&&!this._isClosing;)try{await this._attemptConnection();return}catch(e){if(this._retryCount++,this._isClosing)throw new Error("Connection cancelled");if(this._retryCount>this._options.maxRetries)throw new Error(`Failed to connect after ${this._options.maxRetries} retries: ${e}`);let t=Math.min(this._options.initialRetryDelay*this._options.retryMultiplier**(this._retryCount-1),this._options.maxRetryDelay);console.log(`[WebSocket] Connection failed, retrying in ${t}ms (attempt ${this._retryCount}/${this._options.maxRetries})`),await this._sleep(t);}}_sleep(e){return new Promise(t=>setTimeout(t,e))}async _attemptConnection(){return new Promise((e,t)=>{try{this._connectionTimeoutId&&clearTimeout(this._connectionTimeoutId),this._socket=new WebSocket(this._url),this._connectionTimeoutId=setTimeout(()=>{this._socket&&this._socket.readyState===WebSocket.CONNECTING&&(this._socket.close(),t(new Error(`Connection timeout after ${this._options.connectionTimeout}ms`)));},this._options.connectionTimeout),this._socket.onopen=()=>{this._connectionTimeoutId&&(clearTimeout(this._connectionTimeoutId),this._connectionTimeoutId=void 0),this._retryCount=0,e();},this._socket.onerror=r=>{let s=new Error("WebSocket connection error");t(s);},this._socket.onclose=()=>{this._socket=void 0,this._connectionId=void 0,!this._isClosing&&this._retryCount===0&&this.onclose?.();},this._socket.onmessage=r=>{let s;try{if(s=JSON.parse(r.data),s.connectionId&&!this._connectionId&&(this._connectionId=s.connectionId),s.connectionId){let{connectionId:u,...n}=s;s=n;}let o=JSONRPCMessageSchema.parse(s);this.onmessage?.(o);}catch(o){this.onerror?.(o);}};}catch(r){t(r);}})}async close(){this._isClosing=true,this._connectionTimeoutId&&(clearTimeout(this._connectionTimeoutId),this._connectionTimeoutId=void 0),this._socket&&this._socket.readyState===WebSocket.OPEN&&this._socket.close();}async send(e){return new Promise((t,r)=>{if(!this._socket||this._socket.readyState!==WebSocket.OPEN){r(new Error("WebSocket is not connected"));return}try{let s=this._connectionId?{...e,connectionId:this._connectionId}:e;this._socket.send(JSON.stringify(s)),t();}catch(s){r(s);}})}get isConnected(){return this._socket?.readyState===WebSocket.OPEN}};var c=class{_port;_extensionId;_portName;_messageHandler;_disconnectHandler;onclose;onerror;onmessage;constructor(e={}){this._extensionId=e.extensionId,this._portName=e.portName||"mcp";}async start(){if(this._port){console.warn("ExtensionClientTransport already started! If using Client class, note that connect() calls start() automatically.");return}return new Promise((e,t)=>{if(!chrome?.runtime?.connect){t(new Error("Chrome runtime API not available. This transport must be used in a Chrome extension context."));return}try{this._extensionId?this._port=chrome.runtime.connect(this._extensionId,{name:this._portName}):this._port=chrome.runtime.connect({name:this._portName}),this._messageHandler=s=>{try{let o=JSONRPCMessageSchema.parse(s);this.onmessage?.(o);}catch(o){this.onerror?.(new Error(`Failed to parse message: ${o}`));}},this._disconnectHandler=()=>{this._cleanup(),this.onclose?.();},this._port.onMessage.addListener(this._messageHandler),this._port.onDisconnect.addListener(this._disconnectHandler);let r=chrome.runtime.lastError;if(r){this._cleanup(),t(new Error(`Connection failed: ${r.message}`));return}e();}catch(r){t(r);}})}async send(e,t){if(!this._port)throw new Error("Not connected");try{this._port.postMessage(e);}catch(r){throw new Error(`Failed to send message: ${r}`)}}async close(){if(this._port)try{this._port.disconnect();}catch{}this._cleanup(),this.onclose?.();}_cleanup(){this._port&&(this._messageHandler&&this._port.onMessage.removeListener(this._messageHandler),this._disconnectHandler&&this._port.onDisconnect.removeListener(this._disconnectHandler)),this._port=void 0;}};var d=class{_port;_started=false;_messageHandler;_disconnectHandler;onclose;onerror;onmessage;constructor(e){this._port=e;}async start(){if(this._started)throw new Error("ExtensionServerTransport already started! If using Server class, note that connect() calls start() automatically.");if(!this._port)throw new Error("Port not available");this._started=true,this._messageHandler=e=>{try{let t=JSONRPCMessageSchema.parse(e);this.onmessage?.(t);}catch(t){this.onerror?.(new Error(`Failed to parse message: ${t}`));}},this._disconnectHandler=()=>{this._cleanup(),this.onclose?.();},this._port.onMessage.addListener(this._messageHandler),this._port.onDisconnect.addListener(this._disconnectHandler);}async send(e,t){if(!this._started)throw new Error("Transport not started");if(!this._port)throw new Error("Not connected to client");try{this._port.postMessage(e);}catch(r){throw new Error(`Failed to send message: ${r}`)}}async close(){if(this._started=false,this._port)try{this._port.disconnect();}catch{}this._cleanup(),this.onclose?.();}_cleanup(){this._port&&(this._messageHandler&&this._port.onMessage.removeListener(this._messageHandler),this._disconnectHandler&&this._port.onDisconnect.removeListener(this._disconnectHandler));}};var h=class{_started=false;_targetOrigin;_channelId;_messageHandler;onclose;onerror;onmessage;constructor(e){if(!e.targetOrigin)throw new Error("targetOrigin must be explicitly set for security");this._targetOrigin=e.targetOrigin,this._channelId=e.channelId||"mcp-default";}async start(){if(this._started)throw new Error("Transport already started");this._messageHandler=e=>{if(e.origin===this._targetOrigin&&!(e.data?.channel!==this._channelId||e.data?.type!=="mcp")&&e.data?.direction==="server-to-client")try{let t=JSONRPCMessageSchema.parse(e.data.payload);this.onmessage?.(t);}catch(t){this.onerror?.(new Error(`Invalid message: ${t}`));}},window.addEventListener("message",this._messageHandler),this._started=true;}async send(e){if(!this._started)throw new Error("Transport not started");window.postMessage({channel:this._channelId,type:"mcp",direction:"client-to-server",payload:e},this._targetOrigin);}async close(){this._messageHandler&&window.removeEventListener("message",this._messageHandler),this._started=false,this.onclose?.();}};var l=class{_started=false;_allowedOrigins;_channelId;_messageHandler;_clientOrigin;onclose;onerror;onmessage;constructor(e){if(!e.allowedOrigins||e.allowedOrigins.length===0)throw new Error("At least one allowed origin must be specified");this._allowedOrigins=e.allowedOrigins,this._channelId=e.channelId||"mcp-default";}async start(){if(this._started)throw new Error("Transport already started");this._messageHandler=e=>{if(console.log({event:e}),!(!this._allowedOrigins.includes(e.origin)&&!this._allowedOrigins.includes("*"))&&!(e.data?.channel!==this._channelId||e.data?.type!=="mcp")&&e.data?.direction==="client-to-server"){this._clientOrigin=e.origin;try{let t=JSONRPCMessageSchema.parse(e.data.payload);this.onmessage?.(t);}catch(t){this.onerror?.(new Error(`Invalid message: ${t}`));}}},window.addEventListener("message",this._messageHandler),this._started=true;}async send(e){if(!this._started)throw new Error("Transport not started");if(!this._clientOrigin)throw new Error("No client connected");window.postMessage({channel:this._channelId,type:"mcp",direction:"server-to-client",payload:e},this._clientOrigin);}async close(){this._messageHandler&&window.removeEventListener("message",this._messageHandler),this._started=false,this.onclose?.();}};var m="mcp",p=class{_socket;_url;_WebSocket;onclose;onerror;onmessage;constructor(e){this._url=e;}async start(){if(this._socket)throw new Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");if(!this._WebSocket)try{let e=await import('ws');this._WebSocket=e.WebSocket;}catch{throw new Error("Failed to import 'ws' package. Please install it with: npm install ws")}return new Promise((e,t)=>{this._socket=new this._WebSocket(this._url.toString(),{perMessageDeflate:false,...{protocol:m}}),this._socket.on("error",r=>{t(r),this.onerror?.(r);}),this._socket.on("open",()=>{e();}),this._socket.on("close",()=>{this.onclose?.();}),this._socket.on("message",r=>{let s;try{let o=r instanceof Buffer?r.toString("utf-8"):r.toString();s=JSONRPCMessageSchema.parse(JSON.parse(o));}catch(o){this.onerror?.(o);return}this.onmessage?.(s);});})}async close(){this._socket&&this._WebSocket&&this._socket.readyState===this._WebSocket.OPEN&&this._socket.close();}async send(e){return new Promise((t,r)=>{if(!this._socket||!this._WebSocket){r(new Error("Not connected"));return}if(this._socket.readyState!==this._WebSocket.OPEN){r(new Error("WebSocket is not open"));return}this._socket.send(JSON.stringify(e),s=>{s?r(s):t();});})}};var g=class{constructor(e){this._options=e;}_socket;_server;_started=false;_connectionId;onclose;onerror;onmessage;async start(){if(this._started)throw new Error("WebSocketServerTransport already started! If using Server class, note that connect() calls start() automatically.");if(this._started=true,this._options.socket)this._socket=this._options.socket,this.setupSocketHandlers(this._socket);else throw new Error("WebSocketServerTransport requires either a socket ")}setupSocketHandlers(e){e.onmessage=t=>{let r;try{let s=typeof t.data=="string"?t.data:t.data.toString(),o=JSON.parse(s);if(o.connectionId){this._connectionId=o.connectionId;let{connectionId:u,...n}=o;r=JSONRPCMessageSchema.parse(n);}else r=JSONRPCMessageSchema.parse(o);}catch(s){this.onerror?.(s);return}this.onmessage?.(r);},e.onerror=t=>{let r=new Error(`WebSocket error: ${JSON.stringify(t)}`);this.onerror?.(r);},e.onclose=()=>{this._socket=void 0,this.onclose?.();};}async close(){if(this._socket&&(this._socket.close(),this._socket=void 0),this._server)return new Promise(e=>{this._server.close(()=>{this._server=void 0,e();});})}send(e){return new Promise((t,r)=>{if(!this._socket||this._socket.readyState!==WebSocket.OPEN){r(new Error("No active WebSocket connection"));return}try{let s=this._connectionId?{...e,connectionId:this._connectionId}:e;this._socket.send(JSON.stringify(s)),t();}catch(s){r(s);}})}get socket(){return this._socket}get isConnected(){return this._socket?.readyState===WebSocket.OPEN}};export{a as BrowserWebSocketClientTransport,c as ExtensionClientTransport,d as ExtensionServerTransport,h as TabClientTransport,l as TabServerTransport,p as WebSocketClientTransport,g as WebSocketServerTransport};//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/TabClientTransport.ts","../src/TabServerTransport.ts","../src/ExtensionClientTransport.ts","../src/ExtensionServerTransport.ts","../src/WebsocketClientTransport.ts","../src/WebsocketServerTransport.ts","../src/BrowserWebSocketClientTransport.ts"],"names":["TabClientTransport","options","event","message","JSONRPCMessageSchema","error","TabServerTransport","ExtensionClientTransport","resolve","reject","mcpMessage","_options","ExtensionServerTransport","port","SUBPROTOCOL","WebSocketClientTransport","url","ws","data","dataStr","WebSocketServerTransport","socket","parsedData","connectionId","actualMessage","messageToSend","BrowserWebSocketClientTransport","delay","ms","_event"],"mappings":"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","file":"index.js","sourcesContent":["import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\nexport interface TabClientTransportOptions {\n targetOrigin: string; // Required for security\n channelId?: string; // Optional channel name\n}\n\nexport class TabClientTransport implements Transport {\n private _started = false;\n private _targetOrigin: string;\n private _channelId: string;\n private _messageHandler?: (event: MessageEvent) => void;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(options: TabClientTransportOptions) {\n if (!options.targetOrigin) {\n throw new Error('targetOrigin must be explicitly set for security');\n }\n this._targetOrigin = options.targetOrigin;\n this._channelId = options.channelId || 'mcp-default';\n }\n\n async start(): Promise<void> {\n if (this._started) {\n throw new Error('Transport already started');\n }\n\n this._messageHandler = (event: MessageEvent) => {\n // Security: validate origin\n if (event.origin !== this._targetOrigin) {\n return;\n }\n\n // Validate message structure\n if (event.data?.channel !== this._channelId || event.data?.type !== 'mcp') {\n return;\n }\n\n // Only process server-to-client messages to avoid processing own messages\n if (event.data?.direction !== 'server-to-client') {\n return;\n }\n\n try {\n const message = JSONRPCMessageSchema.parse(event.data.payload);\n this.onmessage?.(message);\n } catch (error) {\n this.onerror?.(new Error(`Invalid message: ${error}`));\n }\n };\n\n window.addEventListener('message', this._messageHandler);\n this._started = true;\n }\n\n async send(message: JSONRPCMessage): Promise<void> {\n if (!this._started) {\n throw new Error('Transport not started');\n }\n\n window.postMessage(\n {\n channel: this._channelId,\n type: 'mcp',\n direction: 'client-to-server', // Mark as client-to-server message\n payload: message,\n },\n this._targetOrigin\n );\n }\n\n async close(): Promise<void> {\n if (this._messageHandler) {\n window.removeEventListener('message', this._messageHandler);\n }\n this._started = false;\n this.onclose?.();\n }\n}\n","import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\nexport interface TabServerTransportOptions {\n allowedOrigins: string[]; // Required for security\n channelId?: string; // Optional channel name\n}\n\nexport class TabServerTransport implements Transport {\n private _started = false;\n private _allowedOrigins: string[] | '*';\n private _channelId: string;\n private _messageHandler?: (event: MessageEvent) => void;\n private _clientOrigin?: string;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(options: TabServerTransportOptions) {\n if (!options.allowedOrigins || options.allowedOrigins.length === 0) {\n throw new Error('At least one allowed origin must be specified');\n }\n this._allowedOrigins = options.allowedOrigins;\n this._channelId = options.channelId || 'mcp-default';\n }\n\n async start(): Promise<void> {\n if (this._started) {\n throw new Error('Transport already started');\n }\n\n this._messageHandler = (event: MessageEvent) => {\n console.log({ event });\n // Security: validate origin\n if (!this._allowedOrigins.includes(event.origin) && !this._allowedOrigins.includes('*')) {\n return;\n }\n\n // Validate message structure\n if (event.data?.channel !== this._channelId || event.data?.type !== 'mcp') {\n return;\n }\n\n // Only process client-to-server messages to avoid processing own messages\n if (event.data?.direction !== 'client-to-server') {\n return;\n }\n\n // Store client origin for responses\n this._clientOrigin = event.origin;\n\n try {\n const message = JSONRPCMessageSchema.parse(event.data.payload);\n this.onmessage?.(message);\n } catch (error) {\n this.onerror?.(new Error(`Invalid message: ${error}`));\n }\n };\n\n window.addEventListener('message', this._messageHandler);\n this._started = true;\n }\n\n async send(message: JSONRPCMessage): Promise<void> {\n if (!this._started) {\n throw new Error('Transport not started');\n }\n\n if (!this._clientOrigin) {\n throw new Error('No client connected');\n }\n\n window.postMessage(\n {\n channel: this._channelId,\n type: 'mcp',\n direction: 'server-to-client', // Mark as server-to-client message\n payload: message,\n },\n this._clientOrigin\n );\n }\n\n async close(): Promise<void> {\n if (this._messageHandler) {\n window.removeEventListener('message', this._messageHandler);\n }\n this._started = false;\n this.onclose?.();\n }\n}\n","import { Transport, TransportSendOptions } from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\n/**\n * Configuration options for ExtensionClientTransport\n */\nexport interface ExtensionClientTransportOptions {\n /**\n * The extension ID to connect to (optional for same-extension connections)\n */\n extensionId?: string;\n\n /**\n * Port name for the connection\n * Default: 'mcp'\n */\n portName?: string;\n}\n\n/**\n * Client transport for Chrome extensions using Port-based messaging.\n * This transport can be used in content scripts, popup scripts, or sidepanel scripts\n * to connect to a server running in the background service worker.\n */\nexport class ExtensionClientTransport implements Transport {\n private _port?: chrome.runtime.Port;\n private _extensionId?: string;\n private _portName: string;\n private _messageHandler?: (message: any) => void;\n private _disconnectHandler?: () => void;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(options: ExtensionClientTransportOptions = {}) {\n this._extensionId = options.extensionId;\n this._portName = options.portName || 'mcp';\n }\n\n /**\n * Starts the transport by connecting to the extension port\n */\n async start(): Promise<void> {\n if (this._port) {\n console.warn(\n 'ExtensionClientTransport already started! If using Client class, note that connect() calls start() automatically.'\n );\n // throw new Error(\n // 'ExtensionClientTransport already started! If using Client class, note that connect() calls start() automatically.'\n // );\n return;\n }\n\n return new Promise((resolve, reject) => {\n if (!chrome?.runtime?.connect) {\n reject(\n new Error(\n 'Chrome runtime API not available. This transport must be used in a Chrome extension context.'\n )\n );\n return;\n }\n\n try {\n // Connect to the extension\n if (this._extensionId) {\n this._port = chrome.runtime.connect(this._extensionId, { name: this._portName });\n } else {\n this._port = chrome.runtime.connect({ name: this._portName });\n }\n\n // Set up message handler\n this._messageHandler = (message: any) => {\n try {\n const mcpMessage = JSONRPCMessageSchema.parse(message);\n this.onmessage?.(mcpMessage);\n } catch (error) {\n this.onerror?.(new Error(`Failed to parse message: ${error}`));\n }\n };\n\n // Set up disconnect handler\n this._disconnectHandler = () => {\n this._cleanup();\n this.onclose?.();\n };\n\n this._port.onMessage.addListener(this._messageHandler);\n this._port.onDisconnect.addListener(this._disconnectHandler);\n\n // Check for immediate connection errors\n const error = chrome.runtime.lastError;\n if (error) {\n this._cleanup();\n reject(new Error(`Connection failed: ${error.message}`));\n return;\n }\n\n resolve();\n } catch (error) {\n reject(error);\n }\n });\n }\n\n /**\n * Sends a message to the server\n */\n async send(message: JSONRPCMessage, _options?: TransportSendOptions): Promise<void> {\n if (!this._port) {\n throw new Error('Not connected');\n }\n\n try {\n this._port.postMessage(message);\n } catch (error) {\n throw new Error(`Failed to send message: ${error}`);\n }\n }\n\n /**\n * Closes the transport\n */\n async close(): Promise<void> {\n if (this._port) {\n try {\n this._port.disconnect();\n } catch (error) {\n // Port might already be disconnected\n }\n }\n\n this._cleanup();\n this.onclose?.();\n }\n\n /**\n * Cleans up event listeners and references\n */\n private _cleanup(): void {\n if (this._port) {\n if (this._messageHandler) {\n this._port.onMessage.removeListener(this._messageHandler);\n }\n if (this._disconnectHandler) {\n this._port.onDisconnect.removeListener(this._disconnectHandler);\n }\n }\n this._port = undefined;\n }\n}\n","import { Transport, TransportSendOptions } from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\n/**\n * Server transport for Chrome extensions using Port-based messaging.\n * This transport handles a single client connection through Chrome's port messaging API.\n * It should be used in the extension's background service worker.\n */\nexport class ExtensionServerTransport implements Transport {\n private _port: chrome.runtime.Port;\n private _started = false;\n private _messageHandler?: (message: any, port: chrome.runtime.Port) => void;\n private _disconnectHandler?: (port: chrome.runtime.Port) => void;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(port: chrome.runtime.Port) {\n this._port = port;\n }\n\n /**\n * Starts the transport and begins handling messages\n */\n async start(): Promise<void> {\n if (this._started) {\n throw new Error(\n 'ExtensionServerTransport already started! If using Server class, note that connect() calls start() automatically.'\n );\n }\n\n if (!this._port) {\n throw new Error('Port not available');\n }\n\n this._started = true;\n\n // Set up message handler\n this._messageHandler = (message: any) => {\n try {\n const mcpMessage = JSONRPCMessageSchema.parse(message);\n this.onmessage?.(mcpMessage);\n } catch (error) {\n this.onerror?.(new Error(`Failed to parse message: ${error}`));\n }\n };\n\n // Set up disconnect handler\n this._disconnectHandler = () => {\n this._cleanup();\n this.onclose?.();\n };\n\n this._port.onMessage.addListener(this._messageHandler);\n this._port.onDisconnect.addListener(this._disconnectHandler);\n }\n\n /**\n * Sends a message to the client\n */\n async send(message: JSONRPCMessage, _options?: TransportSendOptions): Promise<void> {\n if (!this._started) {\n throw new Error('Transport not started');\n }\n\n if (!this._port) {\n throw new Error('Not connected to client');\n }\n\n try {\n this._port.postMessage(message);\n } catch (error) {\n throw new Error(`Failed to send message: ${error}`);\n }\n }\n\n /**\n * Closes the transport\n */\n async close(): Promise<void> {\n this._started = false;\n\n if (this._port) {\n try {\n this._port.disconnect();\n } catch (error) {\n // Port might already be disconnected\n }\n }\n\n this._cleanup();\n this.onclose?.();\n }\n\n /**\n * Cleans up event listeners and references\n */\n private _cleanup(): void {\n if (this._port) {\n if (this._messageHandler) {\n this._port.onMessage.removeListener(this._messageHandler);\n }\n if (this._disconnectHandler) {\n this._port.onDisconnect.removeListener(this._disconnectHandler);\n }\n }\n }\n}\n","import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\nconst SUBPROTOCOL = 'mcp';\n\n/**\n * Client transport for WebSocket: this will connect to a server over the WebSocket protocol.\n * This transport is Node.js specific and requires the 'ws' package to be installed.\n */\nexport class WebSocketClientTransport implements Transport {\n private _socket?: any; // WebSocket type from 'ws' package\n private _url: URL;\n private _WebSocket?: typeof import('ws').WebSocket;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(url: URL) {\n this._url = url;\n }\n\n async start(): Promise<void> {\n if (this._socket) {\n throw new Error(\n 'WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.'\n );\n }\n\n // Dynamically import the WebSocket class from 'ws' package\n if (!this._WebSocket) {\n try {\n const ws = await import('ws');\n this._WebSocket = ws.WebSocket;\n } catch (error) {\n throw new Error(\"Failed to import 'ws' package. Please install it with: npm install ws\");\n }\n }\n\n return new Promise((resolve, reject) => {\n // Create WebSocket instance with Node.js specific options\n this._socket = new this._WebSocket!(this._url.toString(), {\n perMessageDeflate: false,\n // Add the subprotocol in the options\n ...(SUBPROTOCOL ? { protocol: SUBPROTOCOL } : {}),\n });\n\n // Node.js WebSocket error event handler\n this._socket.on('error', (error: Error) => {\n reject(error);\n this.onerror?.(error);\n });\n\n // Node.js WebSocket open event handler\n this._socket.on('open', () => {\n resolve();\n });\n\n // Node.js WebSocket close event handler\n this._socket.on('close', () => {\n this.onclose?.();\n });\n\n // Node.js WebSocket message event handler\n this._socket.on('message', (data: Buffer | ArrayBuffer | Buffer[]) => {\n let message: JSONRPCMessage;\n try {\n // Convert Buffer to string before parsing\n const dataStr = data instanceof Buffer ? data.toString('utf-8') : data.toString();\n message = JSONRPCMessageSchema.parse(JSON.parse(dataStr));\n } catch (error) {\n this.onerror?.(error as Error);\n return;\n }\n this.onmessage?.(message);\n });\n });\n }\n\n async close(): Promise<void> {\n if (this._socket && this._WebSocket) {\n // Check the readyState before closing\n if (this._socket.readyState === this._WebSocket.OPEN) {\n this._socket.close();\n }\n }\n }\n\n async send(message: JSONRPCMessage): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this._socket || !this._WebSocket) {\n reject(new Error('Not connected'));\n return;\n }\n\n // Check if the socket is open before sending\n if (this._socket.readyState !== this._WebSocket.OPEN) {\n reject(new Error('WebSocket is not open'));\n return;\n }\n\n // In Node.js, send accepts a callback for error handling\n this._socket.send(JSON.stringify(message), (error?: Error) => {\n if (error) {\n reject(error);\n } else {\n resolve();\n }\n });\n });\n }\n}\n","import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\n/**\n * Server transport for WebSocket: this will accept connections from MCP clients over WebSocket protocol.\n * Designed to work in browser extension environments.\n */\nexport class WebSocketServerTransport implements Transport {\n private _socket?: WebSocket;\n private _server?: any; // For environments that support WebSocketServer\n private _started = false;\n private _connectionId?: string;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(\n private _options: {\n /**\n * For browser extensions: provide an existing WebSocket connection\n */\n socket?: WebSocket;\n /**\n * For Node.js: provide port to create WebSocketServer\n */\n port?: number;\n }\n ) {}\n\n /**\n * Starts the transport. In browser extension context, this validates the socket.\n */\n async start(): Promise<void> {\n if (this._started) {\n throw new Error(\n 'WebSocketServerTransport already started! If using Server class, note that connect() calls start() automatically.'\n );\n }\n this._started = true;\n\n if (this._options.socket) {\n this._socket = this._options.socket;\n this.setupSocketHandlers(this._socket);\n } else {\n throw new Error('WebSocketServerTransport requires either a socket ');\n }\n }\n\n private setupSocketHandlers(socket: WebSocket): void {\n socket.onmessage = (event: MessageEvent) => {\n let message: JSONRPCMessage;\n try {\n const data = typeof event.data === 'string' ? event.data : event.data.toString();\n const parsedData = JSON.parse(data);\n\n // Handle bridge protocol - extract connectionId if present\n if (parsedData.connectionId) {\n this._connectionId = parsedData.connectionId;\n const { connectionId, ...actualMessage } = parsedData;\n message = JSONRPCMessageSchema.parse(actualMessage);\n } else {\n message = JSONRPCMessageSchema.parse(parsedData);\n }\n } catch (error) {\n this.onerror?.(error as Error);\n return;\n }\n this.onmessage?.(message);\n };\n\n socket.onerror = (event: Event) => {\n const error = new Error(`WebSocket error: ${JSON.stringify(event)}`);\n this.onerror?.(error);\n };\n\n socket.onclose = () => {\n this._socket = undefined;\n this.onclose?.();\n };\n }\n\n async close(): Promise<void> {\n if (this._socket) {\n this._socket.close();\n this._socket = undefined;\n }\n\n if (this._server) {\n return new Promise((resolve) => {\n this._server.close(() => {\n this._server = undefined;\n resolve();\n });\n });\n }\n }\n\n send(message: JSONRPCMessage): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this._socket || this._socket.readyState !== WebSocket.OPEN) {\n reject(new Error('No active WebSocket connection'));\n return;\n }\n\n try {\n // If we have a connectionId from the bridge, include it in the response\n const messageToSend = this._connectionId\n ? { ...message, connectionId: this._connectionId }\n : message;\n\n this._socket.send(JSON.stringify(messageToSend));\n resolve();\n } catch (error) {\n reject(error);\n }\n });\n }\n\n /**\n * Get the current WebSocket connection (if any)\n */\n get socket(): WebSocket | undefined {\n return this._socket;\n }\n\n /**\n * Check if transport has an active connection\n */\n get isConnected(): boolean {\n return this._socket?.readyState === WebSocket.OPEN;\n }\n}\n","import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\nexport interface BrowserWebSocketClientTransportOptions {\n maxRetries?: number;\n initialRetryDelay?: number;\n maxRetryDelay?: number;\n connectionTimeout?: number;\n retryMultiplier?: number;\n}\n\n/**\n * Browser-compatible WebSocket client transport for connecting from browser extensions to a bridge server.\n * This transport uses the native browser WebSocket API and doesn't require any Node.js dependencies.\n */\nexport class BrowserWebSocketClientTransport implements Transport {\n private _socket?: WebSocket;\n private _url: string;\n private _connectionId?: string;\n private _options: Required<BrowserWebSocketClientTransportOptions>;\n private _retryCount = 0;\n private _isClosing = false;\n private _connectionTimeoutId?: number;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(url: string | URL, options?: BrowserWebSocketClientTransportOptions) {\n this._url = url.toString();\n this._options = {\n maxRetries: options?.maxRetries ?? 10,\n initialRetryDelay: options?.initialRetryDelay ?? 1000,\n maxRetryDelay: options?.maxRetryDelay ?? 30000,\n connectionTimeout: options?.connectionTimeout ?? 10000,\n retryMultiplier: options?.retryMultiplier ?? 1.5,\n };\n }\n\n async start(): Promise<void> {\n if (this._socket) {\n throw new Error(\n 'BrowserWebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.'\n );\n }\n\n this._isClosing = false;\n this._retryCount = 0;\n return this._connectWithRetry();\n }\n\n private async _connectWithRetry(): Promise<void> {\n while (this._retryCount <= this._options.maxRetries && !this._isClosing) {\n try {\n await this._attemptConnection();\n return; // Success!\n } catch (error) {\n this._retryCount++;\n\n if (this._isClosing) {\n throw new Error('Connection cancelled');\n }\n\n if (this._retryCount > this._options.maxRetries) {\n throw new Error(`Failed to connect after ${this._options.maxRetries} retries: ${error}`);\n }\n\n const delay = Math.min(\n this._options.initialRetryDelay *\n Math.pow(this._options.retryMultiplier, this._retryCount - 1),\n this._options.maxRetryDelay\n );\n\n console.log(\n `[WebSocket] Connection failed, retrying in ${delay}ms (attempt ${this._retryCount}/${this._options.maxRetries})`\n );\n await this._sleep(delay);\n }\n }\n }\n\n private _sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n private async _attemptConnection(): Promise<void> {\n return new Promise((resolve, reject) => {\n try {\n // Clear any existing timeout\n if (this._connectionTimeoutId) {\n clearTimeout(this._connectionTimeoutId);\n }\n\n // Create WebSocket with browser API\n this._socket = new WebSocket(this._url);\n\n // Set connection timeout\n this._connectionTimeoutId = setTimeout(() => {\n if (this._socket && this._socket.readyState === WebSocket.CONNECTING) {\n this._socket.close();\n reject(new Error(`Connection timeout after ${this._options.connectionTimeout}ms`));\n }\n }, this._options.connectionTimeout) as unknown as number;\n\n this._socket.onopen = () => {\n // Clear timeout on successful connection\n if (this._connectionTimeoutId) {\n clearTimeout(this._connectionTimeoutId);\n this._connectionTimeoutId = undefined;\n }\n this._retryCount = 0; // Reset retry count on successful connection\n resolve();\n };\n\n this._socket.onerror = (_event) => {\n const error = new Error(`WebSocket connection error`);\n reject(error);\n // Don't call this.onerror during connection attempts\n };\n\n this._socket.onclose = () => {\n this._socket = undefined;\n this._connectionId = undefined;\n\n // Only call onclose if we're not in the middle of retrying\n if (!this._isClosing && this._retryCount === 0) {\n this.onclose?.();\n }\n };\n\n this._socket.onmessage = (event: MessageEvent) => {\n let data: any;\n try {\n data = JSON.parse(event.data);\n\n // Handle bridge-specific messages\n if (data.connectionId && !this._connectionId) {\n // Store connectionId for future messages\n this._connectionId = data.connectionId;\n }\n\n // Extract the actual message\n if (data.connectionId) {\n const { connectionId, ...message } = data;\n data = message;\n }\n\n const message = JSONRPCMessageSchema.parse(data);\n this.onmessage?.(message);\n } catch (error) {\n this.onerror?.(error as Error);\n }\n };\n } catch (error) {\n reject(error);\n }\n });\n }\n\n async close(): Promise<void> {\n this._isClosing = true;\n\n // Clear any pending connection timeout\n if (this._connectionTimeoutId) {\n clearTimeout(this._connectionTimeoutId);\n this._connectionTimeoutId = undefined;\n }\n\n if (this._socket && this._socket.readyState === WebSocket.OPEN) {\n this._socket.close();\n }\n }\n\n async send(message: JSONRPCMessage): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this._socket || this._socket.readyState !== WebSocket.OPEN) {\n reject(new Error('WebSocket is not connected'));\n return;\n }\n\n try {\n // If we have a connectionId from the bridge, include it\n const messageToSend = this._connectionId\n ? { ...message, connectionId: this._connectionId }\n : message;\n\n this._socket.send(JSON.stringify(messageToSend));\n resolve();\n } catch (error) {\n reject(error);\n }\n });\n }\n\n /**\n * Check if transport is connected\n */\n get isConnected(): boolean {\n return this._socket?.readyState === WebSocket.OPEN;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/BrowserWebSocketClientTransport.ts","../src/ExtensionClientTransport.ts","../src/ExtensionServerTransport.ts","../src/TabClientTransport.ts","../src/TabServerTransport.ts","../src/WebsocketClientTransport.ts","../src/WebsocketServerTransport.ts"],"names":["BrowserWebSocketClientTransport","url","options","error","delay","ms","resolve","reject","_event","event","data","connectionId","message","JSONRPCMessageSchema","messageToSend","ExtensionClientTransport","mcpMessage","_options","ExtensionServerTransport","port","TabClientTransport","TabServerTransport","SUBPROTOCOL","WebSocketClientTransport","ws","dataStr","WebSocketServerTransport","socket","parsedData","actualMessage"],"mappings":"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","file":"index.js","sourcesContent":["import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { type JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\nexport interface BrowserWebSocketClientTransportOptions {\n maxRetries?: number;\n initialRetryDelay?: number;\n maxRetryDelay?: number;\n connectionTimeout?: number;\n retryMultiplier?: number;\n}\n\n/**\n * Browser-compatible WebSocket client transport for connecting from browser extensions to a bridge server.\n * This transport uses the native browser WebSocket API and doesn't require any Node.js dependencies.\n */\nexport class BrowserWebSocketClientTransport implements Transport {\n private _socket?: WebSocket;\n private _url: string;\n private _connectionId?: string;\n private _options: Required<BrowserWebSocketClientTransportOptions>;\n private _retryCount = 0;\n private _isClosing = false;\n private _connectionTimeoutId?: number;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(url: string | URL, options?: BrowserWebSocketClientTransportOptions) {\n this._url = url.toString();\n this._options = {\n maxRetries: options?.maxRetries ?? 10,\n initialRetryDelay: options?.initialRetryDelay ?? 1000,\n maxRetryDelay: options?.maxRetryDelay ?? 30000,\n connectionTimeout: options?.connectionTimeout ?? 10000,\n retryMultiplier: options?.retryMultiplier ?? 1.5,\n };\n }\n\n async start(): Promise<void> {\n if (this._socket) {\n throw new Error(\n 'BrowserWebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.'\n );\n }\n\n this._isClosing = false;\n this._retryCount = 0;\n return this._connectWithRetry();\n }\n\n private async _connectWithRetry(): Promise<void> {\n while (this._retryCount <= this._options.maxRetries && !this._isClosing) {\n try {\n await this._attemptConnection();\n return; // Success!\n } catch (error) {\n this._retryCount++;\n\n if (this._isClosing) {\n throw new Error('Connection cancelled');\n }\n\n if (this._retryCount > this._options.maxRetries) {\n throw new Error(`Failed to connect after ${this._options.maxRetries} retries: ${error}`);\n }\n\n const delay = Math.min(\n this._options.initialRetryDelay * this._options.retryMultiplier ** (this._retryCount - 1),\n this._options.maxRetryDelay\n );\n\n console.log(\n `[WebSocket] Connection failed, retrying in ${delay}ms (attempt ${this._retryCount}/${this._options.maxRetries})`\n );\n await this._sleep(delay);\n }\n }\n }\n\n private _sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n private async _attemptConnection(): Promise<void> {\n return new Promise((resolve, reject) => {\n try {\n // Clear any existing timeout\n if (this._connectionTimeoutId) {\n clearTimeout(this._connectionTimeoutId);\n }\n\n // Create WebSocket with browser API\n this._socket = new WebSocket(this._url);\n\n // Set connection timeout\n this._connectionTimeoutId = setTimeout(() => {\n if (this._socket && this._socket.readyState === WebSocket.CONNECTING) {\n this._socket.close();\n reject(new Error(`Connection timeout after ${this._options.connectionTimeout}ms`));\n }\n }, this._options.connectionTimeout) as unknown as number;\n\n this._socket.onopen = () => {\n // Clear timeout on successful connection\n if (this._connectionTimeoutId) {\n clearTimeout(this._connectionTimeoutId);\n this._connectionTimeoutId = undefined;\n }\n this._retryCount = 0; // Reset retry count on successful connection\n resolve();\n };\n\n this._socket.onerror = (_event) => {\n const error = new Error(`WebSocket connection error`);\n reject(error);\n // Don't call this.onerror during connection attempts\n };\n\n this._socket.onclose = () => {\n this._socket = undefined;\n this._connectionId = undefined;\n\n // Only call onclose if we're not in the middle of retrying\n if (!this._isClosing && this._retryCount === 0) {\n this.onclose?.();\n }\n };\n\n this._socket.onmessage = (event: MessageEvent) => {\n let data: any;\n try {\n data = JSON.parse(event.data);\n\n // Handle bridge-specific messages\n if (data.connectionId && !this._connectionId) {\n // Store connectionId for future messages\n this._connectionId = data.connectionId;\n }\n\n // Extract the actual message\n if (data.connectionId) {\n const { connectionId, ...message } = data;\n data = message;\n }\n\n const message = JSONRPCMessageSchema.parse(data);\n this.onmessage?.(message);\n } catch (error) {\n this.onerror?.(error as Error);\n }\n };\n } catch (error) {\n reject(error);\n }\n });\n }\n\n async close(): Promise<void> {\n this._isClosing = true;\n\n // Clear any pending connection timeout\n if (this._connectionTimeoutId) {\n clearTimeout(this._connectionTimeoutId);\n this._connectionTimeoutId = undefined;\n }\n\n if (this._socket && this._socket.readyState === WebSocket.OPEN) {\n this._socket.close();\n }\n }\n\n async send(message: JSONRPCMessage): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this._socket || this._socket.readyState !== WebSocket.OPEN) {\n reject(new Error('WebSocket is not connected'));\n return;\n }\n\n try {\n // If we have a connectionId from the bridge, include it\n const messageToSend = this._connectionId\n ? { ...message, connectionId: this._connectionId }\n : message;\n\n this._socket.send(JSON.stringify(messageToSend));\n resolve();\n } catch (error) {\n reject(error);\n }\n });\n }\n\n /**\n * Check if transport is connected\n */\n get isConnected(): boolean {\n return this._socket?.readyState === WebSocket.OPEN;\n }\n}\n","import type {\n Transport,\n TransportSendOptions,\n} from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { type JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\n/**\n * Configuration options for ExtensionClientTransport\n */\nexport interface ExtensionClientTransportOptions {\n /**\n * The extension ID to connect to (optional for same-extension connections)\n */\n extensionId?: string;\n\n /**\n * Port name for the connection\n * Default: 'mcp'\n */\n portName?: string;\n}\n\n/**\n * Client transport for Chrome extensions using Port-based messaging.\n * This transport can be used in content scripts, popup scripts, or sidepanel scripts\n * to connect to a server running in the background service worker.\n */\nexport class ExtensionClientTransport implements Transport {\n private _port?: chrome.runtime.Port;\n private _extensionId?: string;\n private _portName: string;\n private _messageHandler?: (message: any) => void;\n private _disconnectHandler?: () => void;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(options: ExtensionClientTransportOptions = {}) {\n this._extensionId = options.extensionId;\n this._portName = options.portName || 'mcp';\n }\n\n /**\n * Starts the transport by connecting to the extension port\n */\n async start(): Promise<void> {\n if (this._port) {\n console.warn(\n 'ExtensionClientTransport already started! If using Client class, note that connect() calls start() automatically.'\n );\n // throw new Error(\n // 'ExtensionClientTransport already started! If using Client class, note that connect() calls start() automatically.'\n // );\n return;\n }\n\n return new Promise((resolve, reject) => {\n if (!chrome?.runtime?.connect) {\n reject(\n new Error(\n 'Chrome runtime API not available. This transport must be used in a Chrome extension context.'\n )\n );\n return;\n }\n\n try {\n // Connect to the extension\n if (this._extensionId) {\n this._port = chrome.runtime.connect(this._extensionId, { name: this._portName });\n } else {\n this._port = chrome.runtime.connect({ name: this._portName });\n }\n\n // Set up message handler\n this._messageHandler = (message: any) => {\n try {\n const mcpMessage = JSONRPCMessageSchema.parse(message);\n this.onmessage?.(mcpMessage);\n } catch (error) {\n this.onerror?.(new Error(`Failed to parse message: ${error}`));\n }\n };\n\n // Set up disconnect handler\n this._disconnectHandler = () => {\n this._cleanup();\n this.onclose?.();\n };\n\n this._port.onMessage.addListener(this._messageHandler);\n this._port.onDisconnect.addListener(this._disconnectHandler);\n\n // Check for immediate connection errors\n const error = chrome.runtime.lastError;\n if (error) {\n this._cleanup();\n reject(new Error(`Connection failed: ${error.message}`));\n return;\n }\n\n resolve();\n } catch (error) {\n reject(error);\n }\n });\n }\n\n /**\n * Sends a message to the server\n */\n async send(message: JSONRPCMessage, _options?: TransportSendOptions): Promise<void> {\n if (!this._port) {\n throw new Error('Not connected');\n }\n\n try {\n this._port.postMessage(message);\n } catch (error) {\n throw new Error(`Failed to send message: ${error}`);\n }\n }\n\n /**\n * Closes the transport\n */\n async close(): Promise<void> {\n if (this._port) {\n try {\n this._port.disconnect();\n } catch (error) {\n // Port might already be disconnected\n }\n }\n\n this._cleanup();\n this.onclose?.();\n }\n\n /**\n * Cleans up event listeners and references\n */\n private _cleanup(): void {\n if (this._port) {\n if (this._messageHandler) {\n this._port.onMessage.removeListener(this._messageHandler);\n }\n if (this._disconnectHandler) {\n this._port.onDisconnect.removeListener(this._disconnectHandler);\n }\n }\n this._port = undefined;\n }\n}\n","import type {\n Transport,\n TransportSendOptions,\n} from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { type JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\n/**\n * Server transport for Chrome extensions using Port-based messaging.\n * This transport handles a single client connection through Chrome's port messaging API.\n * It should be used in the extension's background service worker.\n */\nexport class ExtensionServerTransport implements Transport {\n private _port: chrome.runtime.Port;\n private _started = false;\n private _messageHandler?: (message: any, port: chrome.runtime.Port) => void;\n private _disconnectHandler?: (port: chrome.runtime.Port) => void;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(port: chrome.runtime.Port) {\n this._port = port;\n }\n\n /**\n * Starts the transport and begins handling messages\n */\n async start(): Promise<void> {\n if (this._started) {\n throw new Error(\n 'ExtensionServerTransport already started! If using Server class, note that connect() calls start() automatically.'\n );\n }\n\n if (!this._port) {\n throw new Error('Port not available');\n }\n\n this._started = true;\n\n // Set up message handler\n this._messageHandler = (message: any) => {\n try {\n const mcpMessage = JSONRPCMessageSchema.parse(message);\n this.onmessage?.(mcpMessage);\n } catch (error) {\n this.onerror?.(new Error(`Failed to parse message: ${error}`));\n }\n };\n\n // Set up disconnect handler\n this._disconnectHandler = () => {\n this._cleanup();\n this.onclose?.();\n };\n\n this._port.onMessage.addListener(this._messageHandler);\n this._port.onDisconnect.addListener(this._disconnectHandler);\n }\n\n /**\n * Sends a message to the client\n */\n async send(message: JSONRPCMessage, _options?: TransportSendOptions): Promise<void> {\n if (!this._started) {\n throw new Error('Transport not started');\n }\n\n if (!this._port) {\n throw new Error('Not connected to client');\n }\n\n try {\n this._port.postMessage(message);\n } catch (error) {\n throw new Error(`Failed to send message: ${error}`);\n }\n }\n\n /**\n * Closes the transport\n */\n async close(): Promise<void> {\n this._started = false;\n\n if (this._port) {\n try {\n this._port.disconnect();\n } catch (error) {\n // Port might already be disconnected\n }\n }\n\n this._cleanup();\n this.onclose?.();\n }\n\n /**\n * Cleans up event listeners and references\n */\n private _cleanup(): void {\n if (this._port) {\n if (this._messageHandler) {\n this._port.onMessage.removeListener(this._messageHandler);\n }\n if (this._disconnectHandler) {\n this._port.onDisconnect.removeListener(this._disconnectHandler);\n }\n }\n }\n}\n","import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { type JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\nexport interface TabClientTransportOptions {\n targetOrigin: string; // Required for security\n channelId?: string; // Optional channel name\n}\n\nexport class TabClientTransport implements Transport {\n private _started = false;\n private _targetOrigin: string;\n private _channelId: string;\n private _messageHandler?: (event: MessageEvent) => void;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(options: TabClientTransportOptions) {\n if (!options.targetOrigin) {\n throw new Error('targetOrigin must be explicitly set for security');\n }\n this._targetOrigin = options.targetOrigin;\n this._channelId = options.channelId || 'mcp-default';\n }\n\n async start(): Promise<void> {\n if (this._started) {\n throw new Error('Transport already started');\n }\n\n this._messageHandler = (event: MessageEvent) => {\n // Security: validate origin\n if (event.origin !== this._targetOrigin) {\n return;\n }\n\n // Validate message structure\n if (event.data?.channel !== this._channelId || event.data?.type !== 'mcp') {\n return;\n }\n\n // Only process server-to-client messages to avoid processing own messages\n if (event.data?.direction !== 'server-to-client') {\n return;\n }\n\n try {\n const message = JSONRPCMessageSchema.parse(event.data.payload);\n this.onmessage?.(message);\n } catch (error) {\n this.onerror?.(new Error(`Invalid message: ${error}`));\n }\n };\n\n window.addEventListener('message', this._messageHandler);\n this._started = true;\n }\n\n async send(message: JSONRPCMessage): Promise<void> {\n if (!this._started) {\n throw new Error('Transport not started');\n }\n\n window.postMessage(\n {\n channel: this._channelId,\n type: 'mcp',\n direction: 'client-to-server', // Mark as client-to-server message\n payload: message,\n },\n this._targetOrigin\n );\n }\n\n async close(): Promise<void> {\n if (this._messageHandler) {\n window.removeEventListener('message', this._messageHandler);\n }\n this._started = false;\n this.onclose?.();\n }\n}\n","import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { type JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\nexport interface TabServerTransportOptions {\n allowedOrigins: string[]; // Required for security\n channelId?: string; // Optional channel name\n}\n\nexport class TabServerTransport implements Transport {\n private _started = false;\n private _allowedOrigins: string[] | '*';\n private _channelId: string;\n private _messageHandler?: (event: MessageEvent) => void;\n private _clientOrigin?: string;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(options: TabServerTransportOptions) {\n if (!options.allowedOrigins || options.allowedOrigins.length === 0) {\n throw new Error('At least one allowed origin must be specified');\n }\n this._allowedOrigins = options.allowedOrigins;\n this._channelId = options.channelId || 'mcp-default';\n }\n\n async start(): Promise<void> {\n if (this._started) {\n throw new Error('Transport already started');\n }\n\n this._messageHandler = (event: MessageEvent) => {\n console.log({ event });\n // Security: validate origin\n if (!this._allowedOrigins.includes(event.origin) && !this._allowedOrigins.includes('*')) {\n return;\n }\n\n // Validate message structure\n if (event.data?.channel !== this._channelId || event.data?.type !== 'mcp') {\n return;\n }\n\n // Only process client-to-server messages to avoid processing own messages\n if (event.data?.direction !== 'client-to-server') {\n return;\n }\n\n // Store client origin for responses\n this._clientOrigin = event.origin;\n\n try {\n const message = JSONRPCMessageSchema.parse(event.data.payload);\n this.onmessage?.(message);\n } catch (error) {\n this.onerror?.(new Error(`Invalid message: ${error}`));\n }\n };\n\n window.addEventListener('message', this._messageHandler);\n this._started = true;\n }\n\n async send(message: JSONRPCMessage): Promise<void> {\n if (!this._started) {\n throw new Error('Transport not started');\n }\n\n if (!this._clientOrigin) {\n throw new Error('No client connected');\n }\n\n window.postMessage(\n {\n channel: this._channelId,\n type: 'mcp',\n direction: 'server-to-client', // Mark as server-to-client message\n payload: message,\n },\n this._clientOrigin\n );\n }\n\n async close(): Promise<void> {\n if (this._messageHandler) {\n window.removeEventListener('message', this._messageHandler);\n }\n this._started = false;\n this.onclose?.();\n }\n}\n","import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { type JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\nconst SUBPROTOCOL = 'mcp';\n\n/**\n * Client transport for WebSocket: this will connect to a server over the WebSocket protocol.\n * This transport is Node.js specific and requires the 'ws' package to be installed.\n */\nexport class WebSocketClientTransport implements Transport {\n private _socket?: any; // WebSocket type from 'ws' package\n private _url: URL;\n private _WebSocket?: typeof import('ws').WebSocket;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(url: URL) {\n this._url = url;\n }\n\n async start(): Promise<void> {\n if (this._socket) {\n throw new Error(\n 'WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.'\n );\n }\n\n // Dynamically import the WebSocket class from 'ws' package\n if (!this._WebSocket) {\n try {\n const ws = await import('ws');\n this._WebSocket = ws.WebSocket;\n } catch (error) {\n throw new Error(\"Failed to import 'ws' package. Please install it with: npm install ws\");\n }\n }\n\n return new Promise((resolve, reject) => {\n // Create WebSocket instance with Node.js specific options\n this._socket = new this._WebSocket!(this._url.toString(), {\n perMessageDeflate: false,\n // Add the subprotocol in the options\n ...(SUBPROTOCOL ? { protocol: SUBPROTOCOL } : {}),\n });\n\n // Node.js WebSocket error event handler\n this._socket.on('error', (error: Error) => {\n reject(error);\n this.onerror?.(error);\n });\n\n // Node.js WebSocket open event handler\n this._socket.on('open', () => {\n resolve();\n });\n\n // Node.js WebSocket close event handler\n this._socket.on('close', () => {\n this.onclose?.();\n });\n\n // Node.js WebSocket message event handler\n this._socket.on('message', (data: Buffer | ArrayBuffer | Buffer[]) => {\n let message: JSONRPCMessage;\n try {\n // Convert Buffer to string before parsing\n const dataStr = data instanceof Buffer ? data.toString('utf-8') : data.toString();\n message = JSONRPCMessageSchema.parse(JSON.parse(dataStr));\n } catch (error) {\n this.onerror?.(error as Error);\n return;\n }\n this.onmessage?.(message);\n });\n });\n }\n\n async close(): Promise<void> {\n if (this._socket && this._WebSocket) {\n // Check the readyState before closing\n if (this._socket.readyState === this._WebSocket.OPEN) {\n this._socket.close();\n }\n }\n }\n\n async send(message: JSONRPCMessage): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this._socket || !this._WebSocket) {\n reject(new Error('Not connected'));\n return;\n }\n\n // Check if the socket is open before sending\n if (this._socket.readyState !== this._WebSocket.OPEN) {\n reject(new Error('WebSocket is not open'));\n return;\n }\n\n // In Node.js, send accepts a callback for error handling\n this._socket.send(JSON.stringify(message), (error?: Error) => {\n if (error) {\n reject(error);\n } else {\n resolve();\n }\n });\n });\n }\n}\n","import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';\nimport { type JSONRPCMessage, JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';\n\n/**\n * Server transport for WebSocket: this will accept connections from MCP clients over WebSocket protocol.\n * Designed to work in browser extension environments.\n */\nexport class WebSocketServerTransport implements Transport {\n private _socket?: WebSocket;\n private _server?: any; // For environments that support WebSocketServer\n private _started = false;\n private _connectionId?: string;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(\n private _options: {\n /**\n * For browser extensions: provide an existing WebSocket connection\n */\n socket?: WebSocket;\n /**\n * For Node.js: provide port to create WebSocketServer\n */\n port?: number;\n }\n ) {}\n\n /**\n * Starts the transport. In browser extension context, this validates the socket.\n */\n async start(): Promise<void> {\n if (this._started) {\n throw new Error(\n 'WebSocketServerTransport already started! If using Server class, note that connect() calls start() automatically.'\n );\n }\n this._started = true;\n\n if (this._options.socket) {\n this._socket = this._options.socket;\n this.setupSocketHandlers(this._socket);\n } else {\n throw new Error('WebSocketServerTransport requires either a socket ');\n }\n }\n\n private setupSocketHandlers(socket: WebSocket): void {\n socket.onmessage = (event: MessageEvent) => {\n let message: JSONRPCMessage;\n try {\n const data = typeof event.data === 'string' ? event.data : event.data.toString();\n const parsedData = JSON.parse(data);\n\n // Handle bridge protocol - extract connectionId if present\n if (parsedData.connectionId) {\n this._connectionId = parsedData.connectionId;\n const { connectionId, ...actualMessage } = parsedData;\n message = JSONRPCMessageSchema.parse(actualMessage);\n } else {\n message = JSONRPCMessageSchema.parse(parsedData);\n }\n } catch (error) {\n this.onerror?.(error as Error);\n return;\n }\n this.onmessage?.(message);\n };\n\n socket.onerror = (event: Event) => {\n const error = new Error(`WebSocket error: ${JSON.stringify(event)}`);\n this.onerror?.(error);\n };\n\n socket.onclose = () => {\n this._socket = undefined;\n this.onclose?.();\n };\n }\n\n async close(): Promise<void> {\n if (this._socket) {\n this._socket.close();\n this._socket = undefined;\n }\n\n if (this._server) {\n return new Promise((resolve) => {\n this._server.close(() => {\n this._server = undefined;\n resolve();\n });\n });\n }\n }\n\n send(message: JSONRPCMessage): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this._socket || this._socket.readyState !== WebSocket.OPEN) {\n reject(new Error('No active WebSocket connection'));\n return;\n }\n\n try {\n // If we have a connectionId from the bridge, include it in the response\n const messageToSend = this._connectionId\n ? { ...message, connectionId: this._connectionId }\n : message;\n\n this._socket.send(JSON.stringify(messageToSend));\n resolve();\n } catch (error) {\n reject(error);\n }\n });\n }\n\n /**\n * Get the current WebSocket connection (if any)\n */\n get socket(): WebSocket | undefined {\n return this._socket;\n }\n\n /**\n * Check if transport has an active connection\n */\n get isConnected(): boolean {\n return this._socket?.readyState === WebSocket.OPEN;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@mcp-b/transports",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Transports for the in browser transport protocols",
5
5
  "license": "MIT",
6
6
  "author": "Alex Nahas",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/miguelspizza/mcp-b.git",
10
- "directory": "packages/mcp-b"
9
+ "url": "git+https://github.com/MiguelsPizza/WebMCP.git",
10
+ "directory": "packages/transports"
11
11
  },
12
- "homepage": "https://github.com/miguelspizza/mcp-b#readme",
12
+ "homepage": "https://github.com/MiguelsPizza/WebMCP#readme",
13
13
  "bugs": {
14
- "url": "https://github.com/miguelspizza/mcp-b/issues"
14
+ "url": "https://github.com/MiguelsPizza/WebMCP/issues"
15
15
  },
16
16
  "keywords": [
17
17
  "mcp",
@@ -33,14 +33,28 @@
33
33
  "files": [
34
34
  "dist"
35
35
  ],
36
+ "scripts": {
37
+ "build": "tsup",
38
+ "typecheck": "tsc --noEmit",
39
+ "clean": "rm -rf dist .turbo",
40
+ "prepublishOnly": "pnpm run build",
41
+ "publish:npm": "npm publish --access public --no-git-checks",
42
+ "publish:dry": "pnpm publish --access public --no-git-checks --dry-run",
43
+ "version:patch": "pnpm version patch --no-git-tag-version",
44
+ "version:minor": "pnpm version minor --no-git-tag-version",
45
+ "version:major": "pnpm version major --no-git-tag-version",
46
+ "lint": "biome lint --write .",
47
+ "format": "biome format --write .",
48
+ "check": "biome check --write ."
49
+ },
36
50
  "dependencies": {
37
- "@modelcontextprotocol/sdk": "^1.13.2",
51
+ "@modelcontextprotocol/sdk": "catalog:",
38
52
  "@types/cheerio": "^1.0.0",
39
- "cheerio": "^1.1.0",
40
- "zod": "^3.24.1"
53
+ "cheerio": "catalog:",
54
+ "zod": "catalog:"
41
55
  },
42
56
  "peerDependencies": {
43
- "@anthropic-ai/sdk": "^0.54.0",
57
+ "@anthropic-ai/sdk": "catalog:",
44
58
  "ws": "^8.0.0"
45
59
  },
46
60
  "peerDependenciesMeta": {
@@ -52,24 +66,14 @@
52
66
  }
53
67
  },
54
68
  "devDependencies": {
55
- "@types/chrome": "^0.0.326",
56
- "@types/node": "^22.10.3",
69
+ "@types/chrome": "catalog:",
70
+ "@types/node": "catalog:",
57
71
  "@types/ws": "^8.5.0",
58
- "tsup": "^8.3.5",
59
- "typescript": "^5.8.3"
72
+ "tsup": "catalog:",
73
+ "typescript": "catalog:"
60
74
  },
61
75
  "publishConfig": {
62
76
  "access": "public",
63
77
  "registry": "https://registry.npmjs.org/"
64
- },
65
- "scripts": {
66
- "build": "tsup",
67
- "typecheck": "tsc --noEmit",
68
- "clean": "rm -rf dist .turbo",
69
- "publish:npm": "pnpm publish --access public --no-git-checks",
70
- "publish:dry": "pnpm publish --access public --no-git-checks --dry-run",
71
- "version:patch": "pnpm version patch --no-git-tag-version",
72
- "version:minor": "pnpm version minor --no-git-tag-version",
73
- "version:major": "pnpm version major --no-git-tag-version"
74
78
  }
75
- }
79
+ }