db-mcp 1.0.1

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 (208) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +860 -0
  3. package/dist/adapters/DatabaseAdapter.d.ts +141 -0
  4. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -0
  5. package/dist/adapters/DatabaseAdapter.js +131 -0
  6. package/dist/adapters/DatabaseAdapter.js.map +1 -0
  7. package/dist/adapters/sqlite/SchemaManager.d.ts +58 -0
  8. package/dist/adapters/sqlite/SchemaManager.d.ts.map +1 -0
  9. package/dist/adapters/sqlite/SchemaManager.js +187 -0
  10. package/dist/adapters/sqlite/SchemaManager.js.map +1 -0
  11. package/dist/adapters/sqlite/SqliteAdapter.d.ts +161 -0
  12. package/dist/adapters/sqlite/SqliteAdapter.d.ts.map +1 -0
  13. package/dist/adapters/sqlite/SqliteAdapter.js +741 -0
  14. package/dist/adapters/sqlite/SqliteAdapter.js.map +1 -0
  15. package/dist/adapters/sqlite/index.d.ts +9 -0
  16. package/dist/adapters/sqlite/index.d.ts.map +1 -0
  17. package/dist/adapters/sqlite/index.js +8 -0
  18. package/dist/adapters/sqlite/index.js.map +1 -0
  19. package/dist/adapters/sqlite/json-utils.d.ts +100 -0
  20. package/dist/adapters/sqlite/json-utils.d.ts.map +1 -0
  21. package/dist/adapters/sqlite/json-utils.js +274 -0
  22. package/dist/adapters/sqlite/json-utils.js.map +1 -0
  23. package/dist/adapters/sqlite/output-schemas.d.ts +1187 -0
  24. package/dist/adapters/sqlite/output-schemas.d.ts.map +1 -0
  25. package/dist/adapters/sqlite/output-schemas.js +1337 -0
  26. package/dist/adapters/sqlite/output-schemas.js.map +1 -0
  27. package/dist/adapters/sqlite/prompts.d.ts +13 -0
  28. package/dist/adapters/sqlite/prompts.d.ts.map +1 -0
  29. package/dist/adapters/sqlite/prompts.js +605 -0
  30. package/dist/adapters/sqlite/prompts.js.map +1 -0
  31. package/dist/adapters/sqlite/resources.d.ts +13 -0
  32. package/dist/adapters/sqlite/resources.d.ts.map +1 -0
  33. package/dist/adapters/sqlite/resources.js +251 -0
  34. package/dist/adapters/sqlite/resources.js.map +1 -0
  35. package/dist/adapters/sqlite/tools/admin.d.ts +14 -0
  36. package/dist/adapters/sqlite/tools/admin.d.ts.map +1 -0
  37. package/dist/adapters/sqlite/tools/admin.js +788 -0
  38. package/dist/adapters/sqlite/tools/admin.js.map +1 -0
  39. package/dist/adapters/sqlite/tools/core.d.ts +25 -0
  40. package/dist/adapters/sqlite/tools/core.d.ts.map +1 -0
  41. package/dist/adapters/sqlite/tools/core.js +359 -0
  42. package/dist/adapters/sqlite/tools/core.js.map +1 -0
  43. package/dist/adapters/sqlite/tools/fts.d.ts +13 -0
  44. package/dist/adapters/sqlite/tools/fts.d.ts.map +1 -0
  45. package/dist/adapters/sqlite/tools/fts.js +347 -0
  46. package/dist/adapters/sqlite/tools/fts.js.map +1 -0
  47. package/dist/adapters/sqlite/tools/geo.d.ts +14 -0
  48. package/dist/adapters/sqlite/tools/geo.d.ts.map +1 -0
  49. package/dist/adapters/sqlite/tools/geo.js +252 -0
  50. package/dist/adapters/sqlite/tools/geo.js.map +1 -0
  51. package/dist/adapters/sqlite/tools/index.d.ts +30 -0
  52. package/dist/adapters/sqlite/tools/index.d.ts.map +1 -0
  53. package/dist/adapters/sqlite/tools/index.js +61 -0
  54. package/dist/adapters/sqlite/tools/index.js.map +1 -0
  55. package/dist/adapters/sqlite/tools/json-helpers.d.ts +14 -0
  56. package/dist/adapters/sqlite/tools/json-helpers.d.ts.map +1 -0
  57. package/dist/adapters/sqlite/tools/json-helpers.js +477 -0
  58. package/dist/adapters/sqlite/tools/json-helpers.js.map +1 -0
  59. package/dist/adapters/sqlite/tools/json-operations.d.ts +14 -0
  60. package/dist/adapters/sqlite/tools/json-operations.d.ts.map +1 -0
  61. package/dist/adapters/sqlite/tools/json-operations.js +839 -0
  62. package/dist/adapters/sqlite/tools/json-operations.js.map +1 -0
  63. package/dist/adapters/sqlite/tools/stats.d.ts +15 -0
  64. package/dist/adapters/sqlite/tools/stats.d.ts.map +1 -0
  65. package/dist/adapters/sqlite/tools/stats.js +1219 -0
  66. package/dist/adapters/sqlite/tools/stats.js.map +1 -0
  67. package/dist/adapters/sqlite/tools/text.d.ts +14 -0
  68. package/dist/adapters/sqlite/tools/text.d.ts.map +1 -0
  69. package/dist/adapters/sqlite/tools/text.js +1141 -0
  70. package/dist/adapters/sqlite/tools/text.js.map +1 -0
  71. package/dist/adapters/sqlite/tools/vector.d.ts +14 -0
  72. package/dist/adapters/sqlite/tools/vector.d.ts.map +1 -0
  73. package/dist/adapters/sqlite/tools/vector.js +613 -0
  74. package/dist/adapters/sqlite/tools/vector.js.map +1 -0
  75. package/dist/adapters/sqlite/tools/virtual.d.ts +13 -0
  76. package/dist/adapters/sqlite/tools/virtual.d.ts.map +1 -0
  77. package/dist/adapters/sqlite/tools/virtual.js +930 -0
  78. package/dist/adapters/sqlite/tools/virtual.js.map +1 -0
  79. package/dist/adapters/sqlite/types.d.ts +207 -0
  80. package/dist/adapters/sqlite/types.d.ts.map +1 -0
  81. package/dist/adapters/sqlite/types.js +186 -0
  82. package/dist/adapters/sqlite/types.js.map +1 -0
  83. package/dist/adapters/sqlite-native/NativeSqliteAdapter.d.ts +163 -0
  84. package/dist/adapters/sqlite-native/NativeSqliteAdapter.d.ts.map +1 -0
  85. package/dist/adapters/sqlite-native/NativeSqliteAdapter.js +748 -0
  86. package/dist/adapters/sqlite-native/NativeSqliteAdapter.js.map +1 -0
  87. package/dist/adapters/sqlite-native/index.d.ts +11 -0
  88. package/dist/adapters/sqlite-native/index.d.ts.map +1 -0
  89. package/dist/adapters/sqlite-native/index.js +11 -0
  90. package/dist/adapters/sqlite-native/index.js.map +1 -0
  91. package/dist/adapters/sqlite-native/tools/spatialite.d.ts +19 -0
  92. package/dist/adapters/sqlite-native/tools/spatialite.d.ts.map +1 -0
  93. package/dist/adapters/sqlite-native/tools/spatialite.js +628 -0
  94. package/dist/adapters/sqlite-native/tools/spatialite.js.map +1 -0
  95. package/dist/adapters/sqlite-native/tools/transactions.d.ts +12 -0
  96. package/dist/adapters/sqlite-native/tools/transactions.d.ts.map +1 -0
  97. package/dist/adapters/sqlite-native/tools/transactions.js +255 -0
  98. package/dist/adapters/sqlite-native/tools/transactions.js.map +1 -0
  99. package/dist/adapters/sqlite-native/tools/window.d.ts +12 -0
  100. package/dist/adapters/sqlite-native/tools/window.d.ts.map +1 -0
  101. package/dist/adapters/sqlite-native/tools/window.js +370 -0
  102. package/dist/adapters/sqlite-native/tools/window.js.map +1 -0
  103. package/dist/auth/AuthorizationServerDiscovery.d.ts +90 -0
  104. package/dist/auth/AuthorizationServerDiscovery.d.ts.map +1 -0
  105. package/dist/auth/AuthorizationServerDiscovery.js +204 -0
  106. package/dist/auth/AuthorizationServerDiscovery.js.map +1 -0
  107. package/dist/auth/OAuthResourceServer.d.ts +65 -0
  108. package/dist/auth/OAuthResourceServer.d.ts.map +1 -0
  109. package/dist/auth/OAuthResourceServer.js +121 -0
  110. package/dist/auth/OAuthResourceServer.js.map +1 -0
  111. package/dist/auth/TokenValidator.d.ts +60 -0
  112. package/dist/auth/TokenValidator.d.ts.map +1 -0
  113. package/dist/auth/TokenValidator.js +235 -0
  114. package/dist/auth/TokenValidator.js.map +1 -0
  115. package/dist/auth/errors.d.ts +74 -0
  116. package/dist/auth/errors.d.ts.map +1 -0
  117. package/dist/auth/errors.js +133 -0
  118. package/dist/auth/errors.js.map +1 -0
  119. package/dist/auth/index.d.ts +13 -0
  120. package/dist/auth/index.d.ts.map +1 -0
  121. package/dist/auth/index.js +15 -0
  122. package/dist/auth/index.js.map +1 -0
  123. package/dist/auth/middleware.d.ts +81 -0
  124. package/dist/auth/middleware.d.ts.map +1 -0
  125. package/dist/auth/middleware.js +291 -0
  126. package/dist/auth/middleware.js.map +1 -0
  127. package/dist/auth/scopes.d.ts +136 -0
  128. package/dist/auth/scopes.d.ts.map +1 -0
  129. package/dist/auth/scopes.js +349 -0
  130. package/dist/auth/scopes.js.map +1 -0
  131. package/dist/auth/types.d.ts +257 -0
  132. package/dist/auth/types.d.ts.map +1 -0
  133. package/dist/auth/types.js +8 -0
  134. package/dist/auth/types.js.map +1 -0
  135. package/dist/cli.d.ts +8 -0
  136. package/dist/cli.d.ts.map +1 -0
  137. package/dist/cli.js +236 -0
  138. package/dist/cli.js.map +1 -0
  139. package/dist/constants/ServerInstructions.d.ts +45 -0
  140. package/dist/constants/ServerInstructions.d.ts.map +1 -0
  141. package/dist/constants/ServerInstructions.js +356 -0
  142. package/dist/constants/ServerInstructions.js.map +1 -0
  143. package/dist/filtering/ToolConstants.d.ts +34 -0
  144. package/dist/filtering/ToolConstants.d.ts.map +1 -0
  145. package/dist/filtering/ToolConstants.js +174 -0
  146. package/dist/filtering/ToolConstants.js.map +1 -0
  147. package/dist/filtering/ToolFilter.d.ts +82 -0
  148. package/dist/filtering/ToolFilter.d.ts.map +1 -0
  149. package/dist/filtering/ToolFilter.js +296 -0
  150. package/dist/filtering/ToolFilter.js.map +1 -0
  151. package/dist/index.d.ts +13 -0
  152. package/dist/index.d.ts.map +1 -0
  153. package/dist/index.js +17 -0
  154. package/dist/index.js.map +1 -0
  155. package/dist/server/McpServer.d.ts +61 -0
  156. package/dist/server/McpServer.d.ts.map +1 -0
  157. package/dist/server/McpServer.js +270 -0
  158. package/dist/server/McpServer.js.map +1 -0
  159. package/dist/transports/http.d.ts +134 -0
  160. package/dist/transports/http.d.ts.map +1 -0
  161. package/dist/transports/http.js +516 -0
  162. package/dist/transports/http.js.map +1 -0
  163. package/dist/transports/index.d.ts +5 -0
  164. package/dist/transports/index.d.ts.map +1 -0
  165. package/dist/transports/index.js +5 -0
  166. package/dist/transports/index.js.map +1 -0
  167. package/dist/types/index.d.ts +380 -0
  168. package/dist/types/index.d.ts.map +1 -0
  169. package/dist/types/index.js +68 -0
  170. package/dist/types/index.js.map +1 -0
  171. package/dist/utils/annotations.d.ts +44 -0
  172. package/dist/utils/annotations.d.ts.map +1 -0
  173. package/dist/utils/annotations.js +77 -0
  174. package/dist/utils/annotations.js.map +1 -0
  175. package/dist/utils/errors.d.ts +155 -0
  176. package/dist/utils/errors.d.ts.map +1 -0
  177. package/dist/utils/errors.js +329 -0
  178. package/dist/utils/errors.js.map +1 -0
  179. package/dist/utils/identifiers.d.ts +121 -0
  180. package/dist/utils/identifiers.d.ts.map +1 -0
  181. package/dist/utils/identifiers.js +319 -0
  182. package/dist/utils/identifiers.js.map +1 -0
  183. package/dist/utils/index.d.ts +7 -0
  184. package/dist/utils/index.d.ts.map +1 -0
  185. package/dist/utils/index.js +7 -0
  186. package/dist/utils/index.js.map +1 -0
  187. package/dist/utils/insightsManager.d.ts +39 -0
  188. package/dist/utils/insightsManager.d.ts.map +1 -0
  189. package/dist/utils/insightsManager.js +63 -0
  190. package/dist/utils/insightsManager.js.map +1 -0
  191. package/dist/utils/logger.d.ts +189 -0
  192. package/dist/utils/logger.d.ts.map +1 -0
  193. package/dist/utils/logger.js +394 -0
  194. package/dist/utils/logger.js.map +1 -0
  195. package/dist/utils/progress-utils.d.ts +54 -0
  196. package/dist/utils/progress-utils.d.ts.map +1 -0
  197. package/dist/utils/progress-utils.js +74 -0
  198. package/dist/utils/progress-utils.js.map +1 -0
  199. package/dist/utils/resourceAnnotations.d.ts +36 -0
  200. package/dist/utils/resourceAnnotations.d.ts.map +1 -0
  201. package/dist/utils/resourceAnnotations.js +57 -0
  202. package/dist/utils/resourceAnnotations.js.map +1 -0
  203. package/dist/utils/where-clause.d.ts +41 -0
  204. package/dist/utils/where-clause.d.ts.map +1 -0
  205. package/dist/utils/where-clause.js +116 -0
  206. package/dist/utils/where-clause.js.map +1 -0
  207. package/package.json +83 -0
  208. package/server.json +53 -0
