react-native-mcp-kit 3.0.1 → 4.0.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/README.md +22 -10
- package/dist/bin/ios-hid +0 -0
- package/dist/client/contexts/McpContext/McpProvider.d.ts.map +1 -1
- package/dist/client/contexts/McpContext/McpProvider.js +5 -5
- package/dist/client/contexts/McpContext/McpProvider.js.map +1 -1
- package/dist/client/core/McpClient.d.ts.map +1 -1
- package/dist/client/core/McpClient.js +26 -32
- package/dist/client/core/McpClient.js.map +1 -1
- package/dist/modules/alert/alert.d.ts.map +1 -1
- package/dist/modules/alert/alert.js +2 -5
- package/dist/modules/alert/alert.js.map +1 -1
- package/dist/modules/console/console.d.ts.map +1 -1
- package/dist/modules/console/console.js +32 -107
- package/dist/modules/console/console.js.map +1 -1
- package/dist/modules/console/types.d.ts +1 -0
- package/dist/modules/console/types.d.ts.map +1 -1
- package/dist/modules/device/device.d.ts.map +1 -1
- package/dist/modules/device/device.js +224 -133
- package/dist/modules/device/device.js.map +1 -1
- package/dist/modules/errors/errors.d.ts.map +1 -1
- package/dist/modules/errors/errors.js +19 -36
- package/dist/modules/errors/errors.js.map +1 -1
- package/dist/modules/fiberTree/children.d.ts +49 -0
- package/dist/modules/fiberTree/children.d.ts.map +1 -0
- package/dist/modules/fiberTree/children.js +182 -0
- package/dist/modules/fiberTree/children.js.map +1 -0
- package/dist/modules/fiberTree/constants.d.ts +13 -0
- package/dist/modules/fiberTree/constants.d.ts.map +1 -0
- package/dist/modules/fiberTree/constants.js +24 -0
- package/dist/modules/fiberTree/constants.js.map +1 -0
- package/dist/modules/fiberTree/fiberTree.d.ts +3 -6
- package/dist/modules/fiberTree/fiberTree.d.ts.map +1 -1
- package/dist/modules/fiberTree/fiberTree.js +219 -1080
- package/dist/modules/fiberTree/fiberTree.js.map +1 -1
- package/dist/modules/fiberTree/finder.d.ts +60 -0
- package/dist/modules/fiberTree/finder.d.ts.map +1 -0
- package/dist/modules/fiberTree/finder.js +107 -0
- package/dist/modules/fiberTree/finder.js.map +1 -0
- package/dist/modules/fiberTree/hooks.d.ts +103 -0
- package/dist/modules/fiberTree/hooks.d.ts.map +1 -0
- package/dist/modules/fiberTree/hooks.js +532 -0
- package/dist/modules/fiberTree/hooks.js.map +1 -0
- package/dist/modules/fiberTree/projection.d.ts +49 -0
- package/dist/modules/fiberTree/projection.d.ts.map +1 -0
- package/dist/modules/fiberTree/projection.js +82 -0
- package/dist/modules/fiberTree/projection.js.map +1 -0
- package/dist/modules/fiberTree/query.d.ts +56 -0
- package/dist/modules/fiberTree/query.d.ts.map +1 -0
- package/dist/modules/fiberTree/query.js +151 -0
- package/dist/modules/fiberTree/query.js.map +1 -0
- package/dist/modules/fiberTree/redact.d.ts +24 -0
- package/dist/modules/fiberTree/redact.d.ts.map +1 -0
- package/dist/modules/fiberTree/redact.js +51 -0
- package/dist/modules/fiberTree/redact.js.map +1 -0
- package/dist/modules/fiberTree/types.d.ts +7 -0
- package/dist/modules/fiberTree/types.d.ts.map +1 -1
- package/dist/modules/fiberTree/utils.d.ts +8 -2
- package/dist/modules/fiberTree/utils.d.ts.map +1 -1
- package/dist/modules/fiberTree/utils.js +79 -78
- package/dist/modules/fiberTree/utils.js.map +1 -1
- package/dist/modules/fiberTree/viewport.d.ts +28 -0
- package/dist/modules/fiberTree/viewport.d.ts.map +1 -0
- package/dist/modules/fiberTree/viewport.js +50 -0
- package/dist/modules/fiberTree/viewport.js.map +1 -0
- package/dist/modules/fiberTree/waitFor.d.ts +52 -0
- package/dist/modules/fiberTree/waitFor.d.ts.map +1 -0
- package/dist/modules/fiberTree/waitFor.js +98 -0
- package/dist/modules/fiberTree/waitFor.js.map +1 -0
- package/dist/modules/logBox/logBox.d.ts.map +1 -1
- package/dist/modules/logBox/logBox.js +59 -66
- package/dist/modules/logBox/logBox.js.map +1 -1
- package/dist/modules/navigation/navigation.d.ts.map +1 -1
- package/dist/modules/navigation/navigation.js +115 -114
- package/dist/modules/navigation/navigation.js.map +1 -1
- package/dist/modules/network/network.d.ts.map +1 -1
- package/dist/modules/network/network.js +78 -197
- package/dist/modules/network/network.js.map +1 -1
- package/dist/modules/network/types.d.ts +23 -27
- package/dist/modules/network/types.d.ts.map +1 -1
- package/dist/modules/reactQuery/reactQuery.d.ts.map +1 -1
- package/dist/modules/reactQuery/reactQuery.js +46 -52
- package/dist/modules/reactQuery/reactQuery.js.map +1 -1
- package/dist/modules/storage/storage.d.ts.map +1 -1
- package/dist/modules/storage/storage.js +20 -3
- package/dist/modules/storage/storage.js.map +1 -1
- package/dist/server/host/tools/input.js +2 -2
- package/dist/server/host/tools/input.js.map +1 -1
- package/dist/server/mcpServer.d.ts.map +1 -1
- package/dist/server/mcpServer.js +43 -3
- package/dist/server/mcpServer.js.map +1 -1
- package/dist/server/metro/eventCapture.d.ts +0 -2
- package/dist/server/metro/eventCapture.d.ts.map +1 -1
- package/dist/server/metro/eventCapture.js +1 -2
- package/dist/server/metro/eventCapture.js.map +1 -1
- package/dist/server/metro/tools/events.d.ts.map +1 -1
- package/dist/server/metro/tools/events.js +11 -11
- package/dist/server/metro/tools/events.js.map +1 -1
- package/dist/shared/projection/projectValue.d.ts +90 -0
- package/dist/shared/projection/projectValue.d.ts.map +1 -0
- package/dist/shared/projection/projectValue.js +322 -0
- package/dist/shared/projection/projectValue.js.map +1 -0
- package/dist/shared/projection/redact.d.ts +31 -0
- package/dist/shared/projection/redact.d.ts.map +1 -0
- package/dist/shared/projection/redact.js +78 -0
- package/dist/shared/projection/redact.js.map +1 -0
- package/dist/shared/projection/resolvePath.d.ts +45 -0
- package/dist/shared/projection/resolvePath.d.ts.map +1 -0
- package/dist/shared/projection/resolvePath.js +211 -0
- package/dist/shared/projection/resolvePath.js.map +1 -0
- package/dist/shared/rn/core.d.ts +48 -0
- package/dist/shared/rn/core.d.ts.map +1 -0
- package/dist/shared/rn/core.js +100 -0
- package/dist/shared/rn/core.js.map +1 -0
- package/dist/shared/rn/deviceInfo.d.ts +40 -0
- package/dist/shared/rn/deviceInfo.d.ts.map +1 -0
- package/dist/shared/rn/deviceInfo.js +78 -0
- package/dist/shared/rn/deviceInfo.js.map +1 -0
- package/package.json +2 -2
- package/dist/client/hooks/useMcpState.d.ts +0 -3
- package/dist/client/hooks/useMcpState.d.ts.map +0 -1
- package/dist/client/hooks/useMcpState.js +0 -20
- package/dist/client/hooks/useMcpState.js.map +0 -1
- package/dist/server/canonicalize.d.ts +0 -8
- package/dist/server/canonicalize.d.ts.map +0 -1
- package/dist/server/canonicalize.js +0 -23
- package/dist/server/canonicalize.js.map +0 -1
- package/dist/server/host/modules/screenshot.d.ts +0 -4
- package/dist/server/host/modules/screenshot.d.ts.map +0 -1
- package/dist/server/host/modules/screenshot.js +0 -615
- package/dist/server/host/modules/screenshot.js.map +0 -1
- package/dist/server/host/tools/connectionStatus.d.ts +0 -9
- package/dist/server/host/tools/connectionStatus.d.ts.map +0 -1
- package/dist/server/host/tools/connectionStatus.js +0 -39
- package/dist/server/host/tools/connectionStatus.js.map +0 -1
- package/dist/server/host/tools/symbolicate.d.ts +0 -3
- package/dist/server/host/tools/symbolicate.d.ts.map +0 -1
- package/dist/server/host/tools/symbolicate.js +0 -209
- package/dist/server/host/tools/symbolicate.js.map +0 -1
- package/dist/server/host/wda.d.ts +0 -15
- package/dist/server/host/wda.d.ts.map +0 -1
- package/dist/server/host/wda.js +0 -100
- package/dist/server/host/wda.js.map +0 -1
- package/dist/server/inputSchemaToZod.d.ts +0 -19
- package/dist/server/inputSchemaToZod.d.ts.map +0 -1
- package/dist/server/inputSchemaToZod.js +0 -89
- package/dist/server/inputSchemaToZod.js.map +0 -1
- package/dist/server/metro/tools/openUrl.d.ts +0 -3
- package/dist/server/metro/tools/openUrl.d.ts.map +0 -1
- package/dist/server/metro/tools/openUrl.js +0 -71
- package/dist/server/metro/tools/openUrl.js.map +0 -1
- package/dist/shared/slice.d.ts +0 -16
- package/dist/shared/slice.d.ts.map +0 -1
- package/dist/shared/slice.js +0 -29
- package/dist/shared/slice.js.map +0 -1
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.openUrlTool = void 0;
|
|
4
|
-
const resolveMetroUrl_1 = require("../../../server/metro/resolveMetroUrl");
|
|
5
|
-
const METRO_TIMEOUT_MS = 5_000;
|
|
6
|
-
const openUrlTool = () => {
|
|
7
|
-
return {
|
|
8
|
-
description: `Open a URL in the default browser on the machine running Metro — POSTs to Metro's \`/open-url\` endpoint.
|
|
9
|
-
|
|
10
|
-
Useful for handing off to a view the agent has discovered but can't usefully display itself: a CI job page, a Grafana dashboard, a PR diff, a deployed preview build. This runs \`open\` on macOS / \`xdg-open\` on Linux against the host, not on the mobile device. For deep-linking into the app use navigation module or iOS/Android URL schemes instead.
|
|
11
|
-
|
|
12
|
-
Returns { ok: true, url, metroUrl } on success.`,
|
|
13
|
-
handler: async (args, ctx) => {
|
|
14
|
-
const url = typeof args.url === 'string' ? args.url : undefined;
|
|
15
|
-
if (!url) {
|
|
16
|
-
return { error: '`url` is required.' };
|
|
17
|
-
}
|
|
18
|
-
const metroUrl = (0, resolveMetroUrl_1.resolveMetroUrl)(args, ctx);
|
|
19
|
-
try {
|
|
20
|
-
const controller = new AbortController();
|
|
21
|
-
const timer = setTimeout(() => {
|
|
22
|
-
controller.abort();
|
|
23
|
-
}, METRO_TIMEOUT_MS);
|
|
24
|
-
const res = await fetch(`${metroUrl}/open-url`, {
|
|
25
|
-
body: JSON.stringify({ url }),
|
|
26
|
-
headers: { 'Content-Type': 'application/json' },
|
|
27
|
-
method: 'POST',
|
|
28
|
-
signal: controller.signal,
|
|
29
|
-
});
|
|
30
|
-
clearTimeout(timer);
|
|
31
|
-
if (!res.ok) {
|
|
32
|
-
return {
|
|
33
|
-
error: `Metro responded ${res.status}`,
|
|
34
|
-
metroUrl,
|
|
35
|
-
ok: false,
|
|
36
|
-
skipped: true,
|
|
37
|
-
url,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
return { metroUrl, ok: true, url };
|
|
41
|
-
}
|
|
42
|
-
catch (err) {
|
|
43
|
-
return {
|
|
44
|
-
error: `Metro at ${metroUrl} unreachable: ${err.message}`,
|
|
45
|
-
metroUrl,
|
|
46
|
-
ok: false,
|
|
47
|
-
skipped: true,
|
|
48
|
-
url,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
inputSchema: {
|
|
53
|
-
clientId: {
|
|
54
|
-
description: 'Target client ID — used to pick up the Metro URL the app was loaded from (falls back to `metroUrl` or the hardcoded default).',
|
|
55
|
-
type: 'string',
|
|
56
|
-
},
|
|
57
|
-
metroUrl: {
|
|
58
|
-
description: `Base URL of the Metro dev server. Overrides the URL reported by the connected client. Default "http://localhost:8081".`,
|
|
59
|
-
type: 'string',
|
|
60
|
-
},
|
|
61
|
-
url: {
|
|
62
|
-
description: 'Absolute URL to open on the host (http/https). Deep-linking into the mobile app is a different concern — use navigation tools instead.',
|
|
63
|
-
examples: ['https://example.com/dashboard', 'https://github.com/org/repo/pull/42'],
|
|
64
|
-
type: 'string',
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
timeout: METRO_TIMEOUT_MS + 1_000,
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
exports.openUrlTool = openUrlTool;
|
|
71
|
-
//# sourceMappingURL=openUrl.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openUrl.js","sourceRoot":"","sources":["../../../../src/server/metro/tools/openUrl.ts"],"names":[],"mappings":";;;AACA,oEAAiE;AAEjE,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAExB,MAAM,WAAW,GAAG,GAAoB,EAAE;IAC/C,OAAO;QACL,WAAW,EAAE;;;;gDAI+B;QAC5C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;YACzC,CAAC;YACD,MAAM,QAAQ,GAAG,IAAA,iCAAe,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC5B,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC,EAAE,gBAAgB,CAAC,CAAC;gBACrB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,WAAW,EAAE;oBAC9C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;oBAC7B,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBACH,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACZ,OAAO;wBACL,KAAK,EAAE,mBAAmB,GAAG,CAAC,MAAM,EAAE;wBACtC,QAAQ;wBACR,EAAE,EAAE,KAAK;wBACT,OAAO,EAAE,IAAI;wBACb,GAAG;qBACJ,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,KAAK,EAAE,YAAY,QAAQ,iBAAkB,GAAa,CAAC,OAAO,EAAE;oBACpE,QAAQ;oBACR,EAAE,EAAE,KAAK;oBACT,OAAO,EAAE,IAAI;oBACb,GAAG;iBACJ,CAAC;YACJ,CAAC;QACH,CAAC;QACD,WAAW,EAAE;YACX,QAAQ,EAAE;gBACR,WAAW,EACT,+HAA+H;gBACjI,IAAI,EAAE,QAAQ;aACf;YACD,QAAQ,EAAE;gBACR,WAAW,EAAE,wHAAwH;gBACrI,IAAI,EAAE,QAAQ;aACf;YACD,GAAG,EAAE;gBACH,WAAW,EACT,wIAAwI;gBAC1I,QAAQ,EAAE,CAAC,+BAA+B,EAAE,qCAAqC,CAAC;gBAClF,IAAI,EAAE,QAAQ;aACf;SACF;QACD,OAAO,EAAE,gBAAgB,GAAG,KAAK;KAClC,CAAC;AACJ,CAAC,CAAC;AAhEW,QAAA,WAAW,eAgEtB"}
|
package/dist/shared/slice.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared `slice` input shape for tools that expose a slice-style window into
|
|
3
|
-
* a time-ordered buffer. Two-tuple mirrors `Array.prototype.slice(start, end?)`:
|
|
4
|
-
* negative indices count from the end, so [-10] = last ten, [-20, -10] = the
|
|
5
|
-
* ten before those, [0, 50] = the oldest fifty.
|
|
6
|
-
*/
|
|
7
|
-
export type SliceInput = [number] | [number, number];
|
|
8
|
-
/**
|
|
9
|
-
* Coerce a tool-argument value to a well-formed SliceInput, or undefined when
|
|
10
|
-
* the input is missing/malformed. Callers pick their own default behavior
|
|
11
|
-
* (typically either "return all" or "last N").
|
|
12
|
-
*/
|
|
13
|
-
export declare const parseSliceArg: (raw: unknown) => SliceInput | undefined;
|
|
14
|
-
export declare const applySlice: <T>(arr: T[], slice: SliceInput | undefined) => T[];
|
|
15
|
-
export declare const sliceSchemaDescription: (defaultHint: string) => string;
|
|
16
|
-
//# sourceMappingURL=slice.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../src/shared/slice.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAS,OAAO,KAAG,UAAU,GAAG,SAOzD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,CAAC,OAAO,CAAC,EAAE,SAAS,UAAU,GAAG,SAAS,KAAG,CAAC,EAIxE,CAAC;AAEF,eAAO,MAAM,sBAAsB,gBAAiB,MAAM,KAAG,MAE5D,CAAC"}
|
package/dist/shared/slice.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sliceSchemaDescription = exports.applySlice = exports.parseSliceArg = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Coerce a tool-argument value to a well-formed SliceInput, or undefined when
|
|
6
|
-
* the input is missing/malformed. Callers pick their own default behavior
|
|
7
|
-
* (typically either "return all" or "last N").
|
|
8
|
-
*/
|
|
9
|
-
const parseSliceArg = (raw) => {
|
|
10
|
-
if (!Array.isArray(raw) || raw.length === 0 || typeof raw[0] !== 'number') {
|
|
11
|
-
return undefined;
|
|
12
|
-
}
|
|
13
|
-
const start = raw[0];
|
|
14
|
-
const end = typeof raw[1] === 'number' ? raw[1] : undefined;
|
|
15
|
-
return end === undefined ? [start] : [start, end];
|
|
16
|
-
};
|
|
17
|
-
exports.parseSliceArg = parseSliceArg;
|
|
18
|
-
const applySlice = (arr, slice) => {
|
|
19
|
-
if (!slice)
|
|
20
|
-
return arr;
|
|
21
|
-
const [start, end] = slice;
|
|
22
|
-
return end === undefined ? arr.slice(start) : arr.slice(start, end);
|
|
23
|
-
};
|
|
24
|
-
exports.applySlice = applySlice;
|
|
25
|
-
const sliceSchemaDescription = (defaultHint) => {
|
|
26
|
-
return `[start, end?] window over the returned list (Array.prototype.slice semantics, negative indices count from the end). ${defaultHint} Examples: [-10] for the newest ten, [-20, -10] for the ten before those, [0, 50] for the oldest fifty.`;
|
|
27
|
-
};
|
|
28
|
-
exports.sliceSchemaDescription = sliceSchemaDescription;
|
|
29
|
-
//# sourceMappingURL=slice.js.map
|
package/dist/shared/slice.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slice.js","sourceRoot":"","sources":["../../src/shared/slice.ts"],"names":[],"mappings":";;;AAQA;;;;GAIG;AACI,MAAM,aAAa,GAAG,CAAC,GAAY,EAA0B,EAAE;IACpE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1E,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC,CAAC;AAPW,QAAA,aAAa,iBAOxB;AAEK,MAAM,UAAU,GAAG,CAAI,GAAQ,EAAE,KAA6B,EAAO,EAAE;IAC5E,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC;IACvB,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtE,CAAC,CAAC;AAJW,QAAA,UAAU,cAIrB;AAEK,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAU,EAAE;IACpE,OAAO,uHAAuH,WAAW,yGAAyG,CAAC;AACrP,CAAC,CAAC;AAFW,QAAA,sBAAsB,0BAEjC"}
|