ncloud-mcp-server 1.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.
Files changed (220) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +159 -0
  3. package/README_EN.md +159 -0
  4. package/dist/auth/signature.d.ts +16 -0
  5. package/dist/auth/signature.js +18 -0
  6. package/dist/auth/signature.js.map +1 -0
  7. package/dist/auth/signature.test.d.ts +1 -0
  8. package/dist/auth/signature.test.js +90 -0
  9. package/dist/auth/signature.test.js.map +1 -0
  10. package/dist/client/ncloud-client.d.ts +27 -0
  11. package/dist/client/ncloud-client.js +270 -0
  12. package/dist/client/ncloud-client.js.map +1 -0
  13. package/dist/client/ncloud-client.test.d.ts +1 -0
  14. package/dist/client/ncloud-client.test.js +477 -0
  15. package/dist/client/ncloud-client.test.js.map +1 -0
  16. package/dist/client/s3-compatible-client.d.ts +49 -0
  17. package/dist/client/s3-compatible-client.js +210 -0
  18. package/dist/client/s3-compatible-client.js.map +1 -0
  19. package/dist/client/swift-compatible-client.d.ts +68 -0
  20. package/dist/client/swift-compatible-client.js +173 -0
  21. package/dist/client/swift-compatible-client.js.map +1 -0
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.js +362 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/tools/acg.d.ts +3 -0
  26. package/dist/tools/acg.js +220 -0
  27. package/dist/tools/acg.js.map +1 -0
  28. package/dist/tools/activity-tracer.d.ts +3 -0
  29. package/dist/tools/activity-tracer.js +77 -0
  30. package/dist/tools/activity-tracer.js.map +1 -0
  31. package/dist/tools/analytics-cdss.d.ts +3 -0
  32. package/dist/tools/analytics-cdss.js +618 -0
  33. package/dist/tools/analytics-cdss.js.map +1 -0
  34. package/dist/tools/analytics-datacatalog.d.ts +10 -0
  35. package/dist/tools/analytics-datacatalog.js +409 -0
  36. package/dist/tools/analytics-datacatalog.js.map +1 -0
  37. package/dist/tools/analytics-dataflow.d.ts +16 -0
  38. package/dist/tools/analytics-dataflow.js +478 -0
  39. package/dist/tools/analytics-dataflow.js.map +1 -0
  40. package/dist/tools/analytics-dataforest.d.ts +10 -0
  41. package/dist/tools/analytics-dataforest.js +379 -0
  42. package/dist/tools/analytics-dataforest.js.map +1 -0
  43. package/dist/tools/analytics-dataquery.d.ts +16 -0
  44. package/dist/tools/analytics-dataquery.js +143 -0
  45. package/dist/tools/analytics-dataquery.js.map +1 -0
  46. package/dist/tools/analytics-datastream.d.ts +13 -0
  47. package/dist/tools/analytics-datastream.js +359 -0
  48. package/dist/tools/analytics-datastream.js.map +1 -0
  49. package/dist/tools/analytics-hadoop.d.ts +12 -0
  50. package/dist/tools/analytics-hadoop.js +450 -0
  51. package/dist/tools/analytics-hadoop.js.map +1 -0
  52. package/dist/tools/analytics-ses.d.ts +3 -0
  53. package/dist/tools/analytics-ses.js +653 -0
  54. package/dist/tools/analytics-ses.js.map +1 -0
  55. package/dist/tools/api-gateway.d.ts +3 -0
  56. package/dist/tools/api-gateway.js +202 -0
  57. package/dist/tools/api-gateway.js.map +1 -0
  58. package/dist/tools/autoscaling.d.ts +3 -0
  59. package/dist/tools/autoscaling.js +430 -0
  60. package/dist/tools/autoscaling.js.map +1 -0
  61. package/dist/tools/billing.d.ts +14 -0
  62. package/dist/tools/billing.js +545 -0
  63. package/dist/tools/billing.js.map +1 -0
  64. package/dist/tools/certificate-manager.d.ts +18 -0
  65. package/dist/tools/certificate-manager.js +84 -0
  66. package/dist/tools/certificate-manager.js.map +1 -0
  67. package/dist/tools/cloud-advisor.d.ts +3 -0
  68. package/dist/tools/cloud-advisor.js +202 -0
  69. package/dist/tools/cloud-advisor.js.map +1 -0
  70. package/dist/tools/cloud-functions.d.ts +3 -0
  71. package/dist/tools/cloud-functions.js +497 -0
  72. package/dist/tools/cloud-functions.js.map +1 -0
  73. package/dist/tools/cloud-insight-integration.d.ts +3 -0
  74. package/dist/tools/cloud-insight-integration.js +90 -0
  75. package/dist/tools/cloud-insight-integration.js.map +1 -0
  76. package/dist/tools/cloud-insight-plugin.d.ts +3 -0
  77. package/dist/tools/cloud-insight-plugin.js +600 -0
  78. package/dist/tools/cloud-insight-plugin.js.map +1 -0
  79. package/dist/tools/cloud-insight-rule.d.ts +3 -0
  80. package/dist/tools/cloud-insight-rule.js +570 -0
  81. package/dist/tools/cloud-insight-rule.js.map +1 -0
  82. package/dist/tools/cloud-insight.d.ts +3 -0
  83. package/dist/tools/cloud-insight.js +246 -0
  84. package/dist/tools/cloud-insight.js.map +1 -0
  85. package/dist/tools/common.d.ts +3 -0
  86. package/dist/tools/common.js +120 -0
  87. package/dist/tools/common.js.map +1 -0
  88. package/dist/tools/compute-initscript.d.ts +3 -0
  89. package/dist/tools/compute-initscript.js +62 -0
  90. package/dist/tools/compute-initscript.js.map +1 -0
  91. package/dist/tools/compute-loginkey.d.ts +3 -0
  92. package/dist/tools/compute-loginkey.js +59 -0
  93. package/dist/tools/compute-loginkey.js.map +1 -0
  94. package/dist/tools/compute-placement.d.ts +3 -0
  95. package/dist/tools/compute-placement.js +196 -0
  96. package/dist/tools/compute-placement.js.map +1 -0
  97. package/dist/tools/compute-publicip.d.ts +3 -0
  98. package/dist/tools/compute-publicip.js +97 -0
  99. package/dist/tools/compute-publicip.js.map +1 -0
  100. package/dist/tools/compute-server.d.ts +3 -0
  101. package/dist/tools/compute-server.js +445 -0
  102. package/dist/tools/compute-server.js.map +1 -0
  103. package/dist/tools/compute-server.test.d.ts +1 -0
  104. package/dist/tools/compute-server.test.js +224 -0
  105. package/dist/tools/compute-server.test.js.map +1 -0
  106. package/dist/tools/compute-storage.d.ts +3 -0
  107. package/dist/tools/compute-storage.js +240 -0
  108. package/dist/tools/compute-storage.js.map +1 -0
  109. package/dist/tools/containers-nks.d.ts +13 -0
  110. package/dist/tools/containers-nks.js +576 -0
  111. package/dist/tools/containers-nks.js.map +1 -0
  112. package/dist/tools/containers-registry.d.ts +3 -0
  113. package/dist/tools/containers-registry.js +181 -0
  114. package/dist/tools/containers-registry.js.map +1 -0
  115. package/dist/tools/database-cache.d.ts +3 -0
  116. package/dist/tools/database-cache.js +388 -0
  117. package/dist/tools/database-cache.js.map +1 -0
  118. package/dist/tools/database-mongodb.d.ts +3 -0
  119. package/dist/tools/database-mongodb.js +460 -0
  120. package/dist/tools/database-mongodb.js.map +1 -0
  121. package/dist/tools/database-mssql.d.ts +3 -0
  122. package/dist/tools/database-mssql.js +345 -0
  123. package/dist/tools/database-mssql.js.map +1 -0
  124. package/dist/tools/database-mysql.d.ts +3 -0
  125. package/dist/tools/database-mysql.js +500 -0
  126. package/dist/tools/database-mysql.js.map +1 -0
  127. package/dist/tools/database-postgresql.d.ts +3 -0
  128. package/dist/tools/database-postgresql.js +432 -0
  129. package/dist/tools/database-postgresql.js.map +1 -0
  130. package/dist/tools/global-dns.d.ts +3 -0
  131. package/dist/tools/global-dns.js +207 -0
  132. package/dist/tools/global-dns.js.map +1 -0
  133. package/dist/tools/global-edge.d.ts +3 -0
  134. package/dist/tools/global-edge.js +386 -0
  135. package/dist/tools/global-edge.js.map +1 -0
  136. package/dist/tools/global-traffic-manager.d.ts +3 -0
  137. package/dist/tools/global-traffic-manager.js +497 -0
  138. package/dist/tools/global-traffic-manager.js.map +1 -0
  139. package/dist/tools/index.d.ts +63 -0
  140. package/dist/tools/index.js +64 -0
  141. package/dist/tools/index.js.map +1 -0
  142. package/dist/tools/kms.d.ts +8 -0
  143. package/dist/tools/kms.js +529 -0
  144. package/dist/tools/kms.js.map +1 -0
  145. package/dist/tools/loadbalancer.d.ts +3 -0
  146. package/dist/tools/loadbalancer.js +341 -0
  147. package/dist/tools/loadbalancer.js.map +1 -0
  148. package/dist/tools/log-analytics.d.ts +3 -0
  149. package/dist/tools/log-analytics.js +183 -0
  150. package/dist/tools/log-analytics.js.map +1 -0
  151. package/dist/tools/media-imageoptimizer.d.ts +3 -0
  152. package/dist/tools/media-imageoptimizer.js +187 -0
  153. package/dist/tools/media-imageoptimizer.js.map +1 -0
  154. package/dist/tools/media-livestation.d.ts +3 -0
  155. package/dist/tools/media-livestation.js +252 -0
  156. package/dist/tools/media-livestation.js.map +1 -0
  157. package/dist/tools/media-vodstation.d.ts +3 -0
  158. package/dist/tools/media-vodstation.js +197 -0
  159. package/dist/tools/media-vodstation.js.map +1 -0
  160. package/dist/tools/nat-gateway.d.ts +3 -0
  161. package/dist/tools/nat-gateway.js +91 -0
  162. package/dist/tools/nat-gateway.js.map +1 -0
  163. package/dist/tools/network-acl.d.ts +3 -0
  164. package/dist/tools/network-acl.js +322 -0
  165. package/dist/tools/network-acl.js.map +1 -0
  166. package/dist/tools/network-interface.d.ts +3 -0
  167. package/dist/tools/network-interface.js +193 -0
  168. package/dist/tools/network-interface.js.map +1 -0
  169. package/dist/tools/private-ca.d.ts +8 -0
  170. package/dist/tools/private-ca.js +368 -0
  171. package/dist/tools/private-ca.js.map +1 -0
  172. package/dist/tools/resource-manager.d.ts +3 -0
  173. package/dist/tools/resource-manager.js +151 -0
  174. package/dist/tools/resource-manager.js.map +1 -0
  175. package/dist/tools/route-table.d.ts +3 -0
  176. package/dist/tools/route-table.js +205 -0
  177. package/dist/tools/route-table.js.map +1 -0
  178. package/dist/tools/security-monitoring.d.ts +3 -0
  179. package/dist/tools/security-monitoring.js +182 -0
  180. package/dist/tools/security-monitoring.js.map +1 -0
  181. package/dist/tools/sens.d.ts +3 -0
  182. package/dist/tools/sens.js +240 -0
  183. package/dist/tools/sens.js.map +1 -0
  184. package/dist/tools/sourcebuild.d.ts +3 -0
  185. package/dist/tools/sourcebuild.js +481 -0
  186. package/dist/tools/sourcebuild.js.map +1 -0
  187. package/dist/tools/sourcecommit.d.ts +13 -0
  188. package/dist/tools/sourcecommit.js +228 -0
  189. package/dist/tools/sourcecommit.js.map +1 -0
  190. package/dist/tools/sourcedeploy.d.ts +3 -0
  191. package/dist/tools/sourcedeploy.js +448 -0
  192. package/dist/tools/sourcedeploy.js.map +1 -0
  193. package/dist/tools/sourcepipeline.d.ts +12 -0
  194. package/dist/tools/sourcepipeline.js +357 -0
  195. package/dist/tools/sourcepipeline.js.map +1 -0
  196. package/dist/tools/storage-archive.d.ts +3 -0
  197. package/dist/tools/storage-archive.js +337 -0
  198. package/dist/tools/storage-archive.js.map +1 -0
  199. package/dist/tools/storage-nas.d.ts +3 -0
  200. package/dist/tools/storage-nas.js +288 -0
  201. package/dist/tools/storage-nas.js.map +1 -0
  202. package/dist/tools/storage-ncloud.d.ts +3 -0
  203. package/dist/tools/storage-ncloud.js +864 -0
  204. package/dist/tools/storage-ncloud.js.map +1 -0
  205. package/dist/tools/storage-object.d.ts +3 -0
  206. package/dist/tools/storage-object.js +982 -0
  207. package/dist/tools/storage-object.js.map +1 -0
  208. package/dist/tools/sub-account.d.ts +3 -0
  209. package/dist/tools/sub-account.js +311 -0
  210. package/dist/tools/sub-account.js.map +1 -0
  211. package/dist/tools/target-group.d.ts +3 -0
  212. package/dist/tools/target-group.js +207 -0
  213. package/dist/tools/target-group.js.map +1 -0
  214. package/dist/tools/vpc-peering.d.ts +3 -0
  215. package/dist/tools/vpc-peering.js +109 -0
  216. package/dist/tools/vpc-peering.js.map +1 -0
  217. package/dist/tools/vpc.d.ts +3 -0
  218. package/dist/tools/vpc.js +194 -0
  219. package/dist/tools/vpc.js.map +1 -0
  220. package/package.json +53 -0