@@ -0,0 +1,34 @@
1
+ /**
2
+ * db-mcp - Tool Constants
3
+ *
4
+ * Defines the tool groups and meta-groups used for filtering.
5
+ *
6
+ * Actual tool groups (from code audit):
7
+ * core: 8 tools (from core.ts)
8
+ * json: 23 tools (from json-helpers.ts + json-operations.ts)
9
+ * text: 17 tools (from text.ts + fts.ts)
10
+ * stats: 19 tools (from stats.ts + window.ts)
11
+ * vector: 11 tools (from vector.ts)
12
+ * admin: 33 tools (from admin.ts + virtual.ts + transactions.ts)
13
+ * geo: 11 tools (from geo.ts + spatialite.ts) - Native: 11, WASM: 4
14
+ * Total: 122 Native / 102 WASM tools
15
+ *
16
+ * Note: 3 built-in server tools (server_info, server_health, list_adapters)
17
+ * are always available regardless of filter settings.
18
+ */
19
+ import type { ToolGroup, MetaGroup } from "../types/index.js";
20
+ /**
21
+ * All valid tool groups
22
+ */
23
+ export declare const ALL_TOOL_GROUPS: ToolGroup[];
24
+ /**
25
+ * Tool groups - kept for backwards compatibility with scopes.ts
26
+ * The actual filtering uses the tool's 'group' property, not these lists.
27
+ */
28
+ export declare const TOOL_GROUPS: Record<ToolGroup, string[]>;
29
+ /**
30
+ * Meta-groups that expand to multiple tool groups.
31
+ * These provide shortcuts for common use cases.
32
+ */
33
+ export declare const META_GROUPS: Record<MetaGroup, ToolGroup[]>;
34
+ //# sourceMappingURL=ToolConstants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolConstants.d.ts","sourceRoot":"","sources":["../../src/filtering/ToolConstants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,EAQtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAwHnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,CAkBtD,CAAC"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * db-mcp - Tool Constants
3
+ *
4
+ * Defines the tool groups and meta-groups used for filtering.
5
+ *
6
+ * Actual tool groups (from code audit):
7
+ * core: 8 tools (from core.ts)
8
+ * json: 23 tools (from json-helpers.ts + json-operations.ts)
9
+ * text: 17 tools (from text.ts + fts.ts)
10
+ * stats: 19 tools (from stats.ts + window.ts)
11
+ * vector: 11 tools (from vector.ts)
12
+ * admin: 33 tools (from admin.ts + virtual.ts + transactions.ts)
13
+ * geo: 11 tools (from geo.ts + spatialite.ts) - Native: 11, WASM: 4
14
+ * Total: 122 Native / 102 WASM tools
15
+ *
16
+ * Note: 3 built-in server tools (server_info, server_health, list_adapters)
17
+ * are always available regardless of filter settings.
18
+ */
19
+ /**
20
+ * All valid tool groups
21
+ */
22
+ export const ALL_TOOL_GROUPS = [
23
+ "core",
24
+ "json",
25
+ "text",
26
+ "stats",
27
+ "vector",
28
+ "admin",
29
+ "geo",
30
+ ];
31
+ /**
32
+ * Tool groups - kept for backwards compatibility with scopes.ts
33
+ * The actual filtering uses the tool's 'group' property, not these lists.
34
+ */
35
+ export const TOOL_GROUPS = {
36
+ core: [
37
+ "read_query",
38
+ "write_query",
39
+ "list_tables",
40
+ "describe_table",
41
+ "create_table",
42
+ "drop_table",
43
+ "get_indexes",
44
+ "create_index",
45
+ ],
46
+ json: [
47
+ // JSON Helper Tools (8)
48
+ "json_insert",
49
+ "json_update",
50
+ "json_select",
51
+ "json_query",
52
+ "json_validate_path",
53
+ "json_merge",
54
+ "json_analyze_schema",
55
+ "create_json_collection",
56
+ // JSON Operation Tools (12)
57
+ "json_valid",
58
+ "json_extract",
59
+ "json_set",
60
+ "json_remove",
61
+ "json_type",
62
+ "json_array_length",
63
+ "json_array_append",
64
+ "json_keys",
65
+ "json_each",
66
+ "json_group_array",
67
+ "json_group_object",
68
+ "json_pretty",
69
+ // JSONB Tools (3)
70
+ "jsonb_convert",
71
+ "json_storage_info",
72
+ "json_normalize_column",
73
+ ],
74
+ text: [
75
+ "regex_extract",
76
+ "regex_match",
77
+ "text_split",
78
+ "text_concat",
79
+ "text_replace",
80
+ "text_trim",
81
+ "text_case",
82
+ "text_substring",
83
+ "fts_create",
84
+ "fts_insert",
85
+ "fts_search",
86
+ "fts_match",
87
+ ],
88
+ stats: [
89
+ "stats_basic",
90
+ "stats_count",
91
+ "stats_group_by",
92
+ "stats_histogram",
93
+ "stats_percentile",
94
+ "stats_regression",
95
+ "stats_correlation",
96
+ "stats_zscore",
97
+ "stats_time_bucket",
98
+ "stats_moving_avg",
99
+ "geo_distance",
100
+ "geo_bounding_box",
101
+ "geo_point_in_radius",
102
+ "geo_nearest",
103
+ "geo_encode",
104
+ "geo_decode",
105
+ ],
106
+ vector: [
107
+ "vector_create_table",
108
+ "vector_store",
109
+ "vector_batch_store",
110
+ "vector_search",
111
+ "vector_get",
112
+ "vector_delete",
113
+ "vector_count",
114
+ "vector_stats",
115
+ "vector_dimensions",
116
+ "vector_normalize",
117
+ "vector_distance",
118
+ ],
119
+ admin: [
120
+ "backup",
121
+ "analyze",
122
+ "integrity_check",
123
+ "optimize",
124
+ "generate_series",
125
+ "create_view",
126
+ "list_views",
127
+ "drop_view",
128
+ "dbstat",
129
+ "vacuum",
130
+ "transaction_begin",
131
+ "transaction_commit",
132
+ "transaction_rollback",
133
+ "transaction_savepoint",
134
+ "transaction_release",
135
+ "transaction_rollback_to",
136
+ "transaction_execute",
137
+ "window_row_number",
138
+ "window_rank",
139
+ "window_lag_lead",
140
+ "window_running_total",
141
+ ],
142
+ geo: [
143
+ "geo_distance",
144
+ "geo_nearby",
145
+ "geo_bounding_box",
146
+ "geo_cluster",
147
+ "spatialite_load",
148
+ "spatialite_create_table",
149
+ "spatialite_query",
150
+ "spatialite_analyze",
151
+ "spatialite_index",
152
+ "spatialite_transform",
153
+ "spatialite_import",
154
+ ],
155
+ };
156
+ /**
157
+ * Meta-groups that expand to multiple tool groups.
158
+ * These provide shortcuts for common use cases.
159
+ */
160
+ export const META_GROUPS = {
161
+ // General development - Core + JSON + Text (48 tools)
162
+ starter: ["core", "json", "text"],
163
+ // Data analysis - Core + JSON + Stats (50 tools Native, 44 WASM)
164
+ analytics: ["core", "json", "stats"],
165
+ // Search workloads - Core + Text + Vector (36 tools)
166
+ search: ["core", "text", "vector"],
167
+ // Geospatial workloads - Core + Geo + Vector (30 tools Native, 23 WASM)
168
+ spatial: ["core", "geo", "vector"],
169
+ // Bare minimum - Core only (8 tools)
170
+ minimal: ["core"],
171
+ // All tools enabled (122 Native / 102 WASM tools)
172
+ full: ["core", "json", "text", "stats", "vector", "admin", "geo"],
173
+ };
174
+ //# sourceMappingURL=ToolConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolConstants.js","sourceRoot":"","sources":["../../src/filtering/ToolConstants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAgB;IAC1C,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,KAAK;CACN,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAgC;IACtD,IAAI,EAAE;QACJ,YAAY;QACZ,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,cAAc;QACd,YAAY;QACZ,aAAa;QACb,cAAc;KACf;IACD,IAAI,EAAE;QACJ,wBAAwB;QACxB,aAAa;QACb,aAAa;QACb,aAAa;QACb,YAAY;QACZ,oBAAoB;QACpB,YAAY;QACZ,qBAAqB;QACrB,wBAAwB;QACxB,4BAA4B;QAC5B,YAAY;QACZ,cAAc;QACd,UAAU;QACV,aAAa;QACb,WAAW;QACX,mBAAmB;QACnB,mBAAmB;QACnB,WAAW;QACX,WAAW;QACX,kBAAkB;QAClB,mBAAmB;QACnB,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,uBAAuB;KACxB;IACD,IAAI,EAAE;QACJ,eAAe;QACf,aAAa;QACb,YAAY;QACZ,aAAa;QACb,cAAc;QACd,WAAW;QACX,WAAW;QACX,gBAAgB;QAChB,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,WAAW;KACZ;IACD,KAAK,EAAE;QACL,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB;QAClB,kBAAkB;QAClB,mBAAmB;QACnB,cAAc;QACd,mBAAmB;QACnB,kBAAkB;QAClB,cAAc;QACd,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,YAAY;QACZ,YAAY;KACb;IACD,MAAM,EAAE;QACN,qBAAqB;QACrB,cAAc;QACd,oBAAoB;QACpB,eAAe;QACf,YAAY;QACZ,eAAe;QACf,cAAc;QACd,cAAc;QACd,mBAAmB;QACnB,kBAAkB;QAClB,iBAAiB;KAClB;IACD,KAAK,EAAE;QACL,QAAQ;QACR,SAAS;QACT,iBAAiB;QACjB,UAAU;QACV,iBAAiB;QACjB,aAAa;QACb,YAAY;QACZ,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,mBAAmB;QACnB,oBAAoB;QACpB,sBAAsB;QACtB,uBAAuB;QACvB,qBAAqB;QACrB,yBAAyB;QACzB,qBAAqB;QACrB,mBAAmB;QACnB,aAAa;QACb,iBAAiB;QACjB,sBAAsB;KACvB;IACD,GAAG,EAAE;QACH,cAAc;QACd,YAAY;QACZ,kBAAkB;QAClB,aAAa;QACb,iBAAiB;QACjB,yBAAyB;QACzB,kBAAkB;QAClB,oBAAoB;QACpB,kBAAkB;QAClB,sBAAsB;QACtB,mBAAmB;KACpB;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAmC;IACzD,sDAAsD;IACtD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAEjC,iEAAiE;IACjE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IAEpC,qDAAqD;IACrD,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;IAElC,wEAAwE;IACxE,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;IAElC,qCAAqC;IACrC,OAAO,EAAE,CAAC,MAAM,CAAC;IAEjB,kDAAkD;IAClD,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC;CAClE,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * db-mcp - Tool Filtering System
3
+ *
4
+ * Parses and applies tool filter rules from environment variables.
5
+ * Compatible with postgres-mcp-server filtering syntax.
6
+ *
7
+ * Syntax:
8
+ * groupName → Enable only this group (whitelist mode)
9
+ * shortcut → Use a preset (starter, analytics, search, etc.)
10
+ * -group → Disable all tools in a group
11
+ * +group → Enable all tools in a group
12
+ * -tool → Disable a specific tool
13
+ * +tool → Enable a specific tool
14
+ *
15
+ * Mode Detection:
16
+ * - If first token starts with '-', start with ALL groups enabled (exclusion mode)
17
+ * - Otherwise, start with NO groups enabled (whitelist mode)
18
+ *
19
+ * Examples:
20
+ * "core,json" → Whitelist: only core and json groups
21
+ * "starter" → Preset: core + json + text groups
22
+ * "starter,-fts5" → Preset minus fts5 group
23
+ * "-vector,-geo" → Legacy: all groups except vector and geo
24
+ */
25
+ import type { ToolGroup, MetaGroup, ToolFilterConfig, ToolDefinition } from "../types/index.js";
26
+ export { META_GROUPS, TOOL_GROUPS, ALL_TOOL_GROUPS } from "./ToolConstants.js";
27
+ /**
28
+ * Get all tool names from all groups (cached)
29
+ */
30
+ export declare function getAllToolNames(): string[];
31
+ /**
32
+ * Get the group for a specific tool (O(1) lookup)
33
+ */
34
+ export declare function getToolGroup(toolName: string): ToolGroup | undefined;
35
+ /**
36
+ * Clear all caches - useful for testing
37
+ */
38
+ export declare function clearToolFilterCaches(): void;
39
+ /**
40
+ * Check if a name is a valid tool group
41
+ */
42
+ export declare function isToolGroup(name: string): name is ToolGroup;
43
+ /**
44
+ * Check if a name is a valid meta-group
45
+ */
46
+ export declare function isMetaGroup(name: string): name is MetaGroup;
47
+ /**
48
+ * Get tool groups from a meta-group
49
+ */
50
+ export declare function getMetaGroupGroups(metaGroup: MetaGroup): ToolGroup[];
51
+ /**
52
+ * Parse a tool filter string into structured rules
53
+ *
54
+ * @param filterString - The filter string (e.g., "starter" or "-vector,-geo")
55
+ * @returns Parsed filter configuration with enabled groups
56
+ */
57
+ export declare function parseToolFilter(filterString: string | undefined): ToolFilterConfig;
58
+ /**
59
+ * Check if a tool is enabled based on filter configuration
60
+ * Uses the tool's group property for matching
61
+ */
62
+ export declare function isToolEnabled(tool: ToolDefinition, config: ToolFilterConfig): boolean;
63
+ /**
64
+ * Filter a list of tool definitions based on filter configuration
65
+ */
66
+ export declare function filterTools(tools: ToolDefinition[], config: ToolFilterConfig): ToolDefinition[];
67
+ /**
68
+ * Get the tool filter from environment variable
69
+ */
70
+ export declare function getToolFilterFromEnv(): ToolFilterConfig;
71
+ /**
72
+ * Generate a summary of the current filter configuration
73
+ */
74
+ export declare function getFilterSummary(config: ToolFilterConfig): string;
75
+ /**
76
+ * Get a list of all meta-groups with their expanded groups
77
+ */
78
+ export declare function getMetaGroupInfo(): {
79
+ metaGroup: MetaGroup;
80
+ groups: ToolGroup[];
81
+ }[];
82
+ //# sourceMappingURL=ToolFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolFilter.d.ts","sourceRoot":"","sources":["../../src/filtering/ToolFilter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAc/E;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAM1C;AAkBD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,SAAS,CAE3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,SAAS,CAE3D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,CAEpE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,gBAAgB,CA+HlB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAwBT;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,gBAAgB,GACvB,cAAc,EAAE,CAElB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,CAIvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAiCjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,EAAE,CAKF"}
@@ -0,0 +1,296 @@
1
+ /**
2
+ * db-mcp - Tool Filtering System
3
+ *
4
+ * Parses and applies tool filter rules from environment variables.
5
+ * Compatible with postgres-mcp-server filtering syntax.
6
+ *
7
+ * Syntax:
8
+ * groupName → Enable only this group (whitelist mode)
9
+ * shortcut → Use a preset (starter, analytics, search, etc.)
10
+ * -group → Disable all tools in a group
11
+ * +group → Enable all tools in a group
12
+ * -tool → Disable a specific tool
13
+ * +tool → Enable a specific tool
14
+ *
15
+ * Mode Detection:
16
+ * - If first token starts with '-', start with ALL groups enabled (exclusion mode)
17
+ * - Otherwise, start with NO groups enabled (whitelist mode)
18
+ *
19
+ * Examples:
20
+ * "core,json" → Whitelist: only core and json groups
21
+ * "starter" → Preset: core + json + text groups
22
+ * "starter,-fts5" → Preset minus fts5 group
23
+ * "-vector,-geo" → Legacy: all groups except vector and geo
24
+ */
25
+ import { META_GROUPS, ALL_TOOL_GROUPS, TOOL_GROUPS } from "./ToolConstants.js";
26
+ // Re-export for backwards compatibility
27
+ export { META_GROUPS, TOOL_GROUPS, ALL_TOOL_GROUPS } from "./ToolConstants.js";
28
+ /**
29
+ * Cached list of all tool names
30
+ * Lazy-initialized since TOOL_GROUPS is immutable
31
+ */
32
+ let cachedAllToolNames = null;
33
+ /**
34
+ * Reverse lookup map: tool name -> group
35
+ * Lazy-initialized for O(1) tool group lookups
36
+ */
37
+ let toolToGroupMap = null;
38
+ /**
39
+ * Get all tool names from all groups (cached)
40
+ */
41
+ export function getAllToolNames() {
42
+ if (cachedAllToolNames) {
43
+ return cachedAllToolNames;
44
+ }
45
+ cachedAllToolNames = ALL_TOOL_GROUPS.flatMap((group) => TOOL_GROUPS[group]);
46
+ return cachedAllToolNames;
47
+ }
48
+ /**
49
+ * Get or initialize the tool-to-group reverse lookup map
50
+ */
51
+ function getToolToGroupMap() {
52
+ if (toolToGroupMap) {
53
+ return toolToGroupMap;
54
+ }
55
+ toolToGroupMap = new Map();
56
+ for (const group of ALL_TOOL_GROUPS) {
57
+ for (const tool of TOOL_GROUPS[group]) {
58
+ toolToGroupMap.set(tool, group);
59
+ }
60
+ }
61
+ return toolToGroupMap;
62
+ }
63
+ /**
64
+ * Get the group for a specific tool (O(1) lookup)
65
+ */
66
+ export function getToolGroup(toolName) {
67
+ return getToolToGroupMap().get(toolName);
68
+ }
69
+ /**
70
+ * Clear all caches - useful for testing
71
+ */
72
+ export function clearToolFilterCaches() {
73
+ cachedAllToolNames = null;
74
+ toolToGroupMap = null;
75
+ }
76
+ /**
77
+ * Check if a name is a valid tool group
78
+ */
79
+ export function isToolGroup(name) {
80
+ return ALL_TOOL_GROUPS.includes(name);
81
+ }
82
+ /**
83
+ * Check if a name is a valid meta-group
84
+ */
85
+ export function isMetaGroup(name) {
86
+ return name in META_GROUPS;
87
+ }
88
+ /**
89
+ * Get tool groups from a meta-group
90
+ */
91
+ export function getMetaGroupGroups(metaGroup) {
92
+ return META_GROUPS[metaGroup];
93
+ }
94
+ /**
95
+ * Parse a tool filter string into structured rules
96
+ *
97
+ * @param filterString - The filter string (e.g., "starter" or "-vector,-geo")
98
+ * @returns Parsed filter configuration with enabled groups
99
+ */
100
+ export function parseToolFilter(filterString) {
101
+ // Default: all groups enabled, no specific tool exclusions
102
+ const enabledGroups = new Set(ALL_TOOL_GROUPS);
103
+ const excludedTools = new Set();
104
+ const includedTools = new Set();
105
+ if (!filterString || filterString.trim() === "") {
106
+ return {
107
+ raw: "",
108
+ rules: [],
109
+ enabledGroups,
110
+ excludedTools,
111
+ includedTools,
112
+ };
113
+ }
114
+ const rules = [];
115
+ const parts = filterString
116
+ .split(",")
117
+ .map((p) => p.trim())
118
+ .filter((p) => p);
119
+ if (parts.length === 0) {
120
+ return {
121
+ raw: filterString,
122
+ rules: [],
123
+ enabledGroups,
124
+ excludedTools,
125
+ includedTools,
126
+ };
127
+ }
128
+ // Mode detection: if first token starts with '-', exclusion mode (legacy)
129
+ // Otherwise, whitelist mode (new) - start with empty groups
130
+ const firstPart = parts[0];
131
+ if (!firstPart) {
132
+ return {
133
+ raw: filterString,
134
+ rules: [],
135
+ enabledGroups,
136
+ excludedTools,
137
+ includedTools,
138
+ };
139
+ }
140
+ const startsWithExclude = firstPart.startsWith("-");
141
+ if (!startsWithExclude) {
142
+ enabledGroups.clear();
143
+ }
144
+ for (const part of parts) {
145
+ if (!part)
146
+ continue;
147
+ let isInclude = true; // Default to include (whitelist mode)
148
+ let isExclude = false;
149
+ let target = part;
150
+ if (part.startsWith("+")) {
151
+ isInclude = true;
152
+ target = part.substring(1);
153
+ }
154
+ else if (part.startsWith("-")) {
155
+ isInclude = false;
156
+ isExclude = true;
157
+ target = part.substring(1);
158
+ }
159
+ // No prefix = include (whitelist mode)
160
+ // Special case: 'all'
161
+ if (target === "all") {
162
+ if (isExclude) {
163
+ enabledGroups.clear();
164
+ }
165
+ else {
166
+ for (const group of ALL_TOOL_GROUPS) {
167
+ enabledGroups.add(group);
168
+ }
169
+ }
170
+ continue;
171
+ }
172
+ const targetIsMetaGroup = isMetaGroup(target);
173
+ const targetIsGroup = isToolGroup(target);
174
+ rules.push({
175
+ type: isInclude ? "include" : "exclude",
176
+ target,
177
+ isGroup: targetIsGroup || targetIsMetaGroup,
178
+ });
179
+ // Apply rule - check meta-groups first, then regular groups, then individual tools
180
+ if (targetIsMetaGroup) {
181
+ // Expand meta-group to its constituent groups
182
+ const groupsInMeta = getMetaGroupGroups(target);
183
+ if (isExclude) {
184
+ for (const group of groupsInMeta) {
185
+ enabledGroups.delete(group);
186
+ }
187
+ }
188
+ else {
189
+ for (const group of groupsInMeta) {
190
+ enabledGroups.add(group);
191
+ }
192
+ }
193
+ }
194
+ else if (targetIsGroup) {
195
+ // Add/remove a single group
196
+ if (isExclude) {
197
+ enabledGroups.delete(target);
198
+ }
199
+ else {
200
+ enabledGroups.add(target);
201
+ }
202
+ }
203
+ else {
204
+ // Individual tool - track in include/exclude sets
205
+ if (isExclude) {
206
+ excludedTools.add(target);
207
+ includedTools.delete(target);
208
+ }
209
+ else {
210
+ includedTools.add(target);
211
+ excludedTools.delete(target);
212
+ }
213
+ }
214
+ }
215
+ return {
216
+ raw: filterString,
217
+ rules,
218
+ enabledGroups,
219
+ excludedTools,
220
+ includedTools,
221
+ };
222
+ }
223
+ /**
224
+ * Check if a tool is enabled based on filter configuration
225
+ * Uses the tool's group property for matching
226
+ */
227
+ export function isToolEnabled(tool, config) {
228
+ const baseName = tool.name.replace(/^(sqlite|mysql|postgres|mongodb|redis|sqlserver)_/, "");
229
+ // Check explicit tool exclusion
230
+ if (config.excludedTools.has(tool.name) ||
231
+ config.excludedTools.has(baseName)) {
232
+ return false;
233
+ }
234
+ // Check explicit tool inclusion
235
+ if (config.includedTools.has(tool.name) ||
236
+ config.includedTools.has(baseName)) {
237
+ return true;
238
+ }
239
+ // Check if tool's group is enabled
240
+ return config.enabledGroups.has(tool.group);
241
+ }
242
+ /**
243
+ * Filter a list of tool definitions based on filter configuration
244
+ */
245
+ export function filterTools(tools, config) {
246
+ return tools.filter((tool) => isToolEnabled(tool, config));
247
+ }
248
+ /**
249
+ * Get the tool filter from environment variable
250
+ */
251
+ export function getToolFilterFromEnv() {
252
+ const filterString = process.env["DB_MCP_TOOL_FILTER"] ?? process.env["TOOL_FILTER"] ?? "";
253
+ return parseToolFilter(filterString);
254
+ }
255
+ /**
256
+ * Generate a summary of the current filter configuration
257
+ */
258
+ export function getFilterSummary(config) {
259
+ const lines = [
260
+ `Tool Filter Summary:`,
261
+ ` Filter: ${config.raw || "(none)"}`,
262
+ ` Enabled groups: ${config.enabledGroups.size}/${ALL_TOOL_GROUPS.length}`,
263
+ ];
264
+ if (config.enabledGroups.size > 0) {
265
+ lines.push(` Groups: ${[...config.enabledGroups].join(", ")}`);
266
+ }
267
+ if (config.excludedTools.size > 0) {
268
+ lines.push(` Excluded tools: ${[...config.excludedTools].join(", ")}`);
269
+ }
270
+ if (config.includedTools.size > 0) {
271
+ lines.push(` Included tools: ${[...config.includedTools].join(", ")}`);
272
+ }
273
+ if (config.rules.length > 0) {
274
+ lines.push(` Rules applied: ${config.rules.length}`);
275
+ for (const rule of config.rules) {
276
+ const prefix = rule.type === "include" ? "+" : "-";
277
+ const type = isMetaGroup(rule.target)
278
+ ? "meta-group"
279
+ : rule.isGroup
280
+ ? "group"
281
+ : "tool";
282
+ lines.push(` ${prefix}${rule.target} (${type})`);
283
+ }
284
+ }
285
+ return lines.join("\n");
286
+ }
287
+ /**
288
+ * Get a list of all meta-groups with their expanded groups
289
+ */
290
+ export function getMetaGroupInfo() {
291
+ return Object.entries(META_GROUPS).map(([metaGroup, groups]) => ({
292
+ metaGroup: metaGroup,
293
+ groups,
294
+ }));
295
+ }
296
+ //# sourceMappingURL=ToolFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolFilter.js","sourceRoot":"","sources":["../../src/filtering/ToolFilter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * db-mcp - SQLite MCP Server
3
+ *
4
+ * Main entry point and public API exports.
5
+ */
6
+ export { DbMcpServer, createServer, DEFAULT_CONFIG, } from "./server/McpServer.js";
7
+ export type { DatabaseType, DatabaseConfig, HealthStatus, QueryResult, ColumnInfo, TableInfo, SchemaInfo, IndexInfo, ConstraintInfo, TransportType, McpServerConfig, OAuthConfig, OAuthScope, TokenClaims, RequestContext, ToolGroup, ToolFilterRule, ToolFilterConfig, AdapterCapabilities, ToolDefinition, ResourceDefinition, PromptDefinition, } from "./types/index.js";
8
+ export { DbMcpError, ConnectionError, QueryError, AuthenticationError, AuthorizationError, ValidationError, } from "./types/index.js";
9
+ export { DatabaseAdapter } from "./adapters/DatabaseAdapter.js";
10
+ export { TOOL_GROUPS, META_GROUPS, ALL_TOOL_GROUPS, parseToolFilter, isToolEnabled, filterTools, getToolFilterFromEnv, getFilterSummary, } from "./filtering/ToolFilter.js";
11
+ export declare const VERSION = "0.1.0";
12
+ export declare const NAME = "db-mcp";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EAEV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,cAAc,EAGd,aAAa,EACb,eAAe,EAGf,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EAGd,SAAS,EACT,cAAc,EACd,gBAAgB,EAGhB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,UAAU,EACV,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EACL,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAGnC,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,IAAI,WAAW,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,17 @@
1
+ /**
2
+ * db-mcp - SQLite MCP Server
3
+ *
4
+ * Main entry point and public API exports.
5
+ */
6
+ // Core server
7
+ export { DbMcpServer, createServer, DEFAULT_CONFIG, } from "./server/McpServer.js";
8
+ // Error classes
9
+ export { DbMcpError, ConnectionError, QueryError, AuthenticationError, AuthorizationError, ValidationError, } from "./types/index.js";
10
+ // Base adapter class
11
+ export { DatabaseAdapter } from "./adapters/DatabaseAdapter.js";
12
+ // Tool filtering utilities
13
+ export { TOOL_GROUPS, META_GROUPS, ALL_TOOL_GROUPS, parseToolFilter, isToolEnabled, filterTools, getToolFilterFromEnv, getFilterSummary, } from "./filtering/ToolFilter.js";
14
+ // Version info
15
+ export const VERSION = "0.1.0";
16
+ export const NAME = "db-mcp";
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc;AACd,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,uBAAuB,CAAC;AAqC/B,gBAAgB;AAChB,OAAO,EACL,UAAU,EACV,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,qBAAqB;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,2BAA2B;AAC3B,OAAO,EACL,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAEnC,eAAe;AACf,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAC/B,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAC"}