@exileum/meta-mcp 5.0.0 → 7.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 +83 -12
- package/dist/config.d.ts +10 -8
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +65 -8
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -59
- package/dist/index.js.map +1 -1
- package/dist/register-all.d.ts +4 -0
- package/dist/register-all.d.ts.map +1 -0
- package/dist/register-all.js +41 -0
- package/dist/register-all.js.map +1 -0
- package/dist/resources/instagram.d.ts.map +1 -1
- package/dist/resources/instagram.js +18 -12
- package/dist/resources/instagram.js.map +1 -1
- package/dist/resources/threads.d.ts.map +1 -1
- package/dist/resources/threads.js +18 -12
- package/dist/resources/threads.js.map +1 -1
- package/dist/schemas.d.ts +14 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +14 -0
- package/dist/schemas.js.map +1 -1
- package/dist/services/meta-client.d.ts +101 -5
- package/dist/services/meta-client.d.ts.map +1 -1
- package/dist/services/meta-client.js +273 -69
- package/dist/services/meta-client.js.map +1 -1
- package/dist/tools/annotations.d.ts +6 -0
- package/dist/tools/annotations.d.ts.map +1 -0
- package/dist/tools/annotations.js +27 -0
- package/dist/tools/annotations.js.map +1 -0
- package/dist/tools/instagram/comments.d.ts.map +1 -1
- package/dist/tools/instagram/comments.js +64 -33
- package/dist/tools/instagram/comments.js.map +1 -1
- package/dist/tools/instagram/hashtags.d.ts.map +1 -1
- package/dist/tools/instagram/hashtags.js +37 -18
- package/dist/tools/instagram/hashtags.js.map +1 -1
- package/dist/tools/instagram/media.d.ts.map +1 -1
- package/dist/tools/instagram/media.js +47 -24
- package/dist/tools/instagram/media.js.map +1 -1
- package/dist/tools/instagram/mentions.d.ts.map +1 -1
- package/dist/tools/instagram/mentions.js +21 -10
- package/dist/tools/instagram/mentions.js.map +1 -1
- package/dist/tools/instagram/messaging.d.ts.map +1 -1
- package/dist/tools/instagram/messaging.js +64 -27
- package/dist/tools/instagram/messaging.js.map +1 -1
- package/dist/tools/instagram/profile.d.ts.map +1 -1
- package/dist/tools/instagram/profile.js +54 -31
- package/dist/tools/instagram/profile.js.map +1 -1
- package/dist/tools/instagram/publishing.d.ts.map +1 -1
- package/dist/tools/instagram/publishing.js +83 -57
- package/dist/tools/instagram/publishing.js.map +1 -1
- package/dist/tools/meta/auth.d.ts.map +1 -1
- package/dist/tools/meta/auth.js +47 -21
- package/dist/tools/meta/auth.js.map +1 -1
- package/dist/tools/threads/insights.d.ts.map +1 -1
- package/dist/tools/threads/insights.js +21 -10
- package/dist/tools/threads/insights.js.map +1 -1
- package/dist/tools/threads/media.d.ts.map +1 -1
- package/dist/tools/threads/media.js +38 -23
- package/dist/tools/threads/media.js.map +1 -1
- package/dist/tools/threads/mentions.d.ts.map +1 -1
- package/dist/tools/threads/mentions.js +12 -6
- package/dist/tools/threads/mentions.js.map +1 -1
- package/dist/tools/threads/profile.d.ts.map +1 -1
- package/dist/tools/threads/profile.js +8 -2
- package/dist/tools/threads/profile.js.map +1 -1
- package/dist/tools/threads/publishing.d.ts +7 -0
- package/dist/tools/threads/publishing.d.ts.map +1 -1
- package/dist/tools/threads/publishing.js +168 -76
- package/dist/tools/threads/publishing.js.map +1 -1
- package/dist/tools/threads/replies.d.ts.map +1 -1
- package/dist/tools/threads/replies.js +48 -27
- package/dist/tools/threads/replies.js.map +1 -1
- package/dist/utils/container.d.ts +4 -2
- package/dist/utils/container.d.ts.map +1 -1
- package/dist/utils/container.js +8 -3
- package/dist/utils/container.js.map +1 -1
- package/dist/utils/errors.d.ts +2 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +27 -10
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/response.d.ts +11 -0
- package/dist/utils/response.d.ts.map +1 -0
- package/dist/utils/response.js +6 -0
- package/dist/utils/response.js.map +1 -0
- package/package.json +10 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { metaId } from "../../schemas.js";
|
|
2
3
|
import { formatErrorResponse } from "../../utils/errors.js";
|
|
4
|
+
import { formatResponse } from "../../utils/response.js";
|
|
5
|
+
import { READ_ONLY_TOOL } from "../annotations.js";
|
|
3
6
|
const THREADS_MEDIA_FIELDS = [
|
|
4
7
|
"id",
|
|
5
8
|
"media_product_type",
|
|
@@ -27,13 +30,17 @@ export const authorUsernameSchema = z
|
|
|
27
30
|
.describe("Filter results to posts by exact username (server-side filter via Threads /keyword_search; per Threads API the username must be an exact match without '@'; leading '@' characters and surrounding whitespace are auto-stripped if provided)");
|
|
28
31
|
export function registerThreadsMediaTools(server, client) {
|
|
29
32
|
// ─── threads_get_posts ───────────────────────────────────────
|
|
30
|
-
server.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
server.registerTool("threads_get_posts", {
|
|
34
|
+
description: "Get a list of Threads posts published by the authenticated user.",
|
|
35
|
+
inputSchema: {
|
|
36
|
+
limit: z.number().optional().describe("Number of results (default 25)"),
|
|
37
|
+
since: z.string().optional().describe("Start date (ISO 8601 or Unix timestamp)"),
|
|
38
|
+
until: z.string().optional().describe("End date (ISO 8601 or Unix timestamp)"),
|
|
39
|
+
after: z.string().optional().describe("Pagination cursor"),
|
|
40
|
+
before: z.string().optional().describe("Pagination cursor"),
|
|
41
|
+
fields: z.string().optional().default(THREADS_MEDIA_FIELDS).describe(`Comma-separated fields (default: ${THREADS_MEDIA_FIELDS})`),
|
|
42
|
+
},
|
|
43
|
+
annotations: READ_ONLY_TOOL,
|
|
37
44
|
}, async ({ limit, since, until, after, before, fields }) => {
|
|
38
45
|
try {
|
|
39
46
|
const params = { fields };
|
|
@@ -48,36 +55,44 @@ export function registerThreadsMediaTools(server, client) {
|
|
|
48
55
|
if (before)
|
|
49
56
|
params.before = before;
|
|
50
57
|
const { data, rateLimit } = await client.threads("GET", `/${client.threadsUserId}/threads`, params);
|
|
51
|
-
return
|
|
58
|
+
return formatResponse(data, rateLimit);
|
|
52
59
|
}
|
|
53
60
|
catch (error) {
|
|
54
61
|
return formatErrorResponse(error, "Get posts");
|
|
55
62
|
}
|
|
56
63
|
});
|
|
57
64
|
// ─── threads_get_post ────────────────────────────────────────
|
|
58
|
-
server.
|
|
59
|
-
|
|
60
|
-
|
|
65
|
+
server.registerTool("threads_get_post", {
|
|
66
|
+
description: "Get details of a specific Threads post.",
|
|
67
|
+
inputSchema: {
|
|
68
|
+
post_id: metaId.describe("Threads post ID"),
|
|
69
|
+
fields: z.string().optional().default(THREADS_MEDIA_FIELDS).describe(`Comma-separated fields (default: ${THREADS_MEDIA_FIELDS})`),
|
|
70
|
+
},
|
|
71
|
+
annotations: READ_ONLY_TOOL,
|
|
61
72
|
}, async ({ post_id, fields }) => {
|
|
62
73
|
try {
|
|
63
74
|
const { data, rateLimit } = await client.threads("GET", `/${post_id}`, { fields });
|
|
64
|
-
return
|
|
75
|
+
return formatResponse(data, rateLimit);
|
|
65
76
|
}
|
|
66
77
|
catch (error) {
|
|
67
78
|
return formatErrorResponse(error, "Get post");
|
|
68
79
|
}
|
|
69
80
|
});
|
|
70
81
|
// ─── threads_search_posts ────────────────────────────────────
|
|
71
|
-
server.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
82
|
+
server.registerTool("threads_search_posts", {
|
|
83
|
+
description: "Search for public Threads posts by keyword or topic tag. Requires threads_keyword_search permission.",
|
|
84
|
+
inputSchema: {
|
|
85
|
+
q: z.string().describe("Search keyword or query"),
|
|
86
|
+
search_type: z.enum(["TOP", "RECENT"]).optional().describe("Result ordering: TOP (default) or RECENT"),
|
|
87
|
+
search_mode: z.enum(["KEYWORD", "TAG"]).optional().describe("Search by KEYWORD (default) or TAG"),
|
|
88
|
+
media_type: z.enum(["TEXT", "IMAGE", "VIDEO"]).optional().describe("Filter results by media type"),
|
|
89
|
+
author_username: authorUsernameSchema,
|
|
90
|
+
since: z.string().optional().describe("Start date (Unix timestamp)"),
|
|
91
|
+
until: z.string().optional().describe("End date (Unix timestamp)"),
|
|
92
|
+
limit: z.number().min(1).max(100).optional().describe("Number of results (max 100, default 25)"),
|
|
93
|
+
after: z.string().optional().describe("Pagination cursor"),
|
|
94
|
+
},
|
|
95
|
+
annotations: READ_ONLY_TOOL,
|
|
81
96
|
}, async ({ q, search_type, search_mode, media_type, author_username, since, until, limit, after }) => {
|
|
82
97
|
try {
|
|
83
98
|
const params = {
|
|
@@ -101,7 +116,7 @@ export function registerThreadsMediaTools(server, client) {
|
|
|
101
116
|
if (after)
|
|
102
117
|
params.after = after;
|
|
103
118
|
const { data, rateLimit } = await client.threads("GET", `/keyword_search`, params);
|
|
104
|
-
return
|
|
119
|
+
return formatResponse(data, rateLimit);
|
|
105
120
|
}
|
|
106
121
|
catch (error) {
|
|
107
122
|
return formatErrorResponse(error, "Search posts");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/tools/threads/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/tools/threads/media.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mentions.d.ts","sourceRoot":"","sources":["../../../src/tools/threads/mentions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"mentions.d.ts","sourceRoot":"","sources":["../../../src/tools/threads/mentions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAc,MAAM,+BAA+B,CAAC;AAKvE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CA8BxF"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { formatErrorResponse } from "../../utils/errors.js";
|
|
3
|
+
import { formatResponse } from "../../utils/response.js";
|
|
4
|
+
import { READ_ONLY_TOOL } from "../annotations.js";
|
|
3
5
|
export function registerThreadsMentionsTools(server, client) {
|
|
4
6
|
// ─── threads_get_mentions ────────────────────────────────────
|
|
5
|
-
server.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
server.registerTool("threads_get_mentions", {
|
|
8
|
+
description: "List Threads posts where the authenticated user has been @mentioned. Requires the threads_manage_mentions permission. Posts from private profiles are excluded by the API. Without advanced access approval, only mentions from designated app testers are returned.",
|
|
9
|
+
inputSchema: {
|
|
10
|
+
limit: z.number().optional().describe("Number of results"),
|
|
11
|
+
since: z.string().optional().describe("Start Unix timestamp (must be >= 1688540400)"),
|
|
12
|
+
until: z.string().optional().describe("End Unix timestamp (must be <= now)"),
|
|
13
|
+
after: z.string().optional().describe("Pagination cursor"),
|
|
14
|
+
},
|
|
15
|
+
annotations: READ_ONLY_TOOL,
|
|
10
16
|
}, async ({ limit, since, until, after }) => {
|
|
11
17
|
try {
|
|
12
18
|
const params = {
|
|
@@ -21,7 +27,7 @@ export function registerThreadsMentionsTools(server, client) {
|
|
|
21
27
|
if (after)
|
|
22
28
|
params.after = after;
|
|
23
29
|
const { data, rateLimit } = await client.threads("GET", `/${client.threadsUserId}/mentions`, params);
|
|
24
|
-
return
|
|
30
|
+
return formatResponse(data, rateLimit);
|
|
25
31
|
}
|
|
26
32
|
catch (error) {
|
|
27
33
|
return formatErrorResponse(error, "Get mentions");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mentions.js","sourceRoot":"","sources":["../../../src/tools/threads/mentions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"mentions.js","sourceRoot":"","sources":["../../../src/tools/threads/mentions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,4BAA4B,CAAC,MAAiB,EAAE,MAAkB;IAChF,gEAAgE;IAChE,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,sQAAsQ;QACnR,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC1D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YACrF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YAC5E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;SAC3D;QACD,WAAW,EAAE,cAAc;KAC5B,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAe;gBACzB,MAAM,EAAE,4JAA4J;aACrK,CAAC;YACF,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAC9C,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAChC,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAChC,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAChC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,aAAa,WAAW,EAAE,MAAM,CAAC,CAAC;YACrG,OAAO,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/tools/threads/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/tools/threads/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAK3D,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAoBvF"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { formatErrorResponse } from "../../utils/errors.js";
|
|
2
|
+
import { formatResponse } from "../../utils/response.js";
|
|
3
|
+
import { READ_ONLY_TOOL } from "../annotations.js";
|
|
2
4
|
export function registerThreadsProfileTools(server, client) {
|
|
3
5
|
// ─── threads_get_profile ─────────────────────────────────────
|
|
4
|
-
server.
|
|
6
|
+
server.registerTool("threads_get_profile", {
|
|
7
|
+
description: "Get Threads user profile information including verification status and geo-gating eligibility (is_eligible_for_geo_gating).",
|
|
8
|
+
inputSchema: {},
|
|
9
|
+
annotations: READ_ONLY_TOOL,
|
|
10
|
+
}, async () => {
|
|
5
11
|
try {
|
|
6
12
|
const { data, rateLimit } = await client.threads("GET", `/${client.threadsUserId}`, {
|
|
7
13
|
fields: "id,username,name,threads_profile_picture_url,threads_biography,is_verified,is_eligible_for_geo_gating",
|
|
8
14
|
});
|
|
9
|
-
return
|
|
15
|
+
return formatResponse(data, rateLimit);
|
|
10
16
|
}
|
|
11
17
|
catch (error) {
|
|
12
18
|
return formatErrorResponse(error, "Get profile");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/tools/threads/profile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/tools/threads/profile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,2BAA2B,CAAC,MAAiB,EAAE,MAAkB;IAC/E,gEAAgE;IAChE,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,6HAA6H;QAC1I,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,cAAc;KAC5B,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE;gBAClF,MAAM,EAAE,uGAAuG;aAChH,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -26,5 +26,12 @@ export declare const textAttachmentStylingSchema: z.ZodOptional<z.ZodArray<z.Zod
|
|
|
26
26
|
}>>;
|
|
27
27
|
}, z.core.$strip>>>;
|
|
28
28
|
export declare const allowlistedCountryCodesSchema: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
29
|
+
export declare const replyControlSchema: z.ZodOptional<z.ZodEnum<{
|
|
30
|
+
everyone: "everyone";
|
|
31
|
+
accounts_you_follow: "accounts_you_follow";
|
|
32
|
+
mentioned_only: "mentioned_only";
|
|
33
|
+
parent_post_author_only: "parent_post_author_only";
|
|
34
|
+
followers_only: "followers_only";
|
|
35
|
+
}>>;
|
|
29
36
|
export declare function registerThreadsPublishingTools(server: McpServer, client: MetaClient): void;
|
|
30
37
|
//# sourceMappingURL=publishing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publishing.d.ts","sourceRoot":"","sources":["../../../src/tools/threads/publishing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"publishing.d.ts","sourceRoot":"","sources":["../../../src/tools/threads/publishing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAc,MAAM,+BAA+B,CAAC;AAOvE,eAAO,MAAM,cAAc,4BAAsL,CAAC;AAElN,eAAO,MAAM,oBAAoB;;;GAA0R,CAAC;AAE5T,eAAO,MAAM,iBAAiB,wCAAoO,CAAC;AAEnQ,eAAO,MAAM,eAAe;;;;;;EAAwE,CAAC;AAErG,eAAO,MAAM,2BAA2B;;;;;;;;;;mBAIoD,CAAC;AAE7F,eAAO,MAAM,6BAA6B,wCAEuW,CAAC;AAElZ,eAAO,MAAM,kBAAkB;;;;;;GAM+c,CAAC;AAiB/e,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAiZ1F"}
|