@mcpolyglot/connector-openapi 0.1.0
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/LICENSE +21 -0
- package/README.md +38 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/__tests__/connector.test.d.ts +2 -0
- package/dist/__tests__/connector.test.d.ts.map +1 -0
- package/dist/__tests__/connector.test.js +112 -0
- package/dist/__tests__/connector.test.js.map +1 -0
- package/dist/connector.d.ts +56 -0
- package/dist/connector.d.ts.map +1 -0
- package/dist/connector.js +286 -0
- package/dist/connector.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/package.json +43 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 mcpolyglot contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# @mcpolyglot/connector-openapi
|
|
2
|
+
|
|
3
|
+
OpenAPI connector for [mcpolyglot](https://github.com/ishay60/mcpolyglot). Lets an agent call a REST API described by an OpenAPI 3 spec, and nothing outside it.
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
{
|
|
7
|
+
id: 'billing',
|
|
8
|
+
kind: 'openapi',
|
|
9
|
+
spec: './openapi.yaml', // file or http(s) URL, JSON or YAML
|
|
10
|
+
baseUrl: 'https://api.example.com/v1',
|
|
11
|
+
auth: { type: 'bearer', token: '${env:BILLING_TOKEN}' },
|
|
12
|
+
allowMethods: ['GET'], // default: GET, HEAD, OPTIONS
|
|
13
|
+
}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Tools exposed
|
|
17
|
+
|
|
18
|
+
- `<id>.list_operations` — operationId, method, path and summary of every callable operation.
|
|
19
|
+
- `<id>.describe_operation` — one operation's parameters and request body schema.
|
|
20
|
+
- `<id>.call` — call an operation by `operationId` with `path`, `query` and a JSON `body`.
|
|
21
|
+
|
|
22
|
+
All three need the `http:call` scope.
|
|
23
|
+
|
|
24
|
+
## What an agent cannot do
|
|
25
|
+
|
|
26
|
+
1. Call an operation that isn't in the spec, or whose method isn't in `allowMethods`. Those operations aren't listed either.
|
|
27
|
+
2. Reach another host. Every request goes to `baseUrl`; the spec's `servers` are ignored, path parameters are encoded (`..` is rejected), and redirects are refused.
|
|
28
|
+
3. Send parameters the spec doesn't declare, or any header. Credentials come from config only.
|
|
29
|
+
4. Pull an unbounded response: the body is read up to the source's `maxBytes`, then cut.
|
|
30
|
+
|
|
31
|
+
## Limits
|
|
32
|
+
|
|
33
|
+
- Header and cookie parameters are not supported.
|
|
34
|
+
- Request bodies are JSON only.
|
|
35
|
+
- `$ref`s are resolved one level deep; nested refs in a body schema are returned as written.
|
|
36
|
+
- `health` reports that the spec loaded; it does not ping the API.
|
|
37
|
+
|
|
38
|
+
MIT licensed.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/line-counter.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/errors.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/applyReviver.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/log.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/toJS.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Scalar.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringify.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Collection.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLSeq.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/types.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/map.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/seq.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/string.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/foldFlowLines.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyNumber.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyString.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/util.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLMap.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/identity.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/Schema.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/createNode.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Pair.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/tags.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/options.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Node.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst-scalar.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst-stringify.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst-visit.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Alias.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/Document.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/directives.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/composer.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/lexer.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/parser.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/public-api.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/visit.d.ts","../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/index.d.ts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/standard-schema.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/registries.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/to-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/util.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/versions.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/schemas.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/checks.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/errors.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/parse.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/regexes.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ar.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/az.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/be.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/bg.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ca.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/cs.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/da.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/de.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/el.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/en.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/eo.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/es.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fa.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fi.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fr.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fr-CA.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/he.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hr.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hu.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hy.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/id.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/is.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/it.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ja.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ka.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/kh.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/km.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ko.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/lt.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/mk.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ms.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/nl.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/no.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ota.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ps.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/pl.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/pt.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ro.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ru.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/sl.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/sv.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ta.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/th.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/tr.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ua.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/uk.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ur.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/uz.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/vi.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/zh-CN.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/zh-TW.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/yo.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/index.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/doc.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/api.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-processors.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-generator.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/index.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/errors.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/parse.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/checks.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/compat.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/from-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/iso.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/coerce.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/index.d.cts","../../core/dist/tool.d.ts","../../core/dist/connector.d.ts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/helpers/typeAliases.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/helpers/util.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/ZodError.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/locales/en.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/errors.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/helpers/parseUtil.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/helpers/enumUtil.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/helpers/errorUtil.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/helpers/partialUtil.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/standard-schema.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/types.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/external.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/index.d.cts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.d.ts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/index.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/index.d.cts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/types.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/types.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/types.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/responseMessage.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.d.ts","../../../node_modules/.pnpm/json-schema-typed@8.0.2/node_modules/json-schema-typed/draft_2020_12.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/types.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.d.ts","../../core/dist/transport.d.ts","../../core/dist/server.d.ts","../../core/dist/errors.d.ts","../../core/dist/index.d.ts","../src/connector.ts","../src/index.ts","../../../node_modules/.pnpm/@vitest+pretty-format@2.1.9/node_modules/@vitest/pretty-format/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/tinyrainbow@1.2.0/node_modules/tinyrainbow/dist/index-c1cfc5e9.d.ts","../../../node_modules/.pnpm/tinyrainbow@1.2.0/node_modules/tinyrainbow/dist/node.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/tasks-3ZnPj1LR.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/types-Bxe-2Udy.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/error.d.ts","../../../node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@25.6.0/node_modules/vitest/dist/chunks/environment.LoooBwUu.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/utility.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/client-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path/posix.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path/win32.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/quic.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/test/reporters.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/util/types.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/@types+estree@1.0.8/node_modules/@types/estree/index.d.ts","../../../node_modules/.pnpm/rollup@4.60.2/node_modules/rollup/dist/rollup.d.ts","../../../node_modules/.pnpm/rollup@4.60.2/node_modules/rollup/dist/parseAst.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@25.6.0/node_modules/vite/types/hmrPayload.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@25.6.0/node_modules/vite/types/customEvent.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@25.6.0/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@25.6.0/node_modules/vite/dist/node/types.d-aGj9QkWt.d.ts","../../../node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.d.ts","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/source-map.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/previous-map.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/input.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/css-syntax-error.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/declaration.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/root.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/warning.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/lazy-result.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/no-work-result.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/processor.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/result.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/document.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/rule.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/node.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/comment.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/container.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/at-rule.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/list.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/postcss.d.ts","../../../node_modules/.pnpm/postcss@8.5.10/node_modules/postcss/lib/postcss.d.mts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@25.6.0/node_modules/vite/dist/node/runtime.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@25.6.0/node_modules/vite/types/importGlob.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@25.6.0/node_modules/vite/types/metadata.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@25.6.0/node_modules/vite/dist/node/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/environment-Ddx0EDtY.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/rawSnapshot-CPNkto81.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/environment.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@25.6.0/node_modules/vitest/dist/chunks/config.Cy0C388Z.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@25.6.0/node_modules/vite-node/dist/trace-mapping.d-DLVdEqOp.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@25.6.0/node_modules/vite-node/dist/index-z0R8hVRu.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@25.6.0/node_modules/vite-node/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/source-map.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@25.6.0/node_modules/vite-node/dist/client.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@25.6.0/node_modules/vite-node/dist/server.d.ts","../../../node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@25.6.0/node_modules/vitest/dist/chunks/benchmark.geERunq4.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/manager.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@25.6.0/node_modules/vitest/dist/chunks/reporters.nr4dxCkA.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@25.6.0/node_modules/vitest/dist/chunks/worker.tN5KGIih.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@25.6.0/node_modules/vitest/dist/chunks/worker.B9FxPCaC.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@25.6.0/node_modules/vitest/dist/chunks/vite.CzKp4x9w.d.ts","../../../node_modules/.pnpm/@vitest+expect@2.1.9/node_modules/@vitest/expect/dist/chai.d.cts","../../../node_modules/.pnpm/@vitest+expect@2.1.9/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+expect@2.1.9/node_modules/@vitest/expect/index.d.ts","../../../node_modules/.pnpm/@vitest+spy@2.1.9/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+mocker@2.1.9_vite@5.4.21_@types+node@25.6.0_/node_modules/@vitest/mocker/dist/types-DZOqTgiN.d.ts","../../../node_modules/.pnpm/@vitest+mocker@2.1.9_vite@5.4.21_@types+node@25.6.0_/node_modules/@vitest/mocker/dist/index.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@25.6.0/node_modules/vitest/dist/chunks/mocker.cRtM890J.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@25.6.0/node_modules/vitest/dist/chunks/suite.B2jumIFP.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@25.6.0/node_modules/vitest/dist/index.d.ts","../src/__tests__/connector.test.ts"],"fileIdsList":[[196,200,202,205,231,294,302,306,309,311,312,313,326],[196,200,204,205,209,231,294,302,306,309,311,312,313,326],[200,231,294,302,306,309,311,312,313,326],[231,294,302,306,309,311,312,313,326],[196,200,205,207,208,231,294,302,306,309,311,312,313,326],[170,195,231,294,302,306,309,311,312,313,326],[196,199,200,201,203,204,231,294,302,306,309,311,312,313,326],[198,199,231,294,302,306,309,311,312,313,326],[206,231,294,302,306,309,311,312,313,326],[231,291,292,294,302,306,309,311,312,313,326],[231,293,294,302,306,309,311,312,313,326],[294,302,306,309,311,312,313,326],[231,294,302,306,309,311,312,313,326,334],[231,294,295,300,302,305,306,309,311,312,313,315,326,331,343],[231,294,295,296,302,305,306,309,311,312,313,326],[231,294,297,302,306,309,311,312,313,326,344],[231,294,298,299,302,306,309,311,312,313,317,326],[231,294,299,302,306,309,311,312,313,326,331,340],[231,294,300,302,305,306,309,311,312,313,315,326],[231,293,294,301,302,306,309,311,312,313,326],[231,294,302,303,306,309,311,312,313,326],[231,294,302,304,305,306,309,311,312,313,326],[231,293,294,302,305,306,309,311,312,313,326],[231,294,302,305,306,307,309,311,312,313,326,331,343],[231,294,302,305,306,307,309,311,312,313,326,331,334],[231,281,294,302,305,306,308,309,311,312,313,315,326,331,343],[231,294,302,305,306,308,309,311,312,313,315,326,331,340,343],[231,294,302,306,308,309,310,311,312,313,326,331,340,343],[229,230,231,232,233,234,235,236,237,238,239,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350],[231,294,302,305,306,309,311,312,313,326],[231,294,302,306,309,311,313,326],[231,294,302,306,309,311,312,313,314,326,343],[231,294,302,305,306,309,311,312,313,315,326,331],[231,294,302,306,309,311,312,313,317,326],[231,294,302,306,309,311,312,313,318,326],[231,294,302,305,306,309,311,312,313,321,326],[231,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350],[231,294,302,306,309,311,312,313,323,326],[231,294,302,306,309,311,312,313,324,326],[231,294,299,302,306,309,311,312,313,315,326,334],[231,294,302,305,306,309,311,312,313,326,327],[231,294,302,306,309,311,312,313,326,328,344,347],[231,294,302,305,306,309,311,312,313,326,331,333,334],[231,294,302,306,309,311,312,313,326,332,334],[231,294,302,306,309,311,312,313,326,334,344],[231,294,302,306,309,311,312,313,326,335],[231,291,294,302,306,309,311,312,313,326,331,337,343],[231,294,302,306,309,311,312,313,326,331,336],[231,294,302,305,306,309,311,312,313,326,338,339],[231,294,302,306,309,311,312,313,326,338,339],[231,294,299,302,306,309,311,312,313,315,326,331,340],[231,294,302,306,309,311,312,313,326,341],[231,294,302,306,309,311,312,313,315,326,342],[231,294,302,306,308,309,311,312,313,324,326,343],[231,294,302,306,309,311,312,313,326,344,345],[231,294,299,302,306,309,311,312,313,326,345],[231,294,302,306,309,311,312,313,326,331,346],[231,294,302,306,309,311,312,313,314,326,347],[231,294,302,306,309,311,312,313,326,348],[231,294,297,302,306,309,311,312,313,326],[231,294,299,302,306,309,311,312,313,326],[231,294,302,306,309,311,312,313,326,344],[231,281,294,302,306,309,311,312,313,326],[231,294,302,306,309,311,312,313,326,343],[231,294,302,306,309,311,312,313,326,349],[231,294,302,306,309,311,312,313,321,326],[231,294,302,306,309,311,312,313,326,339],[231,281,294,302,305,306,307,309,311,312,313,321,326,331,334,343,346,347,349],[231,294,302,306,309,311,312,313,326,331,350],[220,221,224,231,294,302,306,309,311,312,313,326],[231,294,302,306,309,311,312,313,326,404],[231,294,302,306,309,311,312,313,326,407],[221,222,224,225,226,231,294,302,306,309,311,312,313,326],[221,231,294,302,306,309,311,312,313,326],[221,222,224,231,294,302,306,309,311,312,313,326],[221,222,231,294,302,306,309,311,312,313,326],[231,294,302,306,309,311,312,313,326,384],[216,231,294,302,306,309,311,312,313,326,384,385],[216,231,294,302,306,309,311,312,313,326,384],[216,223,231,294,302,306,309,311,312,313,326],[217,231,294,302,306,309,311,312,313,326],[216,217,218,220,231,294,302,306,309,311,312,313,326],[216,231,294,302,306,309,311,312,313,326],[231,294,302,306,309,311,312,313,326,411,412],[231,294,302,306,309,311,312,313,326,411,412,413,414],[231,294,302,306,309,311,312,313,326,411,413],[231,294,302,306,309,311,312,313,326,411],[231,294,302,306,309,311,312,313,326,375],[231,294,302,306,309,311,312,313,326,373,375],[231,294,302,306,309,311,312,313,326,364,372,373,374,376,378],[231,294,302,306,309,311,312,313,326,362],[231,294,302,306,309,311,312,313,326,365,370,375,378],[231,294,302,306,309,311,312,313,326,361,378],[231,294,302,306,309,311,312,313,326,365,366,369,370,371,378],[231,294,302,306,309,311,312,313,326,365,366,367,369,370,378],[231,294,302,306,309,311,312,313,326,362,363,364,365,366,370,371,372,374,375,376,378],[231,294,302,306,309,311,312,313,326,378],[231,294,302,306,309,311,312,313,326,360,362,363,364,365,366,367,369,370,371,372,373,374,375,376,377],[231,294,302,306,309,311,312,313,326,360,378],[231,294,302,306,309,311,312,313,326,365,367,368,370,371,378],[231,294,302,306,309,311,312,313,326,369,378],[231,294,302,306,309,311,312,313,326,370,371,375,378],[231,294,302,306,309,311,312,313,326,363,373],[231,294,302,306,309,311,312,313,326,353,382],[231,294,302,306,309,311,312,313,326,352,353],[219,231,294,302,306,309,311,312,313,326],[231,246,249,252,253,294,302,306,309,311,312,313,326,343],[231,249,294,302,306,309,311,312,313,326,331,343],[231,249,253,294,302,306,309,311,312,313,326,343],[231,294,302,306,309,311,312,313,326,331],[231,243,294,302,306,309,311,312,313,326],[231,247,294,302,306,309,311,312,313,326],[231,245,246,249,294,302,306,309,311,312,313,326,343],[231,294,302,306,309,311,312,313,315,326,340],[231,294,302,306,309,311,312,313,326,351],[231,243,294,302,306,309,311,312,313,326,351],[231,245,249,294,302,306,309,311,312,313,315,326,343],[231,240,241,242,244,248,294,302,305,306,309,311,312,313,326,331,343],[231,249,258,266,294,302,306,309,311,312,313,326],[231,241,247,294,302,306,309,311,312,313,326],[231,249,275,276,294,302,306,309,311,312,313,326],[231,241,244,249,294,302,306,309,311,312,313,326,334,343,351],[231,249,294,302,306,309,311,312,313,326],[231,245,249,294,302,306,309,311,312,313,326,343],[231,240,294,302,306,309,311,312,313,326],[231,243,244,245,247,248,249,250,251,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,276,277,278,279,280,294,302,306,309,311,312,313,326],[231,249,268,271,294,302,306,309,311,312,313,326],[231,249,258,259,260,294,302,306,309,311,312,313,326],[231,247,249,259,261,294,302,306,309,311,312,313,326],[231,248,294,302,306,309,311,312,313,326],[231,241,243,249,294,302,306,309,311,312,313,326],[231,249,253,259,261,294,302,306,309,311,312,313,326],[231,253,294,302,306,309,311,312,313,326],[231,247,249,252,294,302,306,309,311,312,313,326,343],[231,241,245,249,258,294,302,306,309,311,312,313,326],[231,249,268,294,302,306,309,311,312,313,326],[231,261,294,302,306,309,311,312,313,326],[231,243,249,275,294,302,306,309,311,312,313,326,334,349,351],[231,294,302,306,309,311,312,313,326,389,390],[231,294,302,306,309,311,312,313,326,389],[231,294,302,306,309,311,312,313,326,383,389,390,402],[231,294,302,305,306,308,309,310,311,312,313,315,326,331,340,343,350,351,353,354,355,356,357,358,359,379,380,381,382],[231,294,302,306,309,311,312,313,326,355,356,357,358],[231,294,302,306,309,311,312,313,326,355,356,357],[231,294,302,306,309,311,312,313,326,355],[231,294,302,306,309,311,312,313,326,356],[231,294,302,306,309,311,312,313,326,353],[227,231,294,302,306,309,311,312,313,326,395,396,416],[216,227,231,294,302,306,309,311,312,313,326,386,387,416],[231,294,302,306,309,311,312,313,326,408],[216,221,227,228,231,294,302,306,309,311,312,313,326,331,383,386,388,391,392,393,394,397,398,402,403,416],[227,231,294,302,306,309,311,312,313,326,395,396,397,416],[231,294,302,306,309,311,312,313,326,383,399],[231,294,302,306,309,311,312,313,326,349,400],[227,228,231,294,302,306,309,311,312,313,326,386,388,391,416],[216,221,224,227,228,231,294,302,306,309,311,312,313,326,331,349,383,386,387,388,391,392,393,394,395,396,397,398,399,400,401,402,403,405,406,408,409,410,415,416],[61,84,85,89,91,92,231,294,302,306,309,311,312,313,326],[61,65,68,77,78,79,82,84,85,90,92,231,294,302,306,309,311,312,313,326],[69,79,85,91,231,294,302,306,309,311,312,313,326],[91,231,294,302,306,309,311,312,313,326],[60,231,294,302,306,309,311,312,313,326],[60,61,65,68,69,77,78,79,82,83,84,85,89,90,91,93,94,95,96,97,98,99,231,294,302,306,309,311,312,313,326],[64,65,66,68,77,85,89,91,231,294,302,306,309,311,312,313,326],[78,79,85,231,294,302,306,309,311,312,313,326],[64,65,66,68,77,78,84,89,90,91,231,294,302,306,309,311,312,313,326],[64,66,78,79,80,81,85,89,231,294,302,306,309,311,312,313,326],[64,85,89,231,294,302,306,309,311,312,313,326],[64,65,66,67,76,79,82,85,89,231,294,302,306,309,311,312,313,326],[64,65,66,67,79,80,82,85,89,231,294,302,306,309,311,312,313,326],[64,77,82,231,294,302,306,309,311,312,313,326],[65,68,77,82,85,90,91,231,294,302,306,309,311,312,313,326],[85,91,231,294,302,306,309,311,312,313,326],[60,62,63,65,69,79,82,83,85,92,231,294,302,306,309,311,312,313,326],[61,65,85,89,231,294,302,306,309,311,312,313,326],[89,231,294,302,306,309,311,312,313,326],[86,87,88,231,294,302,306,309,311,312,313,326],[62,84,85,91,93,231,294,302,306,309,311,312,313,326],[69,78,82,84,231,294,302,306,309,311,312,313,326],[69,231,294,302,306,309,311,312,313,326],[69,84,231,294,302,306,309,311,312,313,326],[65,66,68,77,79,80,84,85,231,294,302,306,309,311,312,313,326],[64,68,69,76,77,79,231,294,302,306,309,311,312,313,326],[64,65,66,69,76,77,79,82,231,294,302,306,309,311,312,313,326],[84,90,91,231,294,302,306,309,311,312,313,326],[65,231,294,302,306,309,311,312,313,326],[65,66,231,294,302,306,309,311,312,313,326],[63,64,66,70,71,72,73,74,75,77,80,82,231,294,302,306,309,311,312,313,326],[179,231,294,302,306,309,311,312,313,326],[183,184,195,231,294,302,306,309,311,312,313,326],[185,186,231,294,302,306,309,311,312,313,326],[183,184,185,187,188,193,231,294,302,306,309,311,312,313,326],[184,185,231,294,302,306,309,311,312,313,326],[193,231,294,302,306,309,311,312,313,326],[194,231,294,302,306,309,311,312,313,326],[185,231,294,302,306,309,311,312,313,326],[183,184,185,188,189,190,191,192,231,294,302,306,309,311,312,313,326],[170,231,294,302,306,309,311,312,313,326],[170,173,231,294,302,306,309,311,312,313,326],[105,165,168,170,171,172,173,174,175,176,177,178,231,294,302,306,309,311,312,313,326],[101,103,173,231,294,302,306,309,311,312,313,326],[170,171,231,294,302,306,309,311,312,313,326],[102,170,172,231,294,302,306,309,311,312,313,326],[103,105,107,108,109,110,231,294,302,306,309,311,312,313,326],[105,107,109,110,231,294,302,306,309,311,312,313,326],[105,107,109,231,294,302,306,309,311,312,313,326],[102,105,107,108,110,231,294,302,306,309,311,312,313,326],[101,103,104,105,106,107,108,109,110,111,112,165,166,167,168,169,231,294,302,306,309,311,312,313,326],[101,103,104,107,231,294,302,306,309,311,312,313,326],[103,104,107,231,294,302,306,309,311,312,313,326],[107,110,231,294,302,306,309,311,312,313,326],[101,102,104,105,106,108,109,110,231,294,302,306,309,311,312,313,326],[101,102,103,107,170,231,294,302,306,309,311,312,313,326],[107,108,109,110,231,294,302,306,309,311,312,313,326],[197,231,294,302,306,309,311,312,313,326],[109,231,294,302,306,309,311,312,313,326],[113,114,115,116,117,118,119,120,121,122,123,124,125,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,231,294,302,306,309,311,312,313,326],[213,214,231,294,302,306,309,311,312,313,326,416],[100,180,213,231,294,302,306,307,309,311,312,313,326],[214,231,294,302,306,309,311,312,313,326],[181,231,294,302,306,309,311,312,313,326],[181,182,210,211,212,231,294,302,306,309,311,312,313,326],[181,182,210,231,294,302,306,309,311,312,313,326],[180,231,294,302,306,309,311,312,313,326],[209,231,294,302,306,309,311,312,313,326]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"3dfcd0a3bfa70b53135db3cf2e4ddcb7eccc3e4418ce833ae24eecd06928328f","impliedFormat":1},{"version":"bea7cae6a8b2d41fd1a9d70475b54d741dd7ca2103904934858108eec0336a69","impliedFormat":1},{"version":"bc41a8e33caf4d193b0c49ec70d1e8db5ce3312eafe5447c6c1d5a2084fece12","impliedFormat":1},{"version":"7c33f11a56ba4e79efc4ddae85f8a4a888e216d2bf66c863f344d403437ffc74","impliedFormat":1},{"version":"cbef1abd1f8987dee5c9ed8c768a880fbfbff7f7053e063403090f48335c8e4e","impliedFormat":1},{"version":"afb5e9a110ff72b60783e0fe65ce1a28adbe6ab5f30d2dc31e2fb099e0f86de4","impliedFormat":1},{"version":"0132f67b7f128d4a47324f48d0918ec73cf4220a5e9ea8bd92b115397911254f","impliedFormat":1},{"version":"06b37153d512000a91cad6fcbae75ca795ecec00469effaa8916101a00d5b9e2","impliedFormat":1},{"version":"8a641e3402f2988bf993007bd814faba348b813fc4058fce5b06de3e81ed511a","impliedFormat":1},{"version":"281744305ba2dcb2d80e2021fae211b1b07e5d85cfc8e36f4520325fcf698dbb","impliedFormat":1},{"version":"e1b042779d17b69719d34f31822ddba8aa6f5eb15f221b02105785f4447e7f5b","impliedFormat":1},{"version":"6858337936b90bd31f1674c43bedda2edbab2a488d04adc02512aef47c792fd0","impliedFormat":1},{"version":"15cb3deecc635efb26133990f521f7f1cc95665d5db8d87e5056beaea564b0ce","impliedFormat":1},{"version":"e27605c8932e75b14e742558a4c3101d9f4fdd32e7e9a056b2ca83f37f973945","impliedFormat":1},{"version":"f0443725119ecde74b0d75c82555b1f95ee1c3cd371558e5528a83d1de8109de","impliedFormat":1},{"version":"7794810c4b3f03d2faa81189504b953a73eb80e5662a90e9030ea9a9a359a66f","impliedFormat":1},{"version":"b074516a691a30279f0fe6dff33cd76359c1daacf4ae024659e44a68756de602","impliedFormat":1},{"version":"57cbeb55ec95326d068a2ce33403e1b795f2113487f07c1f53b1eaf9c21ff2ce","impliedFormat":1},{"version":"a00362ee43d422bcd8239110b8b5da39f1122651a1809be83a518b1298fa6af8","impliedFormat":1},{"version":"a820499a28a5fcdbf4baec05cc069362041d735520ab5a94c38cc44db7df614c","impliedFormat":1},{"version":"33a6d7b07c85ac0cef9a021b78b52e2d901d2ebfd5458db68f229ca482c1910c","impliedFormat":1},{"version":"8f648847b52020c1c0cdfcc40d7bcab72ea470201a631004fde4d85ccbc0c4c7","impliedFormat":1},{"version":"7821d3b702e0c672329c4d036c7037ecf2e5e758eceb5e740dde1355606dc9f2","impliedFormat":1},{"version":"213e4f26ee5853e8ba314ecad3a73cd06ab244a0809749bb777cbc1619aa07d8","impliedFormat":1},{"version":"1720be851bdb7cdbff68061522a71d9ddaa69db1fe90c6819a26953da05942f2","impliedFormat":1},{"version":"961fa18e1658f3f8e38c23e1a9bc3f4d7be75b056a94700291d5f82f57524ff0","impliedFormat":1},{"version":"079c02dc397960da2786db71d7c9e716475377bcedd81dede034f8a9f94c71b8","impliedFormat":1},{"version":"a7595cbb1b354b54dff14a6bb87d471e6d53b63de101a1b4d9d82d3d3f6eddec","impliedFormat":1},{"version":"1f49a85a97e01a26245fd74232b3b301ebe408fb4e969e72e537aa6ffbd3fe14","impliedFormat":1},{"version":"9c38563e4eabfffa597c4d6b9aa16e11e7f9a636f0dd80dd0a8bce1f6f0b2108","impliedFormat":1},{"version":"a971cba9f67e1c87014a2a544c24bc58bad1983970dfa66051b42ae441da1f46","impliedFormat":1},{"version":"df9b266bceb94167c2e8ae25db37d31a28de02ae89ff58e8174708afdec26738","impliedFormat":1},{"version":"9e5b8137b7ee679d31b35221503282561e764116d8b007c5419b6f9d60765683","impliedFormat":1},{"version":"3e7ae921a43416e155d7bbe5b4229b7686cfa6a20af0a3ae5a79dfe127355c21","impliedFormat":1},{"version":"c7200ae85e414d5ed1d3c9507ae38c097050161f57eb1a70bef021d796af87a7","impliedFormat":1},{"version":"4edb4ff36b17b2cf19014b2c901a6bdcdd0d8f732bcf3a11aa6fd0a111198e27","impliedFormat":1},{"version":"810f0d14ce416a343dcdd0d3074c38c094505e664c90636b113d048471c292e2","impliedFormat":1},{"version":"9c37dc73c97cd17686edc94cc534486509e479a1b8809ef783067b7dde5c6713","impliedFormat":1},{"version":"5fe2ef29b33889d3279d5bc92f8e554ffd32145a02f48d272d30fc1eea8b4c89","impliedFormat":1},{"version":"e39090ffe9c45c59082c3746e2aa2546dc53e3c5eeb4ad83f8210be7e2e58022","impliedFormat":1},{"version":"9f85a1810d42f75e1abb4fc94be585aae1fdac8ae752c76b912d95aef61bf5de","impliedFormat":1},{"version":"c1a2e05eb6d7ca8d7e4a7f4c93ccf0c2857e842a64c98eaee4d85841ee9855e6","impliedFormat":1},{"version":"835fb2909ce458740fb4a49fc61709896c6864f5ce3db7f0a88f06c720d74d02","impliedFormat":1},{"version":"6e5857f38aa297a859cab4ec891408659218a5a2610cd317b6dcbef9979459cc","impliedFormat":1},{"version":"ead8e39c2e11891f286b06ae2aa71f208b1802661fcdb2425cffa4f494a68854","impliedFormat":1},{"version":"40ba6c32eb732a09e4446ade5cb6ad0c147f186f9c9dc6878b90b4418ad9f6ea","impliedFormat":1},{"version":"fdd814741843f85c98281522c58f5a646590ba9019fad2efaa95987655e0611b","impliedFormat":1},{"version":"c78aff4fb58b28b8f642d5095fc7eeb79f00e652a67caa19693af1adabb833c9","impliedFormat":1},{"version":"f80a08ced8818dc99359c0acd5b3f12762e1ce53758007759b0d4e503cbf4a5e","impliedFormat":1},{"version":"37935fa7564bcc6e0bc845b766a24391098d26f7c8245d6e8ab37bc016816e94","impliedFormat":1},{"version":"68add36d9632bc096d7245d24d6b0b8ad5f125183016102a3dad4c9c2438ccb0","impliedFormat":1},{"version":"3a819c2928ee06bbcc84e2797fd3558ae2ebb7e0ed8d87f71732fb2e2acc87b4","impliedFormat":1},{"version":"0f8a263f4c8595c8a07de52e3f3927640c44386c1aa2984de9eae50d75e613b2","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"346fffde7c32da87c2196eb7494422449dc2ca82d3b4e6bf55be1d1a33ffc2b0","impliedFormat":1},{"version":"add0ce7b77ba5b308492fa68f77f24d1ed1d9148534bdf05ac17c30763fc1a79","impliedFormat":1},{"version":"8b5875e4958528042103fdd775e106a7f76bafc29709f0690df9a7d2241d52a7","impliedFormat":1},{"version":"2f67911e4bf4e0717dc2ded248ce2d5e4398d945ee13889a6852c1233ea41508","impliedFormat":1},{"version":"d8430c275b0f59417ea8e173cfb888a4477b430ec35b595bf734f3ec7a7d729f","impliedFormat":1},{"version":"69364df1c776372d7df1fb46a6cb3a6bf7f55e700f533a104e3f9d70a32bec18","impliedFormat":1},{"version":"6042774c61ece4ba77b3bf375f15942eb054675b7957882a00c22c0e4fe5865c","impliedFormat":1},{"version":"5a3bd57ed7a9d9afef74c75f77fce79ba3c786401af9810cdf45907c4e93f30e","impliedFormat":1},{"version":"aef26cf95593c8ace1c62c4724f9afac77bdfa756fb8a00613cd152117cb2f43","impliedFormat":1},{"version":"30db853bb2e60170ba11e39ab48bacecb32d06d4def89eedf17e58ebab762a65","impliedFormat":1},{"version":"e27451b24234dfed45f6cf22112a04955183a99c42a2691fb4936d63cfe42761","impliedFormat":1},{"version":"2316301dd223d31962d917999acf8e543e0119c5d24ec984c9f22cb23247160c","impliedFormat":1},{"version":"58d65a2803c3b6629b0e18c8bf1bc883a686fcf0333230dd0151ab6e85b74307","impliedFormat":1},{"version":"e818471014c77c103330aee11f00a7a00b37b35500b53ea6f337aefacd6174c9","impliedFormat":1},{"version":"268fd6d9f2e807a39a6c5aa654b00f949feb63d3faa7dd0f9bba7dde9172159c","impliedFormat":1},{"version":"29f823cbe0166e10e7176a94afe609a24b9e5af3858628c541ff8ce1727023cd","impliedFormat":1},{"version":"d25d249aa61f6db772bd94b75c125e67952ffbac7a04b74609c054d1a0411a1d","impliedFormat":99},{"version":"cfff4d32474904c6231c06fad39faf0dc53bc62b6de2ec521fdc038751daf22a","impliedFormat":99},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"36eb5babc665b890786550d4a8cb20ef7105673a6d5551fbdd7012877bb26942","impliedFormat":1},{"version":"fec412ded391a7239ef58f455278154b62939370309c1fed322293d98c8796a6","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"93c3e73824ad57f98fd23b39335dbdae2db0bd98199b0dc0b9ccc60bf3c5134a","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"0648a8c200b5544e30677f7f7059b1e384d6cab716c82659716457e3f317ebae","impliedFormat":99},{"version":"d8bc0c5487582c6d887c32c92d8b4ffb23310146fcb1d82adf4b15c77f57c4ac","impliedFormat":1},{"version":"8cb31102790372bebfd78dd56d6752913b0f3e2cefbeb08375acd9f5ba737155","impliedFormat":1},{"version":"f17ed72d1b1882ab6dc66d45e699f757d15bba0807af2fc9c3ec98fe367611c1","impliedFormat":99},{"version":"b1067ccb56b38af060dc3299ea7c4c6362cad4f07d0d454325a74808204fc801","impliedFormat":99},{"version":"7bb43a0f0180ad87b0a944ef95be8615d4c1d621a93ae503a8fcdee2027243ef","impliedFormat":99},{"version":"ba678532514244768286bdfdc82b33f072d5de4e9d281a75bcccdba9970788d7","impliedFormat":99},{"version":"0b79f95a79497386c50f38bafbbf59154619e51d7bbe5acf61cd376d3c9d77b9","impliedFormat":99},{"version":"5993793a23b298afd20c2e1cd2bf8468cc7e9415d314d0771e93dd8b2e389d28","impliedFormat":99},{"version":"05267740a5cff4399995b08326a2e250f229e9926f453162192b9b96b853a12b","impliedFormat":99},{"version":"104fae9b53b5eaa040d9ce626e1bf0b3e6e27d269a899a98a4a28358cdcbc155","impliedFormat":99},{"version":"50a6aa665f3a2e769a4d683f9f74cd15164d0947fb957d8016331b170ab8b643","impliedFormat":99},{"version":"6b83491ca98ce7dc82ec0c54f1456705c9ea08f5a39fa8cea17134b28e2a73d7","impliedFormat":99},{"version":"33aa2f336bb0bc598652ddd1ad3095ef7a14e4dbed9cf829fa9357e989fff31a","impliedFormat":99},{"version":"531a8f6a7aab7edb5a79fe38729ea2c36bf2ef5e98095172a524fc015cb3a348","impliedFormat":99},{"version":"f5dd1f873daa4664314a735595cf15aed7c0d7aed6d22be8cf632097463bff2f","impliedFormat":99},{"version":"c96d4f763c624473d3f661c3e3fe0690220c36ab7660238be36c8f015a4b6499","impliedFormat":99},{"version":"0e07be20df53a70c3898402a47946fc5efff179e6ebc0fa527f215e309222eaa","impliedFormat":99},{"version":"23364e6639544b957bd8bc9a20d8b0c0f0990565bdbecf402f600b28a3e403f8","signature":"067d2d17523634850d66eda4d240ca4d6fa691b8cc8aefd34c3a22a68599e2da","impliedFormat":99},{"version":"02ea63d7d9c440c7206799430e1fb0dfd07aaf18133097634fb1ffe8874992f3","impliedFormat":99},{"version":"d2e64a6f25013b099e83bfadb2c388d7bef3e8f3fdb25528225bbc841e7e7e3a","impliedFormat":99},{"version":"369ba5259e66ca8c7d35e3234f7a2a0863a770fdb8266505747c65cf346a0804","impliedFormat":99},{"version":"64d984f55025daf604f670b7dfd090ea765f2098aee871174ef2ee3e94479098","impliedFormat":99},{"version":"f147b6710441cf3ec3234adf63b0593ce5e8c9b692959d21d3babc8454bcf743","impliedFormat":99},{"version":"e96d5373a66c2cfbbc7e6642cf274055aa2c7ff6bd37be7480c66faf9804db6d","impliedFormat":99},{"version":"02bcdd7a76c5c1c485cbf05626d24c86ac8f9a1d8dc31f8924108bbaa4cf3ba9","impliedFormat":99},{"version":"c874ab6feac6e0fdf9142727c9a876065777a5392f14b0bbcf869b1e69eb46b5","impliedFormat":99},{"version":"7c553fc9e34773ddbaabe0fa1367d4b109101d0868a008f11042bee24b5a925d","impliedFormat":99},{"version":"9962ce696fbdce2421d883ca4b062a54f982496625437ae4d3633376c5ad4a80","impliedFormat":99},{"version":"e3ea467c4a7f743f3548c9ed61300591965b1d12c08c8bb9aaff8a002ba95fce","impliedFormat":99},{"version":"4c17183a07a63bea2653fbfc0a942b027160ddbee823024789a415f9589de327","impliedFormat":99},{"version":"3e2203c892297ea44b87470fde51b3d48cfe3eeb6901995de429539462894464","impliedFormat":99},{"version":"c84bf7a4abc5e7fdf45971a71b25b0e0d34ccd5e720a866dd78bb71d60d41a3f","impliedFormat":99},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"074de5b2fdead0165a2757e3aaef20f27a6347b1c36adea27d51456795b37682","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4137ebf04166f3a325f056aa56101adc75e9dceb30404a1844eb8604d89770e2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"3e11fce78ad8c0e1d1db4ba5f0652285509be3acdd519529bc8fcef85f7dafd9","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"1cc2a09e1a61a5222d4174ab358a9f9de5e906afe79dbf7363d871a7edda3955","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"b64d4d1c5f877f9c666e98e833f0205edb9384acc46e98a1fef344f64d6aba44","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"c9381908473a1c92cb8c516b184e75f4d226dad95c3a85a5af35f670064d9a2f","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2ae155afe8a01cc0ae612d99117cf8ef16692ba7c4366590156fdec1bcf2d8c","impliedFormat":1},{"version":"3f5e5d9be35913db9fea42a63f3df0b7e3c8703b97670a2125587b4dbbd56d7c","impliedFormat":1},{"version":"8caeb65fdc3bfe0d13f86f67324fcb2d858ed1c55f1f0cce892eb1acfb9f3239","impliedFormat":1},{"version":"57c23df0b5f7a8e26363a3849b0bc7763f6b241207157c8e40089d1df4116f35","affectsGlobalScope":true,"impliedFormat":1},{"version":"3b8bc0c17b54081b0878673989216229e575d67a10874e84566a21025a2461ee","impliedFormat":1},{"version":"5b0db5a58b73498792a29bfebc333438e61906fef75da898b410e24e52229e6f","impliedFormat":1},{"version":"dbe055b2b29a7bab2c1ca8f259436306adb43f469dca7e639a02cd3695d3f621","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"e3905f6902f0b69e5eefc230daa69fdd4ab707a973ec2d086d65af1b3ea47ef0","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"9ec87fea42b92894b0f209931a880789d43c3397d09dd99c631ae40a2f7071d1","impliedFormat":1},{"version":"c68e88cdfadfb6c8ba5fc38e58a3a166b0beae77b1f05b7d921150a32a5ffb8d","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"07e4e61e946a9c15045539ecd5f5d2d02e7aab6fa82567826857e09cf0f37c2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c4714ccc29149efb8777a1da0b04b8d2258f5d13ddbf4cd3c3d361fb531ac86","impliedFormat":1},{"version":"3ff275f84f89f8a7c0543da838f9da9614201abc4ce74c533029825adfb4433d","impliedFormat":1},{"version":"0eb5d0cbf09de5d34542b977fd6a933bb2e0817bffe8e1a541b2f1ad1b9af1ff","impliedFormat":1},{"version":"f9713757bcdfa4d58b48c0fb249e752c94a3eee8bf4532b906094246ac49ef88","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"c32c840c62d8bd7aeb3147aa6754cd2d922b990a6b6634530cb2ebdce5adc8e9","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"6fe28249ac0c7bc19a79aa9264baf00efbd080e868dbe1d3052033ad1c64f206","affectsGlobalScope":true,"impliedFormat":1},{"version":"cbed824fec91efefc7bbdcb8b43d1a531fdbebd0e2ef19481501ff365a93cb70","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"d0716593b3f2b0451bcf0c24cfa86dec2235c325c89f201934248b7c742715fc","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"2991bca2cc0f0628a278df2a2ccdb8d6cbcb700f3761abbed62bba137d5b1790","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"a74edb3bab7394a9dbde529d60632be590def2f5f01024dbd85441587fbfbbe0","impliedFormat":1},{"version":"0ea59f7d3e51440baa64f429253759b106cfcbaf51e474cae606e02265b37cf8","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"00049ccc87f3f37726db03c01ca68fe74fd9c0109b68c29eb9923ebec2c76b13","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"68d3f35108e2608b1f2f28b36d19d7055f31c4465cc5692cbd06c716a9fe7973","impliedFormat":1},{"version":"a6d543044570fbeed13a7f9925a868081cd2b14ef59cdd9da6ae76d41cab03d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"eab2f3179607acb3d44b2db2a76dd7d621c5039b145dc160a1ee733963f9d2f5","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"6f5383b3df1cdf4ff1aa7fb0850f77042b5786b5e65ec9a9b6be56ebfe4d9036","impliedFormat":1},{"version":"62fc21ed9ccbd83bd1166de277a4b5daaa8d15b5fa614c75610d20f3b73fba87","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"9d3821bc75c59577e52643324cec92fc2145642e8d17cf7ee07a3181f21d985d","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"c77fb31bc17fd241d3922a9f88c59e3361cdf76d1328ba9412fc6bf7310b638d","impliedFormat":1},{"version":"0a20eaf2e4b1e3c1e1f87f7bccb0c936375b23b022baeea750519b7c9bc6ce83","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"a16b91b27bd6b706c687c88cbc8a7d4ee98e5ed6043026d6b84bda923c0aed67","impliedFormat":1},{"version":"694b812e0ed11285e8822cf8131e3ce7083a500b3b1d185fff9ed1089677bd0a","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"6eeded8c7e352be6e0efb83f4935ec752513c4d22043b52522b90849a49a3a11","impliedFormat":1},{"version":"6c1ad90050ffbb151cacc68e2d06ea1a26a945659391e32651f5d42b86fd7f2c","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"ee70b8037ecdf0de6c04f35277f253663a536d7e38f1539d270e4e916d225a3f","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"282f98006ed7fa9bb2cd9bdbe2524595cfc4bcd58a0bb3232e4519f2138df811","impliedFormat":1},{"version":"6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","impliedFormat":1},{"version":"cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","impliedFormat":1},{"version":"8b96046bf5fb0a815cba6b0880d9f97b7f3a93cf187e8dcfe8e2792e97f38f87","impliedFormat":99},{"version":"bacf2c84cf448b2cd02c717ad46c3d7fd530e0c91282888c923ad64810a4d511","affectsGlobalScope":true,"impliedFormat":1},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"52dcc257df5119fb66d864625112ce5033ac51a4c2afe376a0b299d2f7f76e4a","impliedFormat":1},{"version":"e5bab5f871ef708d52d47b3e5d0aa72a08ee7a152f33931d9a60809711a2a9a3","impliedFormat":1},{"version":"e16dc2a81595736024a206c7d5c8a39bfe2e6039208ef29981d0d95434ba8fcf","impliedFormat":1},{"version":"cc4a4903fb698ca1d961d4c10dce658aa3a479faf40509d526f122b044eaf6a4","impliedFormat":1},{"version":"19ee8416e6473ed6c7adb868fa796b5653cf0fa2a337658e677eaa0d134388c3","impliedFormat":1},{"version":"1328ab4e442614b28cdb3d4b414cf68325c0da0dca07287a338d0654b7a00261","impliedFormat":1},{"version":"a039dc21f045919f3cbee2ec13812cc6cc3eebc99dae4be00973230f468d19a6","impliedFormat":1},{"version":"3fbe57af01460e49dcd29df55d6931e1672bc6f1be0fb073d11410bc16f9037d","impliedFormat":1},{"version":"f760be449e8562ec5c09bb5187e8e1eabf3c113c0c58cddda53ef8c69f3e2131","impliedFormat":1},{"version":"44325ed13294fce6ab825b82947bbeed2611db7dad9d9135260192f375e5a189","impliedFormat":1},{"version":"e392e8fb5b514eafc585601c1d781485aa6dd6a320e75daf1064a4c6918a1b45","impliedFormat":1},{"version":"46e4a36e8ddbdfb4e7330e11c81c970dc8b218611df9183d39c41c5f8c653b55","impliedFormat":1},{"version":"370bde134aa8c2abc926d0e99d3a4d5d5dba65c6ee65459137e4f02670cbf841","impliedFormat":1},{"version":"6332f565867cf4a740a70e30f31cefba37ef7cebcf74f22eab8d744fde6d193e","impliedFormat":1},{"version":"2977b7884aedc895a1d0c9c210c7cf3272c29d6959a08a6fa3ff71e0aff08175","impliedFormat":1},{"version":"17f2922d41ddd032830a91371c948cd9ce903b35c95adca72271a54584f19b0b","impliedFormat":1},{"version":"3eed76ede2a1a14d7c9bb0a642041282dcc264811139d3dd275c9fe14efc9840","impliedFormat":1},{"version":"00cf4001e0d9c6e5e036bc545b9d73e2b8b84cddb02e61ad05bab3752b1d4522","impliedFormat":1},{"version":"8d369483f0c2b9ee388129cfdb6a43bc8112b377e86a41884bd06e19ce04f4c1","impliedFormat":99},{"version":"82e687ebd99518bc63ea04b0c3810fb6e50aa6942decd0ca6f7a56d9b9a212a6","impliedFormat":99},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","impliedFormat":1},{"version":"257b83faa134d971c738a6b9e4c47e59bb7b23274719d92197580dd662bfafc3","impliedFormat":99},{"version":"e01ea380015ed698c3c0e2ccd0db72f3fc3ef1abc4519f122aa1c1a8d419a505","impliedFormat":99},{"version":"5ada1f8a9580c0f7478fe03ae3e07e958f0b79bdfb9dd50eeb98c1324f40011b","impliedFormat":99},{"version":"a8301dc90b4bd9fba333226ee0f1681aeeff1bd90233a8f647e687cb4b7d3521","impliedFormat":99},{"version":"e3225dc0bec183183509d290f641786245e6652bc3dce755f7ef404060693c35","impliedFormat":99},{"version":"09a03870ed8c55d7453bc9ad684df88965f2f770f987481ca71b8a09be5205bc","impliedFormat":99},{"version":"e6233e1c976265e85aa8ad76c3881febe6264cb06ae3136f0257e1eab4a6cc5a","impliedFormat":99},{"version":"2cdd50ddc49e2d608ee848fc4ab0db9a2716624fabb4209c7c683d87e54d79c5","impliedFormat":99},{"version":"e431d664338b8470abb1750d699c7dfcebb1a25434559ef85bb96f1e82de5972","impliedFormat":99},{"version":"2c4254139d037c3caca66ce291c1308c1b5092cfcb151eb25980db932dd3b01a","impliedFormat":99},{"version":"970ae00ed018cb96352dc3f37355ef9c2d9f8aa94d7174ccd6d0ed855e462097","impliedFormat":99},{"version":"d2f8dee457ef7660b604226d471d55d927c3051766bdd80353553837492635c3","impliedFormat":99},{"version":"110a503289a2ef76141ffff3ffceb9a1c3662c32748eb9f6777a2bd0866d6fb1","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"310e6b62c493ce991624169a1c1904015769d947be88dc67e00adc7ebebcfa87","impliedFormat":99},{"version":"62fefda288160bf6e435b21cc03d3fbac11193d8d3bd0e82d86623cca7691c29","impliedFormat":99},{"version":"fcc46a8bcbf9bef21023bba1995160a25f0bc590ca3563ec44c315b4f4c1b18a","impliedFormat":99},{"version":"0309a01650023994ed96edbd675ea4fdc3779a823ce716ad876cc77afb792b62","impliedFormat":99},{"version":"f13d7beeea58e219daef3a40e0dc4f2bd7d9581ac04cedec236102a12dfd2090","impliedFormat":99},{"version":"669573548930fb7d0a0761b827e203dc623581e21febf0be80fb02414f217d74","impliedFormat":99},{"version":"48c411efce1848d1ed55de41d7deb93cbf7c04080912fd87aa517ed25ef42639","affectsGlobalScope":true,"impliedFormat":1},{"version":"a094636c05f3e75cb072684dd42cd25a4c1324bec4a866706c85c04cecd49613","affectsGlobalScope":true,"impliedFormat":99},{"version":"fe2d63fcfdde197391b6b70daf7be8c02a60afa90754a5f4a04bdc367f62793d","impliedFormat":99},{"version":"9a3e2c85ec1ab7a0874a19814cc73c691b716282cb727914093089c5a8475955","impliedFormat":99},{"version":"cbdc781d2429935c9c42acd680f2a53a9f633e8de03290ec6ea818e4f7bff19a","impliedFormat":99},{"version":"9f6d9f5dd710922f82f69abf9a324e28122b5f31ae6f6ce78427716db30a377e","impliedFormat":99},{"version":"ac2414a284bdecfd6ab7b87578744ab056cd04dd574b17853cd76830ef5b72f2","impliedFormat":99},{"version":"c3f921bbc9d2e65bd503a56fbc66da910e68467baedb0b9db0cc939e1876c0d7","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"0cc99fbb161d78729d71fad66c6c363e3095862d6277160f29fa960744b785c6","affectsGlobalScope":true,"impliedFormat":99},{"version":"54ba74f7becfc8f9bc0e41822f77d189ffe79c36b1ed18c1a06c4bf085633b7b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99}],"root":[214,215,417],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":false,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":false},"referencedMap":[[203,1],[208,2],[202,3],[199,4],[209,5],[196,6],[205,7],[204,3],[201,3],[200,8],[207,9],[352,4],[291,10],[292,10],[293,11],[231,12],[294,13],[295,14],[296,15],[229,4],[297,16],[298,17],[299,18],[300,19],[301,20],[302,21],[303,21],[304,22],[305,23],[306,24],[307,25],[232,4],[230,4],[308,26],[309,27],[310,28],[351,29],[311,30],[312,31],[313,30],[314,32],[315,33],[317,34],[318,35],[319,35],[320,35],[321,36],[322,37],[323,38],[324,39],[325,40],[326,41],[327,41],[328,42],[329,4],[330,4],[331,43],[332,44],[333,43],[334,45],[335,46],[336,47],[337,48],[338,49],[339,50],[340,51],[341,52],[342,53],[343,54],[344,55],[345,56],[346,57],[347,58],[348,59],[233,30],[234,4],[235,60],[236,61],[237,4],[238,62],[239,4],[282,63],[283,64],[284,65],[285,65],[286,66],[287,4],[288,13],[289,67],[290,64],[349,68],[350,69],[403,4],[404,70],[405,71],[408,72],[407,4],[216,4],[227,73],[222,74],[225,75],[395,76],[384,4],[387,77],[386,78],[398,78],[385,79],[406,4],[224,80],[226,80],[218,81],[221,82],[392,81],[223,83],[217,4],[316,4],[359,4],[413,84],[415,85],[414,86],[412,87],[411,4],[206,4],[376,88],[374,89],[375,90],[363,91],[364,89],[371,92],[362,93],[367,94],[377,4],[368,95],[373,96],[379,97],[378,98],[361,99],[369,100],[370,101],[365,102],[372,88],[366,103],[354,104],[353,105],[360,4],[396,4],[219,4],[220,106],[58,4],[59,4],[11,4],[10,4],[2,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[3,4],[20,4],[21,4],[4,4],[22,4],[26,4],[23,4],[24,4],[25,4],[27,4],[28,4],[29,4],[5,4],[30,4],[31,4],[32,4],[33,4],[6,4],[37,4],[34,4],[35,4],[36,4],[38,4],[7,4],[39,4],[44,4],[45,4],[40,4],[41,4],[42,4],[43,4],[8,4],[49,4],[46,4],[47,4],[48,4],[50,4],[9,4],[51,4],[52,4],[53,4],[55,4],[54,4],[56,4],[1,4],[57,4],[258,107],[270,108],[255,109],[271,110],[280,111],[246,112],[247,113],[245,114],[279,115],[274,116],[278,117],[249,118],[267,119],[248,120],[277,121],[243,122],[244,116],[250,123],[251,4],[257,124],[254,123],[241,125],[281,126],[272,127],[261,128],[260,123],[262,129],[265,130],[259,131],[263,132],[275,115],[252,133],[253,134],[266,135],[242,110],[269,136],[268,123],[256,134],[264,137],[273,4],[240,4],[276,138],[393,139],[390,140],[391,139],[394,141],[389,4],[383,142],[380,143],[358,144],[356,145],[355,4],[357,146],[381,4],[382,147],[397,148],[388,149],[228,4],[409,150],[399,151],[410,152],[402,153],[401,154],[400,155],[416,156],[93,157],[91,158],[62,4],[80,159],[92,160],[61,161],[100,162],[63,4],[90,163],[67,164],[85,165],[82,166],[65,167],[77,168],[68,169],[81,170],[78,171],[64,172],[84,173],[86,174],[87,175],[88,175],[89,176],[94,4],[60,4],[95,175],[96,177],[79,178],[70,179],[71,179],[72,179],[83,180],[69,181],[97,182],[98,183],[73,4],[66,184],[74,185],[75,186],[76,187],[99,171],[180,188],[185,189],[187,190],[194,191],[189,4],[190,4],[188,192],[191,193],[183,4],[184,4],[195,194],[186,195],[192,4],[193,196],[174,197],[178,198],[175,198],[171,197],[179,199],[176,200],[197,188],[177,198],[172,201],[173,202],[167,203],[108,204],[110,205],[166,4],[109,206],[170,207],[169,208],[168,209],[101,4],[111,204],[112,4],[103,210],[107,211],[102,4],[104,212],[105,213],[106,4],[198,214],[113,215],[114,215],[115,215],[116,215],[117,215],[118,215],[119,215],[120,215],[121,215],[122,215],[123,215],[124,215],[125,215],[126,215],[128,215],[127,215],[129,215],[130,215],[131,215],[132,215],[133,215],[165,216],[134,215],[135,215],[136,215],[137,215],[138,215],[139,215],[140,215],[141,215],[142,215],[143,215],[144,215],[145,215],[146,215],[148,215],[147,215],[149,215],[150,215],[151,215],[152,215],[153,215],[154,215],[155,215],[156,215],[157,215],[158,215],[159,215],[160,215],[161,215],[164,215],[162,215],[163,215],[417,217],[214,218],[215,219],[182,220],[212,4],[213,221],[211,222],[181,223],[210,224]],"version":"6.0.3"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/connector.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { OpenApiConnector } from '../connector.js';
|
|
3
|
+
const spec = {
|
|
4
|
+
openapi: '3.0.0',
|
|
5
|
+
paths: {
|
|
6
|
+
'/users/{id}': {
|
|
7
|
+
parameters: [{ $ref: '#/components/parameters/Id' }],
|
|
8
|
+
get: {
|
|
9
|
+
operationId: 'getUser',
|
|
10
|
+
parameters: [{ name: 'fields', in: 'query', schema: { type: 'string' } }],
|
|
11
|
+
},
|
|
12
|
+
delete: { operationId: 'deleteUser' },
|
|
13
|
+
},
|
|
14
|
+
'/users': {
|
|
15
|
+
post: {
|
|
16
|
+
operationId: 'createUser',
|
|
17
|
+
requestBody: { content: { 'application/json': { schema: { type: 'object' } } } },
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
components: {
|
|
22
|
+
parameters: { Id: { name: 'id', in: 'path', required: true, schema: { type: 'integer' } } },
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
const ctx = {
|
|
26
|
+
limits: { rowCap: 10, timeoutMs: 1_000, maxBytes: 64 },
|
|
27
|
+
signal: new AbortController().signal,
|
|
28
|
+
};
|
|
29
|
+
const noop = () => { };
|
|
30
|
+
const initCtx = { logger: { debug: noop, info: noop, warn: noop, error: noop } };
|
|
31
|
+
async function setup(opts = {}, response) {
|
|
32
|
+
const calls = [];
|
|
33
|
+
const fakeFetch = (async (url, init = {}) => {
|
|
34
|
+
if (String(url) === 'https://spec.test/openapi.json')
|
|
35
|
+
return new Response(JSON.stringify(spec));
|
|
36
|
+
calls.push({ url: String(url), init });
|
|
37
|
+
return (response?.() ??
|
|
38
|
+
new Response('{"ok":true}', { headers: { 'content-type': 'application/json' } }));
|
|
39
|
+
});
|
|
40
|
+
const c = new OpenApiConnector({
|
|
41
|
+
id: 'api',
|
|
42
|
+
spec: 'https://spec.test/openapi.json',
|
|
43
|
+
baseUrl: 'https://api.test/v1/',
|
|
44
|
+
fetch: fakeFetch,
|
|
45
|
+
...opts,
|
|
46
|
+
});
|
|
47
|
+
await c.init(initCtx);
|
|
48
|
+
const call = c.listPrimitiveTools().find((t) => t.name === 'api.call');
|
|
49
|
+
return {
|
|
50
|
+
c,
|
|
51
|
+
calls,
|
|
52
|
+
call: (args) => call.handler(call.inputSchema.parse(args), ctx),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
describe('openapi connector', () => {
|
|
56
|
+
it('exposes only operations whose method is allowed', async () => {
|
|
57
|
+
const { c, call, calls } = await setup();
|
|
58
|
+
const snap = await c.introspect();
|
|
59
|
+
expect(snap.kind === 'openapi' && snap.operations.map((o) => o.operationId)).toEqual([
|
|
60
|
+
'getUser',
|
|
61
|
+
]);
|
|
62
|
+
await expect(call({ operationId: 'deleteUser', path: { id: 1 } })).rejects.toMatchObject({
|
|
63
|
+
code: 'not_found',
|
|
64
|
+
});
|
|
65
|
+
await expect(call({ operationId: 'createUser', body: {} })).rejects.toMatchObject({
|
|
66
|
+
code: 'not_found',
|
|
67
|
+
});
|
|
68
|
+
expect(calls).toHaveLength(0);
|
|
69
|
+
});
|
|
70
|
+
it('calls under baseUrl with config auth, encoded params, and redirects refused', async () => {
|
|
71
|
+
const { call, calls } = await setup({ auth: { type: 'bearer', token: 't0k' } });
|
|
72
|
+
const res = await call({
|
|
73
|
+
operationId: 'getUser',
|
|
74
|
+
path: { id: 'a/b?c' },
|
|
75
|
+
query: { fields: 'x' },
|
|
76
|
+
});
|
|
77
|
+
expect(res.content[0].data).toEqual({ status: 200, body: { ok: true }, truncated: false });
|
|
78
|
+
expect(calls[0].url).toBe('https://api.test/v1/users/a%2Fb%3Fc?fields=x');
|
|
79
|
+
expect(calls[0].init).toMatchObject({
|
|
80
|
+
method: 'GET',
|
|
81
|
+
redirect: 'error',
|
|
82
|
+
headers: { authorization: 'Bearer t0k' },
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
it.each([
|
|
86
|
+
[{ path: { id: '..' } }, 'traversal'],
|
|
87
|
+
[{ path: { id: '' } }, 'empty path param'],
|
|
88
|
+
[{ path: {} }, 'missing path param'],
|
|
89
|
+
[{ path: { id: 1, extra: 2 } }, 'unknown path param'],
|
|
90
|
+
[{ path: { id: 1 }, query: { admin: true } }, 'undeclared query param'],
|
|
91
|
+
[{ path: { id: 1 }, body: { a: 1 } }, 'body on an operation without one'],
|
|
92
|
+
])('rejects %j (%s) before any request', async (args) => {
|
|
93
|
+
const { call, calls } = await setup();
|
|
94
|
+
await expect(call({ operationId: 'getUser', ...args })).rejects.toMatchObject({
|
|
95
|
+
code: 'invalid_args',
|
|
96
|
+
});
|
|
97
|
+
expect(calls).toHaveLength(0);
|
|
98
|
+
});
|
|
99
|
+
it('sends a JSON body when the method is allowed, and is then not read-only', async () => {
|
|
100
|
+
const { c, call, calls } = await setup({ allowMethods: ['GET', 'POST'] });
|
|
101
|
+
await call({ operationId: 'createUser', body: { name: 'a' } });
|
|
102
|
+
expect(calls[0].init).toMatchObject({ method: 'POST', body: '{"name":"a"}' });
|
|
103
|
+
expect(c.listPrimitiveTools().find((t) => t.name === 'api.call').readOnly).toBe(false);
|
|
104
|
+
});
|
|
105
|
+
it('caps the response at maxBytes and flags upstream errors', async () => {
|
|
106
|
+
const { call } = await setup({}, () => new Response('x'.repeat(1000), { status: 500 }));
|
|
107
|
+
const res = await call({ operationId: 'getUser', path: { id: 1 } });
|
|
108
|
+
expect(res.isError).toBe(true);
|
|
109
|
+
expect(res.content[0].data).toEqual({ status: 500, body: 'x'.repeat(64), truncated: true });
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=connector.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector.test.js","sourceRoot":"","sources":["../../src/__tests__/connector.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { Connector, ConnectorInitCtx, PerEntityConfig, SchemaSnapshot, ToolDefinition } from '@mcpolyglot/core';
|
|
2
|
+
declare const METHODS: readonly ["GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH", "DELETE"];
|
|
3
|
+
export type HttpMethod = (typeof METHODS)[number];
|
|
4
|
+
export type OpenApiAuth = {
|
|
5
|
+
type: 'none';
|
|
6
|
+
} | {
|
|
7
|
+
type: 'bearer';
|
|
8
|
+
token: string;
|
|
9
|
+
} | {
|
|
10
|
+
type: 'apiKey';
|
|
11
|
+
header: string;
|
|
12
|
+
value: string;
|
|
13
|
+
} | {
|
|
14
|
+
type: 'basic';
|
|
15
|
+
username: string;
|
|
16
|
+
password: string;
|
|
17
|
+
};
|
|
18
|
+
export interface OpenApiConnectorOptions {
|
|
19
|
+
id: string;
|
|
20
|
+
/** Path or http(s) URL of an OpenAPI 3 document, JSON or YAML. */
|
|
21
|
+
spec: string;
|
|
22
|
+
/** Every call goes here. The spec's own `servers` are ignored. */
|
|
23
|
+
baseUrl: string;
|
|
24
|
+
auth?: OpenApiAuth;
|
|
25
|
+
/** Operations with any other method are not exposed. Defaults to GET / HEAD / OPTIONS. */
|
|
26
|
+
allowMethods?: readonly HttpMethod[];
|
|
27
|
+
/** For tests. */
|
|
28
|
+
fetch?: typeof fetch;
|
|
29
|
+
}
|
|
30
|
+
export declare class OpenApiConnector implements Connector {
|
|
31
|
+
readonly id: string;
|
|
32
|
+
readonly kind: "openapi";
|
|
33
|
+
private readonly spec;
|
|
34
|
+
private readonly base;
|
|
35
|
+
private readonly auth;
|
|
36
|
+
private readonly allowMethods;
|
|
37
|
+
private readonly fetch;
|
|
38
|
+
private ops?;
|
|
39
|
+
constructor(opts: OpenApiConnectorOptions);
|
|
40
|
+
init(ctx: ConnectorInitCtx): Promise<void>;
|
|
41
|
+
close(): Promise<void>;
|
|
42
|
+
health(): Promise<{
|
|
43
|
+
ok: boolean;
|
|
44
|
+
latencyMs: number;
|
|
45
|
+
details?: string;
|
|
46
|
+
}>;
|
|
47
|
+
introspect(): Promise<SchemaSnapshot>;
|
|
48
|
+
listPrimitiveTools(): ToolDefinition[];
|
|
49
|
+
generatePerEntityTools(_cfg: PerEntityConfig): ToolDefinition[];
|
|
50
|
+
private buildUrl;
|
|
51
|
+
private authHeader;
|
|
52
|
+
private requireOp;
|
|
53
|
+
private requireOps;
|
|
54
|
+
}
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=connector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAEhB,eAAe,EACf,cAAc,EACd,cAAc,EACf,MAAM,kBAAkB,CAAC;AAG1B,QAAA,MAAM,OAAO,uEAAwE,CAAC;AACtF,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAGlD,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACrC,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAOD,qBAAa,gBAAiB,YAAW,SAAS;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,GAAG,CAAC,CAAyB;gBAEzB,IAAI,EAAE,uBAAuB;IASnC,IAAI,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,MAAM,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAMvE,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC;IAO3C,kBAAkB,IAAI,cAAc,EAAE;IAuFtC,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,EAAE;IAI/D,OAAO,CAAC,QAAQ;IA4BhB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,UAAU;CAMnB"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { parse } from 'yaml';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { McpolyglotError } from '@mcpolyglot/core';
|
|
5
|
+
const METHODS = ['GET', 'HEAD', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE'];
|
|
6
|
+
const SAFE_METHODS = ['GET', 'HEAD', 'OPTIONS'];
|
|
7
|
+
const Scalar = z.union([z.string(), z.number(), z.boolean()]);
|
|
8
|
+
export class OpenApiConnector {
|
|
9
|
+
id;
|
|
10
|
+
kind = 'openapi';
|
|
11
|
+
spec;
|
|
12
|
+
base;
|
|
13
|
+
auth;
|
|
14
|
+
allowMethods;
|
|
15
|
+
fetch;
|
|
16
|
+
ops;
|
|
17
|
+
constructor(opts) {
|
|
18
|
+
this.id = opts.id;
|
|
19
|
+
this.spec = opts.spec;
|
|
20
|
+
this.base = new URL(opts.baseUrl.replace(/\/+$/, ''));
|
|
21
|
+
this.auth = opts.auth ?? { type: 'none' };
|
|
22
|
+
this.allowMethods = opts.allowMethods ?? SAFE_METHODS;
|
|
23
|
+
this.fetch = opts.fetch ?? fetch;
|
|
24
|
+
}
|
|
25
|
+
async init(ctx) {
|
|
26
|
+
const text = /^https?:\/\//i.test(this.spec)
|
|
27
|
+
? await (await this.fetch(this.spec, { redirect: 'error' })).text()
|
|
28
|
+
: await readFile(this.spec, 'utf8');
|
|
29
|
+
// YAML is a superset of JSON, so one parser covers both.
|
|
30
|
+
this.ops = collectOperations(parse(text), this.allowMethods);
|
|
31
|
+
ctx.logger.info('connector.openapi.loaded', { id: this.id, operations: this.ops.size });
|
|
32
|
+
}
|
|
33
|
+
async close() {
|
|
34
|
+
this.ops = undefined;
|
|
35
|
+
}
|
|
36
|
+
// ponytail: reports the spec as loaded, doesn't ping the API — no endpoint is known to be
|
|
37
|
+
// safe to call. Add a configurable `healthPath` if doctor needs a live check.
|
|
38
|
+
async health() {
|
|
39
|
+
return this.ops
|
|
40
|
+
? { ok: true, latencyMs: 0, details: `${this.ops.size} operations` }
|
|
41
|
+
: { ok: false, latencyMs: 0, details: 'spec not loaded' };
|
|
42
|
+
}
|
|
43
|
+
async introspect() {
|
|
44
|
+
return {
|
|
45
|
+
kind: 'openapi',
|
|
46
|
+
operations: [...this.requireOps().values()].map(({ bodySchema: _b, ...op }) => op),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
listPrimitiveTools() {
|
|
50
|
+
const id = this.id;
|
|
51
|
+
return [
|
|
52
|
+
{
|
|
53
|
+
name: `${id}.list_operations`,
|
|
54
|
+
description: `List the ${id} API operations that can be called.`,
|
|
55
|
+
inputSchema: z.object({}).strict(),
|
|
56
|
+
scopes: ['http:call'],
|
|
57
|
+
readOnly: true,
|
|
58
|
+
handler: async () => {
|
|
59
|
+
const ops = [...this.requireOps().values()].map((o) => ({
|
|
60
|
+
operationId: o.operationId,
|
|
61
|
+
method: o.method,
|
|
62
|
+
path: o.path,
|
|
63
|
+
...(o.summary ? { summary: o.summary } : {}),
|
|
64
|
+
}));
|
|
65
|
+
return { content: [{ type: 'json', data: ops }], metadata: { rows: ops.length } };
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: `${id}.describe_operation`,
|
|
70
|
+
description: `Describe one operation: its parameters and request body schema.`,
|
|
71
|
+
inputSchema: z.object({ operationId: z.string().min(1) }).strict(),
|
|
72
|
+
scopes: ['http:call'],
|
|
73
|
+
readOnly: true,
|
|
74
|
+
handler: async ({ operationId }) => ({
|
|
75
|
+
content: [{ type: 'json', data: this.requireOp(operationId) }],
|
|
76
|
+
}),
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: `${id}.call`,
|
|
80
|
+
description: `Call one operation of the ${id} API by operationId. Only parameters the spec declares are accepted.`,
|
|
81
|
+
inputSchema: z
|
|
82
|
+
.object({
|
|
83
|
+
operationId: z.string().min(1),
|
|
84
|
+
path: z.record(z.string(), Scalar).default({}).describe('Path parameters'),
|
|
85
|
+
query: z
|
|
86
|
+
.record(z.string(), z.union([Scalar, z.array(Scalar)]))
|
|
87
|
+
.default({})
|
|
88
|
+
.describe('Query parameters'),
|
|
89
|
+
body: z.unknown().optional().describe('JSON request body'),
|
|
90
|
+
})
|
|
91
|
+
.strict(),
|
|
92
|
+
scopes: ['http:call'],
|
|
93
|
+
readOnly: this.allowMethods.every((m) => SAFE_METHODS.includes(m)),
|
|
94
|
+
handler: async ({ operationId, path, query, body }, ctx) => {
|
|
95
|
+
const op = this.requireOp(operationId);
|
|
96
|
+
if (body !== undefined && !op.requestBody) {
|
|
97
|
+
throw new McpolyglotError('invalid_args', `Operation "${operationId}" takes no request body`);
|
|
98
|
+
}
|
|
99
|
+
const headers = {
|
|
100
|
+
accept: 'application/json',
|
|
101
|
+
...this.authHeader(),
|
|
102
|
+
};
|
|
103
|
+
if (body !== undefined)
|
|
104
|
+
headers['content-type'] = 'application/json';
|
|
105
|
+
const res = await this.fetch(this.buildUrl(op, path, query), {
|
|
106
|
+
method: op.method,
|
|
107
|
+
headers,
|
|
108
|
+
...(body !== undefined ? { body: JSON.stringify(body) } : {}),
|
|
109
|
+
// A redirect could carry the credentials to another host.
|
|
110
|
+
redirect: 'error',
|
|
111
|
+
signal: ctx.signal,
|
|
112
|
+
});
|
|
113
|
+
const { text, truncated } = await readCapped(res, ctx.limits.maxBytes);
|
|
114
|
+
const isJson = /json/i.test(res.headers.get('content-type') ?? '');
|
|
115
|
+
return {
|
|
116
|
+
content: [
|
|
117
|
+
{
|
|
118
|
+
type: 'json',
|
|
119
|
+
data: {
|
|
120
|
+
status: res.status,
|
|
121
|
+
body: isJson && !truncated && text ? JSON.parse(text) : text,
|
|
122
|
+
truncated,
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
isError: !res.ok,
|
|
127
|
+
metadata: { truncated },
|
|
128
|
+
};
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
];
|
|
132
|
+
}
|
|
133
|
+
generatePerEntityTools(_cfg) {
|
|
134
|
+
return [];
|
|
135
|
+
}
|
|
136
|
+
buildUrl(op, path, query) {
|
|
137
|
+
const invalid = (msg) => new McpolyglotError('invalid_args', msg);
|
|
138
|
+
const used = new Set();
|
|
139
|
+
const pathname = op.path.replace(/\{([^}]+)\}/g, (_m, name) => {
|
|
140
|
+
const v = path[name];
|
|
141
|
+
if (v === undefined)
|
|
142
|
+
throw invalid(`Missing path parameter "${name}"`);
|
|
143
|
+
const s = String(v);
|
|
144
|
+
// encodeURIComponent leaves dots alone, and a `..` segment would climb out of the path.
|
|
145
|
+
if (s === '' || s === '.' || s === '..')
|
|
146
|
+
throw invalid(`Invalid path parameter "${name}"`);
|
|
147
|
+
used.add(name);
|
|
148
|
+
return encodeURIComponent(s);
|
|
149
|
+
});
|
|
150
|
+
for (const k of Object.keys(path)) {
|
|
151
|
+
if (!used.has(k))
|
|
152
|
+
throw invalid(`Unknown path parameter "${k}"`);
|
|
153
|
+
}
|
|
154
|
+
const url = new URL(this.base.href.replace(/\/+$/, '') + pathname);
|
|
155
|
+
const declared = new Set(op.parameters.filter((p) => p.in === 'query').map((p) => p.name));
|
|
156
|
+
for (const [k, v] of Object.entries(query)) {
|
|
157
|
+
if (!declared.has(k))
|
|
158
|
+
throw invalid(`Unknown query parameter "${k}"`);
|
|
159
|
+
for (const item of Array.isArray(v) ? v : [v])
|
|
160
|
+
url.searchParams.append(k, String(item));
|
|
161
|
+
}
|
|
162
|
+
// Host pinning: whatever the spec or the arguments say, the request stays under baseUrl.
|
|
163
|
+
if (url.origin !== this.base.origin || !url.pathname.startsWith(this.base.pathname)) {
|
|
164
|
+
throw new McpolyglotError('forbidden.policy', `Request leaves ${this.base.href}`);
|
|
165
|
+
}
|
|
166
|
+
return url;
|
|
167
|
+
}
|
|
168
|
+
authHeader() {
|
|
169
|
+
const a = this.auth;
|
|
170
|
+
switch (a.type) {
|
|
171
|
+
case 'bearer':
|
|
172
|
+
return { authorization: `Bearer ${a.token}` };
|
|
173
|
+
case 'apiKey':
|
|
174
|
+
return { [a.header]: a.value };
|
|
175
|
+
case 'basic':
|
|
176
|
+
return {
|
|
177
|
+
authorization: `Basic ${Buffer.from(`${a.username}:${a.password}`).toString('base64')}`,
|
|
178
|
+
};
|
|
179
|
+
default:
|
|
180
|
+
return {};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
requireOp(operationId) {
|
|
184
|
+
const op = this.requireOps().get(operationId);
|
|
185
|
+
if (!op) {
|
|
186
|
+
throw new McpolyglotError('not_found', `Operation "${operationId}" is not in the ${this.id} spec or its method is not allowed`);
|
|
187
|
+
}
|
|
188
|
+
return op;
|
|
189
|
+
}
|
|
190
|
+
requireOps() {
|
|
191
|
+
if (!this.ops) {
|
|
192
|
+
throw new McpolyglotError('connector.not_initialized', 'OpenApiConnector spec not loaded');
|
|
193
|
+
}
|
|
194
|
+
return this.ops;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/** Operations of the spec whose method is allowed, keyed by operationId. */
|
|
198
|
+
function collectOperations(doc, allow) {
|
|
199
|
+
// ponytail: resolves local `#/...` refs one level deep. Nested refs inside a body schema are
|
|
200
|
+
// returned as-is; pull in a dereferencer if models need them expanded.
|
|
201
|
+
const deref = (v) => {
|
|
202
|
+
const ref = v?.['$ref'];
|
|
203
|
+
if (typeof ref !== 'string')
|
|
204
|
+
return v;
|
|
205
|
+
if (!ref.startsWith('#/'))
|
|
206
|
+
return undefined;
|
|
207
|
+
return ref
|
|
208
|
+
.slice(2)
|
|
209
|
+
.split('/')
|
|
210
|
+
.reduce((o, k) => o?.[k.replace(/~1/g, '/').replace(/~0/g, '~')], doc);
|
|
211
|
+
};
|
|
212
|
+
const ops = new Map();
|
|
213
|
+
for (const [path, rawItem] of Object.entries(doc['paths'] ?? {})) {
|
|
214
|
+
const item = deref(rawItem) ?? {};
|
|
215
|
+
for (const method of METHODS) {
|
|
216
|
+
const raw = item[method.toLowerCase()];
|
|
217
|
+
if (!raw || !allow.includes(method))
|
|
218
|
+
continue;
|
|
219
|
+
const params = [item['parameters'], raw['parameters']]
|
|
220
|
+
.flatMap((p) => (Array.isArray(p) ? p : []))
|
|
221
|
+
.map(deref)
|
|
222
|
+
// ponytail: header and cookie parameters are not settable by the model; only config
|
|
223
|
+
// auth sets headers. Add an allow-list if an API needs e.g. a version header.
|
|
224
|
+
.filter((p) => p?.['in'] === 'query' || p?.['in'] === 'path');
|
|
225
|
+
const body = deref(raw['requestBody']);
|
|
226
|
+
const content = body?.['content'] ?? {};
|
|
227
|
+
const contentType = 'application/json' in content ? 'application/json' : Object.keys(content)[0];
|
|
228
|
+
const schema = contentType
|
|
229
|
+
? content[contentType]?.['schema']
|
|
230
|
+
: undefined;
|
|
231
|
+
const schemaRef = schema?.['$ref'];
|
|
232
|
+
const operationId = String(raw['operationId'] ?? `${method} ${path}`);
|
|
233
|
+
ops.set(operationId, {
|
|
234
|
+
operationId,
|
|
235
|
+
method,
|
|
236
|
+
path,
|
|
237
|
+
...(typeof raw['summary'] === 'string' ? { summary: raw['summary'] } : {}),
|
|
238
|
+
// Later (operation-level) entries override path-level ones with the same name.
|
|
239
|
+
parameters: [
|
|
240
|
+
...new Map(params.map((p) => [
|
|
241
|
+
`${String(p['in'])}:${String(p['name'])}`,
|
|
242
|
+
{
|
|
243
|
+
name: String(p['name']),
|
|
244
|
+
in: p['in'],
|
|
245
|
+
required: p['required'] === true,
|
|
246
|
+
type: String(p['schema']?.['type'] ?? 'string'),
|
|
247
|
+
},
|
|
248
|
+
])).values(),
|
|
249
|
+
],
|
|
250
|
+
...(contentType
|
|
251
|
+
? {
|
|
252
|
+
requestBody: {
|
|
253
|
+
contentType,
|
|
254
|
+
...(typeof schemaRef === 'string' ? { schemaRef } : {}),
|
|
255
|
+
},
|
|
256
|
+
bodySchema: deref(schema),
|
|
257
|
+
}
|
|
258
|
+
: {}),
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return ops;
|
|
263
|
+
}
|
|
264
|
+
/** Reads at most `maxBytes` of the body, so a huge response never sits in memory. */
|
|
265
|
+
async function readCapped(res, maxBytes) {
|
|
266
|
+
if (!res.body)
|
|
267
|
+
return { text: '', truncated: false };
|
|
268
|
+
const reader = res.body.getReader();
|
|
269
|
+
const chunks = [];
|
|
270
|
+
let size = 0;
|
|
271
|
+
for (;;) {
|
|
272
|
+
const { done, value } = await reader.read();
|
|
273
|
+
if (done)
|
|
274
|
+
return { text: Buffer.concat(chunks).toString('utf8'), truncated: false };
|
|
275
|
+
chunks.push(value);
|
|
276
|
+
size += value.byteLength;
|
|
277
|
+
if (size > maxBytes) {
|
|
278
|
+
await reader.cancel();
|
|
279
|
+
return {
|
|
280
|
+
text: Buffer.concat(chunks).subarray(0, maxBytes).toString('utf8'),
|
|
281
|
+
truncated: true,
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=connector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mcpolyglot/connector-openapi",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "OpenAPI connector for mcpolyglot. Calls only operations in the spec, with a method allow-list and the host pinned to the configured base URL.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/ishay60/mcpolyglot.git",
|
|
9
|
+
"directory": "packages/connector-openapi"
|
|
10
|
+
},
|
|
11
|
+
"type": "module",
|
|
12
|
+
"main": "./dist/index.js",
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"import": "./dist/index.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist"
|
|
22
|
+
],
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"yaml": "^2.9.0",
|
|
25
|
+
"zod": "^4.4.3",
|
|
26
|
+
"@mcpolyglot/core": "^0.3.0"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@types/node": "^25.6.0",
|
|
30
|
+
"typescript": "^6.0.3",
|
|
31
|
+
"vitest": "^2.1.1"
|
|
32
|
+
},
|
|
33
|
+
"publishConfig": {
|
|
34
|
+
"access": "public"
|
|
35
|
+
},
|
|
36
|
+
"scripts": {
|
|
37
|
+
"build": "tsc -p tsconfig.json",
|
|
38
|
+
"dev": "tsc -p tsconfig.json --watch",
|
|
39
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
40
|
+
"test": "vitest run --passWithNoTests",
|
|
41
|
+
"clean": "rm -rf dist .turbo *.tsbuildinfo"
|
|
42
|
+
}
|
|
43
|
+
}
|