@@ -0,0 +1,460 @@
1
+ import { z } from "zod";
2
+ export function registerDatabaseMongodbTools(server, client) {
3
+ // ─── Query Tools ───────────────────────────────────────────────────────────
4
+ server.tool("ncloud_list_mongodb_instances", "List all Cloud DB for MongoDB instances in the current region", {
5
+ cloudMongoDbInstanceNoList: z.array(z.string()).optional().describe("Filter by MongoDB instance numbers"),
6
+ cloudMongoDbServiceName: z.string().optional().describe("Filter by MongoDB service name"),
7
+ pageNo: z.number().optional().describe("Page number for pagination"),
8
+ pageSize: z.number().optional().describe("Page size for pagination"),
9
+ }, async (params) => {
10
+ try {
11
+ const result = await client.request("/vmongodb/v2/getCloudMongoDbInstanceList", params);
12
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
13
+ }
14
+ catch (error) {
15
+ return { content: [{ type: "text", text: error.message }], isError: true };
16
+ }
17
+ });
18
+ server.tool("ncloud_get_mongodb_instance_detail", "Get detailed information about a specific Cloud DB for MongoDB instance", {
19
+ cloudMongoDbInstanceNo: z.string().describe("Cloud MongoDB instance number to query"),
20
+ }, async (params) => {
21
+ try {
22
+ const result = await client.request("/vmongodb/v2/getCloudMongoDbInstanceDetail", params);
23
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
24
+ }
25
+ catch (error) {
26
+ return { content: [{ type: "text", text: error.message }], isError: true };
27
+ }
28
+ });
29
+ server.tool("ncloud_list_mongodb_backups", "List backups for a Cloud DB for MongoDB instance", {
30
+ cloudMongoDbInstanceNo: z.string().describe("Cloud MongoDB instance number"),
31
+ }, async (params) => {
32
+ try {
33
+ const result = await client.request("/vmongodb/v2/getCloudMongoDbBackupList", params);
34
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
35
+ }
36
+ catch (error) {
37
+ return { content: [{ type: "text", text: error.message }], isError: true };
38
+ }
39
+ });
40
+ // ─── Create Tools ──────────────────────────────────────────────────────────
41
+ server.tool("ncloud_create_mongodb_instance", "Create a new Cloud DB for MongoDB instance. Use dryRun=true to preview without creating.", {
42
+ cloudMongoDbServiceName: z.string({
43
+ required_error: "필수 파라미터 'cloudMongoDbServiceName'이 누락되었습니다.",
44
+ }).describe("MongoDB service name (3-20 chars, lowercase letters and numbers)"),
45
+ cloudMongoDbServerNamePrefix: z.string({
46
+ required_error: "필수 파라미터 'cloudMongoDbServerNamePrefix'이 누락되었습니다.",
47
+ }).describe("Server name prefix"),
48
+ clusterTypeCode: z.string({
49
+ required_error: "필수 파라미터 'clusterTypeCode'이 누락되었습니다.",
50
+ }).describe("Cluster type code (STAND_ALONE | SINGLE_REPLICA_SET | SHARDED_CLUSTER)"),
51
+ vpcNo: z.string({
52
+ required_error: "필수 파라미터 'vpcNo'이 누락되었습니다.",
53
+ }).describe("VPC number"),
54
+ subnetNo: z.string({
55
+ required_error: "필수 파라미터 'subnetNo'이 누락되었습니다.",
56
+ }).describe("Subnet number"),
57
+ cloudMongoDbUserName: z.string({
58
+ required_error: "필수 파라미터 'cloudMongoDbUserName'이 누락되었습니다.",
59
+ }).describe("Initial admin user name"),
60
+ cloudMongoDbUserPassword: z.string({
61
+ required_error: "필수 파라미터 'cloudMongoDbUserPassword'이 누락되었습니다.",
62
+ }).describe("Initial admin user password"),
63
+ cloudMongoDbImageProductCode: z.string().optional().describe("MongoDB image product code"),
64
+ memberProductCode: z.string().optional().describe("Member server product code"),
65
+ arbiterProductCode: z.string().optional().describe("Arbiter server product code"),
66
+ mongosProductCode: z.string().optional().describe("Mongos server product code"),
67
+ configProductCode: z.string().optional().describe("Config server product code"),
68
+ dataStorageTypeCode: z.string().optional().describe("Data storage type (SSD | HDD | CB2)"),
69
+ memberPort: z.number().optional().describe("Member port (default 17017, range 10000-65535)"),
70
+ mongosPort: z.number().optional().describe("Mongos port (default 17017)"),
71
+ configPort: z.number().optional().describe("Config port (default 17017)"),
72
+ compressCode: z.string().optional().describe("Compression algorithm (SNPP | ZLIB | ZSTD | NONE)"),
73
+ engineVersionCode: z.string().optional().describe("MongoDB engine version code"),
74
+ shardCount: z.number().optional().describe("Number of shards (2-3, for SHARDED_CLUSTER)"),
75
+ backupFileRetentionPeriod: z.number().optional().describe("Backup retention period in days (1-30)"),
76
+ memberServerCount: z.number().optional().describe("Number of member servers in the replica set"),
77
+ arbiterServerCount: z.number().optional().describe("Number of arbiter servers"),
78
+ mongosServerCount: z.number().optional().describe("Number of mongos servers (for sharded cluster)"),
79
+ configServerCount: z.number().optional().describe("Number of config servers (for sharded cluster)"),
80
+ dryRun: z.boolean().optional().default(false).describe("If true, returns a preview without actually creating the instance"),
81
+ }, async (params) => {
82
+ try {
83
+ if (params.dryRun) {
84
+ const preview = {
85
+ label: "🔍 Dry-Run Preview: MongoDB Instance Creation",
86
+ cloudMongoDbServiceName: params.cloudMongoDbServiceName,
87
+ cloudMongoDbServerNamePrefix: params.cloudMongoDbServerNamePrefix,
88
+ clusterTypeCode: params.clusterTypeCode,
89
+ vpcNo: params.vpcNo,
90
+ subnetNo: params.subnetNo,
91
+ cloudMongoDbUserName: params.cloudMongoDbUserName,
92
+ memberServerCount: params.memberServerCount,
93
+ shardCount: params.shardCount,
94
+ message: "이 요청은 실제 MongoDB 인스턴스를 생성하지 않습니다. dryRun=false로 호출하면 인스턴스가 생성됩니다.",
95
+ };
96
+ return { content: [{ type: "text", text: JSON.stringify(preview, null, 2) }] };
97
+ }
98
+ const { dryRun, ...apiParams } = params;
99
+ const result = await client.request("/vmongodb/v2/createCloudMongoDbInstance", apiParams);
100
+ const instance = result.cloudMongoDbInstanceList?.[0];
101
+ const summary = {
102
+ 리소스타입: "MongoDB",
103
+ 리소스ID: instance?.cloudMongoDbInstanceNo ?? "unknown",
104
+ 서비스명: params.cloudMongoDbServiceName,
105
+ 상태: instance?.cloudMongoDbInstanceStatus?.codeName ?? "creating",
106
+ 생성시각: instance?.createDate ?? new Date().toISOString(),
107
+ VPC: params.vpcNo,
108
+ 서브넷: params.subnetNo,
109
+ 클러스터타입: params.clusterTypeCode,
110
+ };
111
+ return { content: [{ type: "text", text: JSON.stringify(summary, null, 2) }] };
112
+ }
113
+ catch (error) {
114
+ return { content: [{ type: "text", text: error.message }], isError: true };
115
+ }
116
+ });
117
+ // ─── Operation Tools ───────────────────────────────────────────────────────
118
+ server.tool("ncloud_reboot_mongodb_server", "Reboot a Cloud DB for MongoDB server instance", {
119
+ cloudMongoDbServerInstanceNo: z.string().describe("Cloud MongoDB server instance number to reboot"),
120
+ }, async (params) => {
121
+ try {
122
+ const result = await client.request("/vmongodb/v2/rebootCloudMongoDbServerInstance", params);
123
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
124
+ }
125
+ catch (error) {
126
+ return { content: [{ type: "text", text: error.message }], isError: true };
127
+ }
128
+ });
129
+ // ─── Cluster Scaling Tools ─────────────────────────────────────────────────
130
+ server.tool("ncloud_change_mongodb_secondary_count", "Change the number of Secondary (Member/Arbiter) servers in a MongoDB instance", {
131
+ cloudMongoDbInstanceNo: z.string({
132
+ required_error: "필수 파라미터 'cloudMongoDbInstanceNo'이 누락되었습니다.",
133
+ }).describe("Cloud MongoDB instance number"),
134
+ memberServerCount: z.number({
135
+ required_error: "필수 파라미터 'memberServerCount'이 누락되었습니다.",
136
+ }).describe("Number of member servers (2-7)"),
137
+ arbiterServerCount: z.number({
138
+ required_error: "필수 파라미터 'arbiterServerCount'이 누락되었습니다.",
139
+ }).describe("Number of arbiter servers (0-1)"),
140
+ arbiterProductCode: z.string().optional().describe("Arbiter server product code"),
141
+ }, async (params) => {
142
+ try {
143
+ const result = await client.request("/vmongodb/v2/changeCloudMongoDbSecondaryCount", params);
144
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
145
+ }
146
+ catch (error) {
147
+ return { content: [{ type: "text", text: error.message }], isError: true };
148
+ }
149
+ });
150
+ server.tool("ncloud_change_mongodb_mongos_count", "Change the number of Mongos servers in a MongoDB Sharded Cluster instance", {
151
+ cloudMongoDbInstanceNo: z.string({
152
+ required_error: "필수 파라미터 'cloudMongoDbInstanceNo'이 누락되었습니다.",
153
+ }).describe("Cloud MongoDB instance number"),
154
+ mongosServerCount: z.number({
155
+ required_error: "필수 파라미터 'mongosServerCount'이 누락되었습니다.",
156
+ }).describe("Number of mongos servers (2-5)"),
157
+ }, async (params) => {
158
+ try {
159
+ const result = await client.request("/vmongodb/v2/changeCloudMongoDbMongosCount", params);
160
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
161
+ }
162
+ catch (error) {
163
+ return { content: [{ type: "text", text: error.message }], isError: true };
164
+ }
165
+ });
166
+ server.tool("ncloud_change_mongodb_config_count", "Change the number of Config servers in a MongoDB Sharded Cluster instance", {
167
+ cloudMongoDbInstanceNo: z.string({
168
+ required_error: "필수 파라미터 'cloudMongoDbInstanceNo'이 누락되었습니다.",
169
+ }).describe("Cloud MongoDB instance number"),
170
+ configServerCount: z.number({
171
+ required_error: "필수 파라미터 'configServerCount'이 누락되었습니다.",
172
+ }).describe("Number of config servers"),
173
+ }, async (params) => {
174
+ try {
175
+ const result = await client.request("/vmongodb/v2/changeCloudMongoDbConfigCount", params);
176
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
177
+ }
178
+ catch (error) {
179
+ return { content: [{ type: "text", text: error.message }], isError: true };
180
+ }
181
+ });
182
+ server.tool("ncloud_change_mongodb_shard_count", "Change the number of shards in a MongoDB Sharded Cluster instance", {
183
+ cloudMongoDbInstanceNo: z.string({
184
+ required_error: "필수 파라미터 'cloudMongoDbInstanceNo'이 누락되었습니다.",
185
+ }).describe("Cloud MongoDB instance number"),
186
+ shardCount: z.number({
187
+ required_error: "필수 파라미터 'shardCount'이 누락되었습니다.",
188
+ }).describe("Number of shards"),
189
+ }, async (params) => {
190
+ try {
191
+ const result = await client.request("/vmongodb/v2/changeCloudMongoDbShardCount", params);
192
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
193
+ }
194
+ catch (error) {
195
+ return { content: [{ type: "text", text: error.message }], isError: true };
196
+ }
197
+ });
198
+ // ─── User Management Tools ─────────────────────────────────────────────────
199
+ server.tool("ncloud_list_mongodb_users", "List users in a Cloud DB for MongoDB instance", {
200
+ cloudMongoDbInstanceNo: z.string({
201
+ required_error: "필수 파라미터 'cloudMongoDbInstanceNo'이 누락되었습니다.",
202
+ }).describe("Cloud MongoDB instance number"),
203
+ }, async (params) => {
204
+ try {
205
+ const result = await client.request("/vmongodb/v2/getCloudMongoDbUserList", params);
206
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
207
+ }
208
+ catch (error) {
209
+ return { content: [{ type: "text", text: error.message }], isError: true };
210
+ }
211
+ });
212
+ server.tool("ncloud_add_mongodb_users", "Add users to a Cloud DB for MongoDB instance", {
213
+ cloudMongoDbInstanceNo: z.string({
214
+ required_error: "필수 파라미터 'cloudMongoDbInstanceNo'이 누락되었습니다.",
215
+ }).describe("Cloud MongoDB instance number"),
216
+ cloudMongoDbUserList: z.array(z.object({
217
+ name: z.string().describe("User name"),
218
+ password: z.string().describe("User password"),
219
+ databaseName: z.string().describe("Database name the user belongs to"),
220
+ authority: z.string().describe("User authority (e.g., READ, READ_WRITE, DB_ADMIN)"),
221
+ })).describe("List of users to add"),
222
+ }, async (params) => {
223
+ try {
224
+ const { cloudMongoDbInstanceNo, cloudMongoDbUserList } = params;
225
+ const requestParams = { cloudMongoDbInstanceNo };
226
+ for (let i = 0; i < cloudMongoDbUserList.length; i++) {
227
+ const user = cloudMongoDbUserList[i];
228
+ requestParams[`cloudMongoDbUserList.${i + 1}.name`] = user.name;
229
+ requestParams[`cloudMongoDbUserList.${i + 1}.password`] = user.password;
230
+ requestParams[`cloudMongoDbUserList.${i + 1}.databaseName`] = user.databaseName;
231
+ requestParams[`cloudMongoDbUserList.${i + 1}.authority`] = user.authority;
232
+ }
233
+ const result = await client.request("/vmongodb/v2/addCloudMongoDbUserList", requestParams);
234
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
235
+ }
236
+ catch (error) {
237
+ return { content: [{ type: "text", text: error.message }], isError: true };
238
+ }
239
+ });
240
+ server.tool("ncloud_change_mongodb_users", "Change user information (password) in a Cloud DB for MongoDB instance", {
241
+ cloudMongoDbInstanceNo: z.string({
242
+ required_error: "필수 파라미터 'cloudMongoDbInstanceNo'이 누락되었습니다.",
243
+ }).describe("Cloud MongoDB instance number"),
244
+ cloudMongoDbUserList: z.array(z.object({
245
+ name: z.string().describe("User name"),
246
+ password: z.string().describe("New password"),
247
+ })).describe("List of users to change"),
248
+ }, async (params) => {
249
+ try {
250
+ const { cloudMongoDbInstanceNo, cloudMongoDbUserList } = params;
251
+ const requestParams = { cloudMongoDbInstanceNo };
252
+ for (let i = 0; i < cloudMongoDbUserList.length; i++) {
253
+ const user = cloudMongoDbUserList[i];
254
+ requestParams[`cloudMongoDbUserList.${i + 1}.name`] = user.name;
255
+ requestParams[`cloudMongoDbUserList.${i + 1}.password`] = user.password;
256
+ }
257
+ const result = await client.request("/vmongodb/v2/changeCloudMongoDbUserList", requestParams);
258
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
259
+ }
260
+ catch (error) {
261
+ return { content: [{ type: "text", text: error.message }], isError: true };
262
+ }
263
+ });
264
+ server.tool("ncloud_delete_mongodb_users", "⚠️ Destructive: Delete users from a Cloud DB for MongoDB instance. Set confirm=true to execute.", {
265
+ cloudMongoDbInstanceNo: z.string({
266
+ required_error: "필수 파라미터 'cloudMongoDbInstanceNo'이 누락되었습니다.",
267
+ }).describe("Cloud MongoDB instance number"),
268
+ cloudMongoDbUserList: z.array(z.object({
269
+ name: z.string().describe("User name to delete"),
270
+ })).describe("List of users to delete"),
271
+ confirm: z.boolean().optional().default(false).describe("Must be true to actually execute the destructive operation"),
272
+ }, async (params) => {
273
+ try {
274
+ if (!params.confirm) {
275
+ const userNames = params.cloudMongoDbUserList.map(u => u.name).join(", ");
276
+ const message = `⚠️ This will permanently delete MongoDB users [${userNames}] from instance [${params.cloudMongoDbInstanceNo}]. Do you want to proceed? (yes/no)\n\nTo execute, call this tool again with confirm=true.`;
277
+ return { content: [{ type: "text", text: message }] };
278
+ }
279
+ const { confirm, cloudMongoDbInstanceNo, cloudMongoDbUserList } = params;
280
+ const requestParams = { cloudMongoDbInstanceNo };
281
+ for (let i = 0; i < cloudMongoDbUserList.length; i++) {
282
+ const user = cloudMongoDbUserList[i];
283
+ requestParams[`cloudMongoDbUserList.${i + 1}.name`] = user.name;
284
+ }
285
+ const result = await client.request("/vmongodb/v2/deleteCloudMongoDbUserList", requestParams);
286
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
287
+ }
288
+ catch (error) {
289
+ return { content: [{ type: "text", text: error.message }], isError: true };
290
+ }
291
+ });
292
+ // ─── Backup & Log Tools ────────────────────────────────────────────────────
293
+ server.tool("ncloud_list_mongodb_backup_details", "List detailed backup information for a Cloud DB for MongoDB instance", {
294
+ cloudMongoDbInstanceNo: z.string({
295
+ required_error: "필수 파라미터 'cloudMongoDbInstanceNo'이 누락되었습니다.",
296
+ }).describe("Cloud MongoDB instance number"),
297
+ }, async (params) => {
298
+ try {
299
+ const result = await client.request("/vmongodb/v2/getCloudMongoDbBackupDetailList", params);
300
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
301
+ }
302
+ catch (error) {
303
+ return { content: [{ type: "text", text: error.message }], isError: true };
304
+ }
305
+ });
306
+ server.tool("ncloud_list_mongodb_logs", "List server logs for a Cloud DB for MongoDB server instance", {
307
+ cloudMongoDbServerInstanceNo: z.string({
308
+ required_error: "필수 파라미터 'cloudMongoDbServerInstanceNo'이 누락되었습니다.",
309
+ }).describe("Cloud MongoDB server instance number"),
310
+ }, async (params) => {
311
+ try {
312
+ const result = await client.request("/vmongodb/v2/getDbServerLogList", params);
313
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
314
+ }
315
+ catch (error) {
316
+ return { content: [{ type: "text", text: error.message }], isError: true };
317
+ }
318
+ });
319
+ server.tool("ncloud_export_mongodb_backup", "Export MongoDB backup files to Object Storage", {
320
+ cloudMongoDbInstanceNo: z.string({
321
+ required_error: "필수 파라미터 'cloudMongoDbInstanceNo'이 누락되었습니다.",
322
+ }).describe("Cloud MongoDB instance number"),
323
+ cloudMongoDbServerInstanceNo: z.string({
324
+ required_error: "필수 파라미터 'cloudMongoDbServerInstanceNo'이 누락되었습니다.",
325
+ }).describe("Cloud MongoDB server instance number"),
326
+ bucketName: z.string({
327
+ required_error: "필수 파라미터 'bucketName'이 누락되었습니다.",
328
+ }).describe("Object Storage bucket name"),
329
+ folderPath: z.string().optional().describe("Folder path in the bucket"),
330
+ cloudMongoDbExportObjectList: z.array(z.object({
331
+ fullObjectName: z.string().describe("Full object name of the backup file to export"),
332
+ })).describe("List of backup objects to export"),
333
+ }, async (params) => {
334
+ try {
335
+ const { cloudMongoDbInstanceNo, cloudMongoDbServerInstanceNo, bucketName, folderPath, cloudMongoDbExportObjectList } = params;
336
+ const requestParams = { cloudMongoDbInstanceNo, cloudMongoDbServerInstanceNo, bucketName };
337
+ if (folderPath)
338
+ requestParams.folderPath = folderPath;
339
+ for (let i = 0; i < cloudMongoDbExportObjectList.length; i++) {
340
+ requestParams[`cloudMongoDbExportObjectList.${i + 1}.fullObjectName`] = cloudMongoDbExportObjectList[i].fullObjectName;
341
+ }
342
+ const result = await client.request("/vmongodb/v2/exportBackupToObjectStorage", requestParams);
343
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
344
+ }
345
+ catch (error) {
346
+ return { content: [{ type: "text", text: error.message }], isError: true };
347
+ }
348
+ });
349
+ server.tool("ncloud_export_mongodb_log", "Export MongoDB server logs to Object Storage", {
350
+ cloudMongoDbInstanceNo: z.string({
351
+ required_error: "필수 파라미터 'cloudMongoDbInstanceNo'이 누락되었습니다.",
352
+ }).describe("Cloud MongoDB instance number"),
353
+ cloudMongoDbServerInstanceNo: z.string({
354
+ required_error: "필수 파라미터 'cloudMongoDbServerInstanceNo'이 누락되었습니다.",
355
+ }).describe("Cloud MongoDB server instance number"),
356
+ bucketName: z.string({
357
+ required_error: "필수 파라미터 'bucketName'이 누락되었습니다.",
358
+ }).describe("Object Storage bucket name"),
359
+ folderPath: z.string().optional().describe("Folder path in the bucket"),
360
+ cloudMongoDbExportObjectList: z.array(z.object({
361
+ fullObjectName: z.string().describe("Full object name of the log file to export"),
362
+ })).describe("List of log objects to export"),
363
+ }, async (params) => {
364
+ try {
365
+ const { cloudMongoDbInstanceNo, cloudMongoDbServerInstanceNo, bucketName, folderPath, cloudMongoDbExportObjectList } = params;
366
+ const requestParams = { cloudMongoDbInstanceNo, cloudMongoDbServerInstanceNo, bucketName };
367
+ if (folderPath)
368
+ requestParams.folderPath = folderPath;
369
+ for (let i = 0; i < cloudMongoDbExportObjectList.length; i++) {
370
+ requestParams[`cloudMongoDbExportObjectList.${i + 1}.fullObjectName`] = cloudMongoDbExportObjectList[i].fullObjectName;
371
+ }
372
+ const result = await client.request("/vmongodb/v2/exportDbServerLogToObjectStorage", requestParams);
373
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
374
+ }
375
+ catch (error) {
376
+ return { content: [{ type: "text", text: error.message }], isError: true };
377
+ }
378
+ });
379
+ // ─── Product & Reference Tools ─────────────────────────────────────────────
380
+ server.tool("ncloud_get_mongodb_image_products", "List available MongoDB image product codes", {
381
+ regionCode: z.string().optional().describe("Region code (e.g., KR, JPN, SGN)"),
382
+ }, async (params) => {
383
+ try {
384
+ const result = await client.request("/vmongodb/v2/getCloudMongoDbImageProductList", params);
385
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
386
+ }
387
+ catch (error) {
388
+ return { content: [{ type: "text", text: error.message }], isError: true };
389
+ }
390
+ });
391
+ server.tool("ncloud_get_mongodb_products", "List available MongoDB server spec product codes (filterable by role type)", {
392
+ cloudMongoDbImageProductCode: z.string({
393
+ required_error: "필수 파라미터 'cloudMongoDbImageProductCode'이 누락되었습니다.",
394
+ }).describe("MongoDB image product code"),
395
+ infraResourceDetailTypeCode: z.string().optional().describe("Filter by server role type (MNGOD | ARBIT | CFGSV | MNGOS)"),
396
+ }, async (params) => {
397
+ try {
398
+ const result = await client.request("/vmongodb/v2/getCloudMongoDbProductList", params);
399
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
400
+ }
401
+ catch (error) {
402
+ return { content: [{ type: "text", text: error.message }], isError: true };
403
+ }
404
+ });
405
+ server.tool("ncloud_get_mongodb_target_vpcs", "List VPCs available for Cloud DB for MongoDB", {
406
+ regionCode: z.string().optional().describe("Region code (e.g., KR, JPN, SGN)"),
407
+ }, async (params) => {
408
+ try {
409
+ const result = await client.request("/vmongodb/v2/getCloudMongoDbTargetVpcList", params);
410
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
411
+ }
412
+ catch (error) {
413
+ return { content: [{ type: "text", text: error.message }], isError: true };
414
+ }
415
+ });
416
+ server.tool("ncloud_get_mongodb_target_subnets", "List subnets available for Cloud DB for MongoDB", {
417
+ cloudMongoDbInstanceNo: z.string({
418
+ required_error: "필수 파라미터 'cloudMongoDbInstanceNo'이 누락되었습니다.",
419
+ }).describe("Cloud MongoDB instance number"),
420
+ regionCode: z.string().optional().describe("Region code (e.g., KR, JPN, SGN)"),
421
+ }, async (params) => {
422
+ try {
423
+ const result = await client.request("/vmongodb/v2/getCloudMongoDbTargetSubnetList", params);
424
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
425
+ }
426
+ catch (error) {
427
+ return { content: [{ type: "text", text: error.message }], isError: true };
428
+ }
429
+ });
430
+ server.tool("ncloud_list_mongodb_buckets", "List Object Storage buckets available for Cloud DB for MongoDB backup export", {
431
+ regionCode: z.string().optional().describe("Region code (e.g., KR, JPN, SGN)"),
432
+ }, async (params) => {
433
+ try {
434
+ const result = await client.request("/vmongodb/v2/getCloudMongoDbBucketList", params);
435
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
436
+ }
437
+ catch (error) {
438
+ return { content: [{ type: "text", text: error.message }], isError: true };
439
+ }
440
+ });
441
+ // ─── Destructive Tools (with confirm gate) ─────────────────────────────────
442
+ server.tool("ncloud_delete_mongodb_instance", "⚠️ Destructive: Permanently delete a Cloud DB for MongoDB instance. Set confirm=true to execute.", {
443
+ cloudMongoDbInstanceNo: z.string().describe("Cloud MongoDB instance number to delete"),
444
+ confirm: z.boolean().optional().default(false).describe("Must be true to actually execute the destructive operation"),
445
+ }, async (params) => {
446
+ try {
447
+ if (!params.confirm) {
448
+ const message = `⚠️ This will permanently delete MongoDB instance [${params.cloudMongoDbInstanceNo}]. Do you want to proceed? (yes/no)\n\nTo execute, call this tool again with confirm=true.`;
449
+ return { content: [{ type: "text", text: message }] };
450
+ }
451
+ const { confirm, ...apiParams } = params;
452
+ const result = await client.request("/vmongodb/v2/deleteCloudMongoDbInstance", apiParams);
453
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
454
+ }
455
+ catch (error) {
456
+ return { content: [{ type: "text", text: error.message }], isError: true };
457
+ }
458
+ });
459
+ }
460
+ //# sourceMappingURL=database-mongodb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-mongodb.js","sourceRoot":"","sources":["../../src/tools/database-mongodb.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,4BAA4B,CAAC,MAAiB,EAAE,MAAoB;IAClF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,+BAA+B,EAC/B,+DAA+D,EAC/D;QACE,0BAA0B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACzG,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACzF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACpE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACrE,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,0CAA0C,EAAE,MAAM,CAAC,CAAC;YACxF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oCAAoC,EACpC,yEAAyE,EACzE;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;KACtF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,4CAA4C,EAAE,MAAM,CAAC,CAAC;YAC1F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,6BAA6B,EAC7B,kDAAkD,EAClD;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;KAC7E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE,MAAM,CAAC,CAAC;YACtF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,gCAAgC,EAChC,0FAA0F,EAC1F;QACE,uBAAuB,EAAE,CAAC,CAAC,MAAM,CAAC;YAChC,cAAc,EAAE,6CAA6C;SAC9D,CAAC,CAAC,QAAQ,CAAC,kEAAkE,CAAC;QAC/E,4BAA4B,EAAE,CAAC,CAAC,MAAM,CAAC;YACrC,cAAc,EAAE,kDAAkD;SACnE,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACjC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;YACxB,cAAc,EAAE,qCAAqC;SACtD,CAAC,CAAC,QAAQ,CAAC,wEAAwE,CAAC;QACrF,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,cAAc,EAAE,2BAA2B;SAC5C,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,cAAc,EAAE,8BAA8B;SAC/C,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC5B,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC7B,cAAc,EAAE,0CAA0C;SAC3D,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACtC,wBAAwB,EAAE,CAAC,CAAC,MAAM,CAAC;YACjC,cAAc,EAAE,8CAA8C;SAC/D,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC1C,4BAA4B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC1F,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC/E,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACjF,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC/E,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC/E,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAC1F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAC5F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACzE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACzE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QACjG,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAChF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QACzF,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACnG,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAChG,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC/E,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QACnG,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QACnG,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC;KAC5H,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG;oBACd,KAAK,EAAE,+CAA+C;oBACtD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;oBACvD,4BAA4B,EAAE,MAAM,CAAC,4BAA4B;oBACjE,eAAe,EAAE,MAAM,CAAC,eAAe;oBACvC,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;oBACjD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;oBAC3C,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,OAAO,EAAE,mEAAmE;iBAC7E,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1F,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,yCAAyC,EAAE,SAAS,CAAC,CAAC;YAC1F,MAAM,QAAQ,GAAG,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG;gBACd,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,QAAQ,EAAE,sBAAsB,IAAI,SAAS;gBACpD,IAAI,EAAE,MAAM,CAAC,uBAAuB;gBACpC,EAAE,EAAE,QAAQ,EAAE,0BAA0B,EAAE,QAAQ,IAAI,UAAU;gBAChE,IAAI,EAAE,QAAQ,EAAE,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACtD,GAAG,EAAE,MAAM,CAAC,KAAK;gBACjB,GAAG,EAAE,MAAM,CAAC,QAAQ;gBACpB,MAAM,EAAE,MAAM,CAAC,eAAe;aAC/B,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1F,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,8BAA8B,EAC9B,+CAA+C,EAC/C;QACE,4BAA4B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;KACpG,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,+CAA+C,EAAE,MAAM,CAAC,CAAC;YAC7F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,uCAAuC,EACvC,+EAA+E,EAC/E;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/B,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC1B,cAAc,EAAE,uCAAuC;SACxD,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC3B,cAAc,EAAE,wCAAwC;SACzD,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC9C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KAClF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,+CAA+C,EAAE,MAAM,CAAC,CAAC;YAC7F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oCAAoC,EACpC,2EAA2E,EAC3E;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/B,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC1B,cAAc,EAAE,uCAAuC;SACxD,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAC9C,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,4CAA4C,EAAE,MAAM,CAAC,CAAC;YAC1F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oCAAoC,EACpC,2EAA2E,EAC3E;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/B,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC1B,cAAc,EAAE,uCAAuC;SACxD,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACxC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,4CAA4C,EAAE,MAAM,CAAC,CAAC;YAC1F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mCAAmC,EACnC,mEAAmE,EACnE;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/B,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,cAAc,EAAE,gCAAgC;SACjD,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAChC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,2CAA2C,EAAE,MAAM,CAAC,CAAC;YACzF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,+CAA+C,EAC/C;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/B,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;KAC7C,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;YACpF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B,8CAA8C,EAC9C;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/B,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC9C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACtE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;SACpF,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;KACrC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC;YAChE,MAAM,aAAa,GAAQ,EAAE,sBAAsB,EAAE,CAAC;YAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACrC,aAAa,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAChE,aAAa,CAAC,wBAAwB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACxE,aAAa,CAAC,wBAAwB,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;gBAChF,aAAa,CAAC,wBAAwB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5E,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,sCAAsC,EAAE,aAAa,CAAC,CAAC;YAC3F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,6BAA6B,EAC7B,uEAAuE,EACvE;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/B,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SAC9C,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;KACxC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC;YAChE,MAAM,aAAa,GAAQ,EAAE,sBAAsB,EAAE,CAAC;YAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACrC,aAAa,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAChE,aAAa,CAAC,wBAAwB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1E,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,yCAAyC,EAAE,aAAa,CAAC,CAAC;YAC9F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,6BAA6B,EAC7B,iGAAiG,EACjG;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/B,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SACjD,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACvC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;KACtH,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1E,MAAM,OAAO,GAAG,kDAAkD,SAAS,oBAAoB,MAAM,CAAC,sBAAsB,4FAA4F,CAAC;gBACzN,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACjE,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC;YACzE,MAAM,aAAa,GAAQ,EAAE,sBAAsB,EAAE,CAAC;YAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACrC,aAAa,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YAClE,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,yCAAyC,EAAE,aAAa,CAAC,CAAC;YAC9F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,oCAAoC,EACpC,sEAAsE,EACtE;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/B,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;KAC7C,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,8CAA8C,EAAE,MAAM,CAAC,CAAC;YAC5F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B,6DAA6D,EAC7D;QACE,4BAA4B,EAAE,CAAC,CAAC,MAAM,CAAC;YACrC,cAAc,EAAE,kDAAkD;SACnE,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;KACpD,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;YAC/E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,8BAA8B,EAC9B,+CAA+C,EAC/C;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/B,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,4BAA4B,EAAE,CAAC,CAAC,MAAM,CAAC;YACrC,cAAc,EAAE,kDAAkD;SACnE,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACnD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,cAAc,EAAE,gCAAgC;SACjD,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACzC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACvE,4BAA4B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;SACrF,CAAC,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KACjD,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,UAAU,EAAE,UAAU,EAAE,4BAA4B,EAAE,GAAG,MAAM,CAAC;YAC9H,MAAM,aAAa,GAAQ,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;YAChG,IAAI,UAAU;gBAAE,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC;YAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,4BAA4B,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7D,aAAa,CAAC,gCAAgC,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;YACzH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,0CAA0C,EAAE,aAAa,CAAC,CAAC;YAC/F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,8CAA8C,EAC9C;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/B,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,4BAA4B,EAAE,CAAC,CAAC,MAAM,CAAC;YACrC,cAAc,EAAE,kDAAkD;SACnE,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACnD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,cAAc,EAAE,gCAAgC;SACjD,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACzC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACvE,4BAA4B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SAClF,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;KAC9C,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,UAAU,EAAE,UAAU,EAAE,4BAA4B,EAAE,GAAG,MAAM,CAAC;YAC9H,MAAM,aAAa,GAAQ,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;YAChG,IAAI,UAAU;gBAAE,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC;YAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,4BAA4B,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7D,aAAa,CAAC,gCAAgC,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;YACzH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,+CAA+C,EAAE,aAAa,CAAC,CAAC;YACpG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,mCAAmC,EACnC,4CAA4C,EAC5C;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAC/E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,8CAA8C,EAAE,MAAM,CAAC,CAAC;YAC5F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,6BAA6B,EAC7B,4EAA4E,EAC5E;QACE,4BAA4B,EAAE,CAAC,CAAC,MAAM,CAAC;YACrC,cAAc,EAAE,kDAAkD;SACnE,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACzC,2BAA2B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;KAC1H,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,yCAAyC,EAAE,MAAM,CAAC,CAAC;YACvF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gCAAgC,EAChC,8CAA8C,EAC9C;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAC/E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,2CAA2C,EAAE,MAAM,CAAC,CAAC;YACzF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mCAAmC,EACnC,iDAAiD,EACjD;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/B,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAC/E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,8CAA8C,EAAE,MAAM,CAAC,CAAC;YAC5F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,6BAA6B,EAC7B,8EAA8E,EAC9E;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAC/E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE,MAAM,CAAC,CAAC;YACtF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,gCAAgC,EAChC,kGAAkG,EAClG;QACE,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QACtF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;KACtH,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,qDAAqD,MAAM,CAAC,sBAAsB,4FAA4F,CAAC;gBAC/L,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACjE,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,yCAAyC,EAAE,SAAS,CAAC,CAAC;YAC1F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { NcloudClient } from "../client/ncloud-client.js";
3
+ export declare function registerDatabaseMssqlTools(server: McpServer, client: NcloudClient): void;