motionmcp 1.0.1 → 2.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 (159) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +251 -417
  3. package/dist/handlers/CommentHandler.d.ts +9 -0
  4. package/dist/handlers/CommentHandler.d.ts.map +1 -0
  5. package/dist/handlers/CommentHandler.js +66 -0
  6. package/dist/handlers/CommentHandler.js.map +1 -0
  7. package/dist/handlers/CustomFieldHandler.d.ts +14 -0
  8. package/dist/handlers/CustomFieldHandler.d.ts.map +1 -0
  9. package/dist/handlers/CustomFieldHandler.js +95 -0
  10. package/dist/handlers/CustomFieldHandler.js.map +1 -0
  11. package/dist/handlers/HandlerFactory.d.ts +15 -0
  12. package/dist/handlers/HandlerFactory.d.ts.map +1 -0
  13. package/dist/handlers/HandlerFactory.js +58 -0
  14. package/dist/handlers/HandlerFactory.js.map +1 -0
  15. package/dist/handlers/ProjectHandler.d.ts +10 -0
  16. package/dist/handlers/ProjectHandler.d.ts.map +1 -0
  17. package/dist/handlers/ProjectHandler.js +63 -0
  18. package/dist/handlers/ProjectHandler.js.map +1 -0
  19. package/dist/handlers/RecurringTaskHandler.d.ts +10 -0
  20. package/dist/handlers/RecurringTaskHandler.d.ts.map +1 -0
  21. package/dist/handlers/RecurringTaskHandler.js +68 -0
  22. package/dist/handlers/RecurringTaskHandler.js.map +1 -0
  23. package/dist/handlers/ScheduleHandler.d.ts +8 -0
  24. package/dist/handlers/ScheduleHandler.d.ts.map +1 -0
  25. package/dist/handlers/ScheduleHandler.js +43 -0
  26. package/dist/handlers/ScheduleHandler.js.map +1 -0
  27. package/dist/handlers/SearchHandler.d.ts +10 -0
  28. package/dist/handlers/SearchHandler.d.ts.map +1 -0
  29. package/dist/handlers/SearchHandler.js +116 -0
  30. package/dist/handlers/SearchHandler.js.map +1 -0
  31. package/dist/handlers/StatusHandler.d.ts +8 -0
  32. package/dist/handlers/StatusHandler.d.ts.map +1 -0
  33. package/dist/handlers/StatusHandler.js +22 -0
  34. package/dist/handlers/StatusHandler.js.map +1 -0
  35. package/dist/handlers/TaskHandler.d.ts +22 -0
  36. package/dist/handlers/TaskHandler.d.ts.map +1 -0
  37. package/dist/handlers/TaskHandler.js +266 -0
  38. package/dist/handlers/TaskHandler.js.map +1 -0
  39. package/dist/handlers/UserHandler.d.ts +9 -0
  40. package/dist/handlers/UserHandler.d.ts.map +1 -0
  41. package/dist/handlers/UserHandler.js +36 -0
  42. package/dist/handlers/UserHandler.js.map +1 -0
  43. package/dist/handlers/WorkspaceHandler.d.ts +10 -0
  44. package/dist/handlers/WorkspaceHandler.d.ts.map +1 -0
  45. package/dist/handlers/WorkspaceHandler.js +49 -0
  46. package/dist/handlers/WorkspaceHandler.js.map +1 -0
  47. package/dist/handlers/base/BaseHandler.d.ts +16 -0
  48. package/dist/handlers/base/BaseHandler.d.ts.map +1 -0
  49. package/dist/handlers/base/BaseHandler.js +31 -0
  50. package/dist/handlers/base/BaseHandler.js.map +1 -0
  51. package/dist/handlers/base/HandlerInterface.d.ts +18 -0
  52. package/dist/handlers/base/HandlerInterface.d.ts.map +1 -0
  53. package/dist/handlers/base/HandlerInterface.js +3 -0
  54. package/dist/handlers/base/HandlerInterface.js.map +1 -0
  55. package/dist/handlers/index.d.ts +14 -0
  56. package/dist/handlers/index.d.ts.map +1 -0
  57. package/dist/handlers/index.js +31 -0
  58. package/dist/handlers/index.js.map +1 -0
  59. package/dist/mcp-server-old.d.ts +29 -0
  60. package/dist/mcp-server-old.d.ts.map +1 -0
  61. package/dist/mcp-server-old.js +1304 -0
  62. package/dist/mcp-server-old.js.map +1 -0
  63. package/dist/mcp-server.d.ts +15 -0
  64. package/dist/mcp-server.d.ts.map +1 -0
  65. package/dist/mcp-server.js +145 -0
  66. package/dist/mcp-server.js.map +1 -0
  67. package/dist/schemas/motion.d.ts +4971 -0
  68. package/dist/schemas/motion.d.ts.map +1 -0
  69. package/dist/schemas/motion.js +328 -0
  70. package/dist/schemas/motion.js.map +1 -0
  71. package/dist/services/motionApi.d.ts +186 -0
  72. package/dist/services/motionApi.d.ts.map +1 -0
  73. package/dist/services/motionApi.js +1912 -0
  74. package/dist/services/motionApi.js.map +1 -0
  75. package/dist/tools/ToolConfigurator.d.ts +19 -0
  76. package/dist/tools/ToolConfigurator.d.ts.map +1 -0
  77. package/dist/tools/ToolConfigurator.js +89 -0
  78. package/dist/tools/ToolConfigurator.js.map +1 -0
  79. package/dist/tools/ToolDefinitions.d.ts +25 -0
  80. package/dist/tools/ToolDefinitions.d.ts.map +1 -0
  81. package/dist/tools/ToolDefinitions.js +502 -0
  82. package/dist/tools/ToolDefinitions.js.map +1 -0
  83. package/dist/tools/ToolRegistry.d.ts +16 -0
  84. package/dist/tools/ToolRegistry.d.ts.map +1 -0
  85. package/dist/tools/ToolRegistry.js +89 -0
  86. package/dist/tools/ToolRegistry.js.map +1 -0
  87. package/dist/tools/index.d.ts +4 -0
  88. package/dist/tools/index.d.ts.map +1 -0
  89. package/dist/tools/index.js +21 -0
  90. package/dist/tools/index.js.map +1 -0
  91. package/dist/types/mcp-tool-args.d.ts +122 -0
  92. package/dist/types/mcp-tool-args.d.ts.map +1 -0
  93. package/dist/types/mcp-tool-args.js +7 -0
  94. package/dist/types/mcp-tool-args.js.map +1 -0
  95. package/dist/types/mcp.d.ts +32 -0
  96. package/dist/types/mcp.d.ts.map +1 -0
  97. package/dist/types/mcp.js +3 -0
  98. package/dist/types/mcp.js.map +1 -0
  99. package/dist/types/motion.d.ts +304 -0
  100. package/dist/types/motion.d.ts.map +1 -0
  101. package/dist/types/motion.js +3 -0
  102. package/dist/types/motion.js.map +1 -0
  103. package/dist/utils/cache.d.ts +25 -0
  104. package/dist/utils/cache.d.ts.map +1 -0
  105. package/dist/utils/cache.js +135 -0
  106. package/dist/utils/cache.js.map +1 -0
  107. package/dist/utils/constants.d.ts +83 -0
  108. package/dist/utils/constants.d.ts.map +1 -0
  109. package/dist/utils/constants.js +151 -0
  110. package/dist/utils/constants.js.map +1 -0
  111. package/dist/utils/errorHandling.d.ts +50 -0
  112. package/dist/utils/errorHandling.d.ts.map +1 -0
  113. package/dist/utils/errorHandling.js +86 -0
  114. package/dist/utils/errorHandling.js.map +1 -0
  115. package/dist/utils/index.d.ts +13 -0
  116. package/dist/utils/index.d.ts.map +1 -0
  117. package/dist/utils/index.js +38 -0
  118. package/dist/utils/index.js.map +1 -0
  119. package/dist/utils/logger.d.ts +13 -0
  120. package/dist/utils/logger.d.ts.map +1 -0
  121. package/dist/utils/logger.js +47 -0
  122. package/dist/utils/logger.js.map +1 -0
  123. package/dist/utils/paginationNew.d.ts +44 -0
  124. package/dist/utils/paginationNew.d.ts.map +1 -0
  125. package/dist/utils/paginationNew.js +149 -0
  126. package/dist/utils/paginationNew.js.map +1 -0
  127. package/dist/utils/parameterUtils.d.ts +79 -0
  128. package/dist/utils/parameterUtils.d.ts.map +1 -0
  129. package/dist/utils/parameterUtils.js +189 -0
  130. package/dist/utils/parameterUtils.js.map +1 -0
  131. package/dist/utils/responseFormatters.d.ts +92 -0
  132. package/dist/utils/responseFormatters.d.ts.map +1 -0
  133. package/dist/utils/responseFormatters.js +331 -0
  134. package/dist/utils/responseFormatters.js.map +1 -0
  135. package/dist/utils/responseWrapper.d.ts +38 -0
  136. package/dist/utils/responseWrapper.d.ts.map +1 -0
  137. package/dist/utils/responseWrapper.js +201 -0
  138. package/dist/utils/responseWrapper.js.map +1 -0
  139. package/dist/utils/sanitize.d.ts +51 -0
  140. package/dist/utils/sanitize.d.ts.map +1 -0
  141. package/dist/utils/sanitize.js +137 -0
  142. package/dist/utils/sanitize.js.map +1 -0
  143. package/dist/utils/validator.d.ts +37 -0
  144. package/dist/utils/validator.d.ts.map +1 -0
  145. package/dist/utils/validator.js +74 -0
  146. package/dist/utils/validator.js.map +1 -0
  147. package/dist/utils/workspaceResolver.d.ts +40 -0
  148. package/dist/utils/workspaceResolver.d.ts.map +1 -0
  149. package/dist/utils/workspaceResolver.js +207 -0
  150. package/dist/utils/workspaceResolver.js.map +1 -0
  151. package/package.json +41 -17
  152. package/.claude/settings.local.json +0 -15
  153. package/.env.example +0 -3
  154. package/sample.png +0 -0
  155. package/src/index.js +0 -49
  156. package/src/mcp-server.js +0 -1137
  157. package/src/routes/motion.js +0 -152
  158. package/src/services/motionApi.js +0 -1177
  159. package/src/worker.js +0 -248
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseHandler = void 0;
4
+ const utils_1 = require("../../utils");
5
+ class BaseHandler {
6
+ constructor(context) {
7
+ this.motionService = context.motionService;
8
+ this.workspaceResolver = context.workspaceResolver;
9
+ this.validator = context.validator;
10
+ }
11
+ handleError(error) {
12
+ return (0, utils_1.formatMcpError)(error instanceof Error ? error : new Error(String(error)));
13
+ }
14
+ handleUnknownOperation(operation) {
15
+ return (0, utils_1.formatMcpError)(new Error(`Unknown operation: ${operation}`));
16
+ }
17
+ validateArgs(args) {
18
+ // Base validation - subclasses can override for specific validation
19
+ if (!args || typeof args !== 'object') {
20
+ return {
21
+ valid: false,
22
+ errors: 'Arguments must be a valid object'
23
+ };
24
+ }
25
+ return {
26
+ valid: true
27
+ };
28
+ }
29
+ }
30
+ exports.BaseHandler = BaseHandler;
31
+ //# sourceMappingURL=BaseHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseHandler.js","sourceRoot":"","sources":["../../../src/handlers/base/BaseHandler.ts"],"names":[],"mappings":";;;AACA,uCAA6C;AAG7C,MAAsB,WAAW;IAK/B,YAAY,OAAuB;QACjC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACrC,CAAC;IAIS,WAAW,CAAC,KAAc;QAClC,OAAO,IAAA,sBAAc,EAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IAES,sBAAsB,CAAC,SAAiB;QAChD,OAAO,IAAA,sBAAc,EAAC,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,YAAY,CAAC,IAAa;QACxB,oEAAoE;QACpE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,kCAAkC;aAC3C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;CACF;AAlCD,kCAkCC"}
@@ -0,0 +1,18 @@
1
+ import { McpToolResponse } from '../../types/mcp';
2
+ import { MotionApiService } from '../../services/motionApi';
3
+ import { WorkspaceResolver } from '../../utils/workspaceResolver';
4
+ import { InputValidator } from '../../utils/validator';
5
+ export interface ValidationResult {
6
+ valid: boolean;
7
+ errors?: string;
8
+ }
9
+ export interface HandlerContext {
10
+ motionService: MotionApiService;
11
+ workspaceResolver: WorkspaceResolver;
12
+ validator: InputValidator;
13
+ }
14
+ export interface IHandler {
15
+ handle(args: unknown): Promise<McpToolResponse>;
16
+ validateArgs(args: unknown): ValidationResult;
17
+ }
18
+ //# sourceMappingURL=HandlerInterface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HandlerInterface.d.ts","sourceRoot":"","sources":["../../../src/handlers/base/HandlerInterface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,gBAAgB,CAAC;IAChC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAChD,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAAC;CAC/C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=HandlerInterface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HandlerInterface.js","sourceRoot":"","sources":["../../../src/handlers/base/HandlerInterface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ export { BaseHandler } from './base/BaseHandler';
2
+ export { IHandler, HandlerContext, ValidationResult } from './base/HandlerInterface';
3
+ export { HandlerFactory } from './HandlerFactory';
4
+ export { TaskHandler } from './TaskHandler';
5
+ export { ProjectHandler } from './ProjectHandler';
6
+ export { WorkspaceHandler } from './WorkspaceHandler';
7
+ export { UserHandler } from './UserHandler';
8
+ export { SearchHandler } from './SearchHandler';
9
+ export { CommentHandler } from './CommentHandler';
10
+ export { CustomFieldHandler } from './CustomFieldHandler';
11
+ export { RecurringTaskHandler } from './RecurringTaskHandler';
12
+ export { ScheduleHandler } from './ScheduleHandler';
13
+ export { StatusHandler } from './StatusHandler';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGrF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatusHandler = exports.ScheduleHandler = exports.RecurringTaskHandler = exports.CustomFieldHandler = exports.CommentHandler = exports.SearchHandler = exports.UserHandler = exports.WorkspaceHandler = exports.ProjectHandler = exports.TaskHandler = exports.HandlerFactory = exports.BaseHandler = void 0;
4
+ // Base handler exports
5
+ var BaseHandler_1 = require("./base/BaseHandler");
6
+ Object.defineProperty(exports, "BaseHandler", { enumerable: true, get: function () { return BaseHandler_1.BaseHandler; } });
7
+ // Handler Factory
8
+ var HandlerFactory_1 = require("./HandlerFactory");
9
+ Object.defineProperty(exports, "HandlerFactory", { enumerable: true, get: function () { return HandlerFactory_1.HandlerFactory; } });
10
+ // Individual handlers
11
+ var TaskHandler_1 = require("./TaskHandler");
12
+ Object.defineProperty(exports, "TaskHandler", { enumerable: true, get: function () { return TaskHandler_1.TaskHandler; } });
13
+ var ProjectHandler_1 = require("./ProjectHandler");
14
+ Object.defineProperty(exports, "ProjectHandler", { enumerable: true, get: function () { return ProjectHandler_1.ProjectHandler; } });
15
+ var WorkspaceHandler_1 = require("./WorkspaceHandler");
16
+ Object.defineProperty(exports, "WorkspaceHandler", { enumerable: true, get: function () { return WorkspaceHandler_1.WorkspaceHandler; } });
17
+ var UserHandler_1 = require("./UserHandler");
18
+ Object.defineProperty(exports, "UserHandler", { enumerable: true, get: function () { return UserHandler_1.UserHandler; } });
19
+ var SearchHandler_1 = require("./SearchHandler");
20
+ Object.defineProperty(exports, "SearchHandler", { enumerable: true, get: function () { return SearchHandler_1.SearchHandler; } });
21
+ var CommentHandler_1 = require("./CommentHandler");
22
+ Object.defineProperty(exports, "CommentHandler", { enumerable: true, get: function () { return CommentHandler_1.CommentHandler; } });
23
+ var CustomFieldHandler_1 = require("./CustomFieldHandler");
24
+ Object.defineProperty(exports, "CustomFieldHandler", { enumerable: true, get: function () { return CustomFieldHandler_1.CustomFieldHandler; } });
25
+ var RecurringTaskHandler_1 = require("./RecurringTaskHandler");
26
+ Object.defineProperty(exports, "RecurringTaskHandler", { enumerable: true, get: function () { return RecurringTaskHandler_1.RecurringTaskHandler; } });
27
+ var ScheduleHandler_1 = require("./ScheduleHandler");
28
+ Object.defineProperty(exports, "ScheduleHandler", { enumerable: true, get: function () { return ScheduleHandler_1.ScheduleHandler; } });
29
+ var StatusHandler_1 = require("./StatusHandler");
30
+ Object.defineProperty(exports, "StatusHandler", { enumerable: true, get: function () { return StatusHandler_1.StatusHandler; } });
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":";;;AAAA,uBAAuB;AACvB,kDAAiD;AAAxC,0GAAA,WAAW,OAAA;AAGpB,kBAAkB;AAClB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,sBAAsB;AACtB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA"}
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env node
2
+ declare class MotionMCPServer {
3
+ private server;
4
+ private motionService;
5
+ private workspaceResolver;
6
+ private validator;
7
+ private toolsConfig;
8
+ constructor();
9
+ initialize(): Promise<void>;
10
+ private validateToolsConfig;
11
+ setupHandlers(): void;
12
+ private getAllToolDefinitions;
13
+ private getEnabledTools;
14
+ private handleMotionProjects;
15
+ private handleMotionTasks;
16
+ private handleSearchContent;
17
+ private handleGetContext;
18
+ private handleMotionUsers;
19
+ private handleMotionComments;
20
+ private handleMotionCustomFields;
21
+ private handleMotionRecurringTasks;
22
+ private handleMotionSchedules;
23
+ private handleMotionStatuses;
24
+ private handleMotionWorkspaces;
25
+ private handleMotionSearch;
26
+ run(): Promise<void>;
27
+ }
28
+ export default MotionMCPServer;
29
+ //# sourceMappingURL=mcp-server-old.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server-old.d.ts","sourceRoot":"","sources":["../src/mcp-server-old.ts"],"names":[],"mappings":";AA2CA,cAAM,eAAe;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,WAAW,CAAS;;IAsBtB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC,OAAO,CAAC,mBAAmB;IAqC3B,aAAa,IAAI,IAAI;IAsDrB,OAAO,CAAC,qBAAqB;IAyc7B,OAAO,CAAC,eAAe;YAyDT,oBAAoB;YAiDpB,iBAAiB;YA0GjB,mBAAmB;YA8BnB,gBAAgB;YAqBhB,iBAAiB;YAkCjB,oBAAoB;YAqEpB,wBAAwB;YA+FxB,0BAA0B;YAuH1B,qBAAqB;YAwCrB,oBAAoB;YAiBpB,sBAAsB;YAuCtB,kBAAkB;IAuF1B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ3B;AAWD,eAAe,eAAe,CAAC"}