@neilinger/businessmap-mcp 1.6.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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +563 -0
  3. package/dist/client/businessmap-client.d.ts +160 -0
  4. package/dist/client/businessmap-client.d.ts.map +1 -0
  5. package/dist/client/businessmap-client.js +325 -0
  6. package/dist/client/businessmap-client.js.map +1 -0
  7. package/dist/client/modules/base-client.d.ts +34 -0
  8. package/dist/client/modules/base-client.d.ts.map +1 -0
  9. package/dist/client/modules/base-client.js +20 -0
  10. package/dist/client/modules/base-client.js.map +1 -0
  11. package/dist/client/modules/board-client.d.ts +82 -0
  12. package/dist/client/modules/board-client.d.ts.map +1 -0
  13. package/dist/client/modules/board-client.js +137 -0
  14. package/dist/client/modules/board-client.js.map +1 -0
  15. package/dist/client/modules/card-client.d.ts +201 -0
  16. package/dist/client/modules/card-client.d.ts.map +1 -0
  17. package/dist/client/modules/card-client.js +251 -0
  18. package/dist/client/modules/card-client.js.map +1 -0
  19. package/dist/client/modules/custom-field-client.d.ts +62 -0
  20. package/dist/client/modules/custom-field-client.d.ts.map +1 -0
  21. package/dist/client/modules/custom-field-client.js +47 -0
  22. package/dist/client/modules/custom-field-client.js.map +1 -0
  23. package/dist/client/modules/index.d.ts +9 -0
  24. package/dist/client/modules/index.d.ts.map +1 -0
  25. package/dist/client/modules/index.js +9 -0
  26. package/dist/client/modules/index.js.map +1 -0
  27. package/dist/client/modules/user-client.d.ts +17 -0
  28. package/dist/client/modules/user-client.d.ts.map +1 -0
  29. package/dist/client/modules/user-client.js +25 -0
  30. package/dist/client/modules/user-client.js.map +1 -0
  31. package/dist/client/modules/utility-client.d.ts +12 -0
  32. package/dist/client/modules/utility-client.d.ts.map +1 -0
  33. package/dist/client/modules/utility-client.js +51 -0
  34. package/dist/client/modules/utility-client.js.map +1 -0
  35. package/dist/client/modules/workflow-client.d.ts +13 -0
  36. package/dist/client/modules/workflow-client.d.ts.map +1 -0
  37. package/dist/client/modules/workflow-client.js +18 -0
  38. package/dist/client/modules/workflow-client.js.map +1 -0
  39. package/dist/client/modules/workspace-client.d.ts +47 -0
  40. package/dist/client/modules/workspace-client.d.ts.map +1 -0
  41. package/dist/client/modules/workspace-client.js +88 -0
  42. package/dist/client/modules/workspace-client.js.map +1 -0
  43. package/dist/config/environment.d.ts +19 -0
  44. package/dist/config/environment.d.ts.map +1 -0
  45. package/dist/config/environment.js +65 -0
  46. package/dist/config/environment.js.map +1 -0
  47. package/dist/index.d.ts +3 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +84 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/schemas/board-schemas.d.ts +133 -0
  52. package/dist/schemas/board-schemas.d.ts.map +1 -0
  53. package/dist/schemas/board-schemas.js +95 -0
  54. package/dist/schemas/board-schemas.js.map +1 -0
  55. package/dist/schemas/bulk-schemas.d.ts +154 -0
  56. package/dist/schemas/bulk-schemas.d.ts.map +1 -0
  57. package/dist/schemas/bulk-schemas.js +69 -0
  58. package/dist/schemas/bulk-schemas.js.map +1 -0
  59. package/dist/schemas/card-schemas.d.ts +1309 -0
  60. package/dist/schemas/card-schemas.d.ts.map +1 -0
  61. package/dist/schemas/card-schemas.js +518 -0
  62. package/dist/schemas/card-schemas.js.map +1 -0
  63. package/dist/schemas/common-schemas.d.ts +47 -0
  64. package/dist/schemas/common-schemas.d.ts.map +1 -0
  65. package/dist/schemas/common-schemas.js +53 -0
  66. package/dist/schemas/common-schemas.js.map +1 -0
  67. package/dist/schemas/custom-field-schemas.d.ts +155 -0
  68. package/dist/schemas/custom-field-schemas.d.ts.map +1 -0
  69. package/dist/schemas/custom-field-schemas.js +78 -0
  70. package/dist/schemas/custom-field-schemas.js.map +1 -0
  71. package/dist/schemas/index.d.ts +9 -0
  72. package/dist/schemas/index.d.ts.map +1 -0
  73. package/dist/schemas/index.js +10 -0
  74. package/dist/schemas/index.js.map +1 -0
  75. package/dist/schemas/user-schemas.d.ts +11 -0
  76. package/dist/schemas/user-schemas.d.ts.map +1 -0
  77. package/dist/schemas/user-schemas.js +10 -0
  78. package/dist/schemas/user-schemas.js.map +1 -0
  79. package/dist/schemas/utility-schemas.d.ts +4 -0
  80. package/dist/schemas/utility-schemas.d.ts.map +1 -0
  81. package/dist/schemas/utility-schemas.js +6 -0
  82. package/dist/schemas/utility-schemas.js.map +1 -0
  83. package/dist/schemas/workflow-schemas.d.ts +22 -0
  84. package/dist/schemas/workflow-schemas.d.ts.map +1 -0
  85. package/dist/schemas/workflow-schemas.js +12 -0
  86. package/dist/schemas/workflow-schemas.js.map +1 -0
  87. package/dist/schemas/workspace-schemas.d.ts +40 -0
  88. package/dist/schemas/workspace-schemas.d.ts.map +1 -0
  89. package/dist/schemas/workspace-schemas.js +23 -0
  90. package/dist/schemas/workspace-schemas.js.map +1 -0
  91. package/dist/server/mcp-server.d.ts +14 -0
  92. package/dist/server/mcp-server.d.ts.map +1 -0
  93. package/dist/server/mcp-server.js +54 -0
  94. package/dist/server/mcp-server.js.map +1 -0
  95. package/dist/server/tools/base-tool.d.ts +34 -0
  96. package/dist/server/tools/base-tool.d.ts.map +1 -0
  97. package/dist/server/tools/base-tool.js +30 -0
  98. package/dist/server/tools/base-tool.js.map +1 -0
  99. package/dist/server/tools/board-tools.d.ts +25 -0
  100. package/dist/server/tools/board-tools.d.ts.map +1 -0
  101. package/dist/server/tools/board-tools.js +347 -0
  102. package/dist/server/tools/board-tools.js.map +1 -0
  103. package/dist/server/tools/card-tools.d.ts +33 -0
  104. package/dist/server/tools/card-tools.d.ts.map +1 -0
  105. package/dist/server/tools/card-tools.js +543 -0
  106. package/dist/server/tools/card-tools.js.map +1 -0
  107. package/dist/server/tools/custom-field-tools.d.ts +13 -0
  108. package/dist/server/tools/custom-field-tools.d.ts.map +1 -0
  109. package/dist/server/tools/custom-field-tools.js +181 -0
  110. package/dist/server/tools/custom-field-tools.js.map +1 -0
  111. package/dist/server/tools/index.d.ts +9 -0
  112. package/dist/server/tools/index.d.ts.map +1 -0
  113. package/dist/server/tools/index.js +9 -0
  114. package/dist/server/tools/index.js.map +1 -0
  115. package/dist/server/tools/user-tools.d.ts +10 -0
  116. package/dist/server/tools/user-tools.d.ts.map +1 -0
  117. package/dist/server/tools/user-tools.js +55 -0
  118. package/dist/server/tools/user-tools.js.map +1 -0
  119. package/dist/server/tools/utility-tools.d.ts +9 -0
  120. package/dist/server/tools/utility-tools.d.ts.map +1 -0
  121. package/dist/server/tools/utility-tools.js +46 -0
  122. package/dist/server/tools/utility-tools.js.map +1 -0
  123. package/dist/server/tools/workflow-tools.d.ts +9 -0
  124. package/dist/server/tools/workflow-tools.d.ts.map +1 -0
  125. package/dist/server/tools/workflow-tools.js +55 -0
  126. package/dist/server/tools/workflow-tools.js.map +1 -0
  127. package/dist/server/tools/workspace-tools.d.ts +14 -0
  128. package/dist/server/tools/workspace-tools.d.ts.map +1 -0
  129. package/dist/server/tools/workspace-tools.js +179 -0
  130. package/dist/server/tools/workspace-tools.js.map +1 -0
  131. package/dist/services/confirmation-builder.d.ts +60 -0
  132. package/dist/services/confirmation-builder.d.ts.map +1 -0
  133. package/dist/services/confirmation-builder.js +170 -0
  134. package/dist/services/confirmation-builder.js.map +1 -0
  135. package/dist/services/dependency-analyzer.d.ts +90 -0
  136. package/dist/services/dependency-analyzer.d.ts.map +1 -0
  137. package/dist/services/dependency-analyzer.js +220 -0
  138. package/dist/services/dependency-analyzer.js.map +1 -0
  139. package/dist/types/base.d.ts +22 -0
  140. package/dist/types/base.d.ts.map +1 -0
  141. package/dist/types/base.js +3 -0
  142. package/dist/types/base.js.map +1 -0
  143. package/dist/types/board.d.ts +129 -0
  144. package/dist/types/board.d.ts.map +1 -0
  145. package/dist/types/board.js +3 -0
  146. package/dist/types/board.js.map +1 -0
  147. package/dist/types/card.d.ts +414 -0
  148. package/dist/types/card.d.ts.map +1 -0
  149. package/dist/types/card.js +3 -0
  150. package/dist/types/card.js.map +1 -0
  151. package/dist/types/custom-field.d.ts +17 -0
  152. package/dist/types/custom-field.d.ts.map +1 -0
  153. package/dist/types/custom-field.js +3 -0
  154. package/dist/types/custom-field.js.map +1 -0
  155. package/dist/types/index.d.ts +9 -0
  156. package/dist/types/index.d.ts.map +1 -0
  157. package/dist/types/index.js +10 -0
  158. package/dist/types/index.js.map +1 -0
  159. package/dist/types/lane.d.ts +16 -0
  160. package/dist/types/lane.d.ts.map +1 -0
  161. package/dist/types/lane.js +3 -0
  162. package/dist/types/lane.js.map +1 -0
  163. package/dist/types/user.d.ts +32 -0
  164. package/dist/types/user.d.ts.map +1 -0
  165. package/dist/types/user.js +3 -0
  166. package/dist/types/user.js.map +1 -0
  167. package/dist/types/workflow.d.ts +8 -0
  168. package/dist/types/workflow.d.ts.map +1 -0
  169. package/dist/types/workflow.js +2 -0
  170. package/dist/types/workflow.js.map +1 -0
  171. package/dist/types/workspace.d.ts +11 -0
  172. package/dist/types/workspace.d.ts.map +1 -0
  173. package/dist/types/workspace.js +3 -0
  174. package/dist/types/workspace.js.map +1 -0
  175. package/package.json +84 -0
@@ -0,0 +1,62 @@
1
+ import { ApiResponse, CustomField } from '../../types/index.js';
2
+ import { BaseClientModuleImpl } from './base-client.js';
3
+ export declare class CustomFieldClient extends BaseClientModuleImpl {
4
+ /**
5
+ * List all custom field definitions
6
+ */
7
+ listCustomFields(params?: {
8
+ page?: number;
9
+ page_size?: number;
10
+ field_type?: string;
11
+ }): Promise<ApiResponse<CustomField[]>>;
12
+ /**
13
+ * List custom fields for a specific board
14
+ */
15
+ listBoardCustomFields(boardId: number): Promise<CustomField[]>;
16
+ /**
17
+ * Get a specific custom field by ID
18
+ */
19
+ getCustomField(customFieldId: number): Promise<CustomField>;
20
+ /**
21
+ * Create a new custom field
22
+ */
23
+ createCustomField(params: {
24
+ board_id: number;
25
+ name: string;
26
+ field_type: string;
27
+ description?: string;
28
+ is_required?: boolean;
29
+ position?: number;
30
+ options?: Array<{
31
+ value: string;
32
+ color: string;
33
+ }>;
34
+ validation?: {
35
+ min?: number;
36
+ max?: number;
37
+ };
38
+ }): Promise<CustomField>;
39
+ /**
40
+ * Update an existing custom field
41
+ */
42
+ updateCustomField(customFieldId: number, params: {
43
+ name?: string;
44
+ description?: string;
45
+ is_required?: boolean;
46
+ position?: number;
47
+ options?: Array<{
48
+ id?: number;
49
+ value: string;
50
+ color: string;
51
+ }>;
52
+ validation?: {
53
+ min?: number;
54
+ max?: number;
55
+ };
56
+ }): Promise<CustomField>;
57
+ /**
58
+ * Delete a custom field
59
+ */
60
+ deleteCustomField(customFieldId: number): Promise<void>;
61
+ }
62
+ //# sourceMappingURL=custom-field-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-field-client.d.ts","sourceRoot":"","sources":["../../../src/client/modules/custom-field-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,qBAAa,iBAAkB,SAAQ,oBAAoB;IACzD;;OAEG;IACG,gBAAgB,CAAC,MAAM,CAAC,EAAE;QAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAOvC;;OAEG;IACG,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAOpE;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOjE;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE;QAC9B,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClD,UAAU,CAAC,EAAE;YACX,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;KACH,GAAG,OAAO,CAAC,WAAW,CAAC;IAQxB;;OAEG;IACG,iBAAiB,CACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC/D,UAAU,CAAC,EAAE;YACX,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;KACH,GACA,OAAO,CAAC,WAAW,CAAC;IAQvB;;OAEG;IACG,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG9D"}
@@ -0,0 +1,47 @@
1
+ import { BaseClientModuleImpl } from './base-client.js';
2
+ export class CustomFieldClient extends BaseClientModuleImpl {
3
+ /**
4
+ * List all custom field definitions
5
+ */
6
+ async listCustomFields(params) {
7
+ const response = await this.http.get('/custom_fields', {
8
+ params,
9
+ });
10
+ return response.data;
11
+ }
12
+ /**
13
+ * List custom fields for a specific board
14
+ */
15
+ async listBoardCustomFields(boardId) {
16
+ const response = await this.http.get(`/boards/${boardId}/custom_fields`);
17
+ return response.data.data;
18
+ }
19
+ /**
20
+ * Get a specific custom field by ID
21
+ */
22
+ async getCustomField(customFieldId) {
23
+ const response = await this.http.get(`/custom_fields/${customFieldId}`);
24
+ return response.data.data;
25
+ }
26
+ /**
27
+ * Create a new custom field
28
+ */
29
+ async createCustomField(params) {
30
+ const response = await this.http.post(`/boards/${params.board_id}/custom_fields`, params);
31
+ return response.data.data;
32
+ }
33
+ /**
34
+ * Update an existing custom field
35
+ */
36
+ async updateCustomField(customFieldId, params) {
37
+ const response = await this.http.patch(`/custom_fields/${customFieldId}`, params);
38
+ return response.data.data;
39
+ }
40
+ /**
41
+ * Delete a custom field
42
+ */
43
+ async deleteCustomField(customFieldId) {
44
+ await this.http.delete(`/custom_fields/${customFieldId}`);
45
+ }
46
+ }
47
+ //# sourceMappingURL=custom-field-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-field-client.js","sourceRoot":"","sources":["../../../src/client/modules/custom-field-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,OAAO,iBAAkB,SAAQ,oBAAoB;IACzD;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAItB;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,gBAAgB,EAAE;YACjF,MAAM;SACP,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CAAC,OAAe;QACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAClC,WAAW,OAAO,gBAAgB,CACnC,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,aAAqB;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAClC,kBAAkB,aAAa,EAAE,CAClC,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAYvB;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CACnC,WAAW,MAAM,CAAC,QAAQ,gBAAgB,EAC1C,MAAM,CACP,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,aAAqB,EACrB,MAUC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CACpC,kBAAkB,aAAa,EAAE,EACjC,MAAM,CACP,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,aAAqB;QAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,aAAa,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ export { BaseClientModule, BaseClientModuleImpl, HttpClientConfig } from './base-client.js';
2
+ export { BoardClient } from './board-client.js';
3
+ export { CardClient, CardFilters } from './card-client.js';
4
+ export { CustomFieldClient } from './custom-field-client.js';
5
+ export { UserClient } from './user-client.js';
6
+ export { UtilityClient } from './utility-client.js';
7
+ export { WorkflowClient } from './workflow-client.js';
8
+ export { WorkspaceClient } from './workspace-client.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { BaseClientModuleImpl } from './base-client.js';
2
+ export { BoardClient } from './board-client.js';
3
+ export { CardClient } from './card-client.js';
4
+ export { CustomFieldClient } from './custom-field-client.js';
5
+ export { UserClient } from './user-client.js';
6
+ export { UtilityClient } from './utility-client.js';
7
+ export { WorkflowClient } from './workflow-client.js';
8
+ export { WorkspaceClient } from './workspace-client.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,oBAAoB,EAAoB,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAe,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { CurrentUser, User } from '../../types/index.js';
2
+ import { BaseClientModuleImpl } from './base-client.js';
3
+ export declare class UserClient extends BaseClientModuleImpl {
4
+ /**
5
+ * Get all users
6
+ */
7
+ getUsers(): Promise<User[]>;
8
+ /**
9
+ * Get a specific user by ID
10
+ */
11
+ getUser(userId: number): Promise<User>;
12
+ /**
13
+ * Get current logged user data
14
+ */
15
+ getCurrentUser(): Promise<CurrentUser>;
16
+ }
17
+ //# sourceMappingURL=user-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-client.d.ts","sourceRoot":"","sources":["../../../src/client/modules/user-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,WAAW,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,qBAAa,UAAW,SAAQ,oBAAoB;IAClD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAKjC;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;CAI7C"}
@@ -0,0 +1,25 @@
1
+ import { BaseClientModuleImpl } from './base-client.js';
2
+ export class UserClient extends BaseClientModuleImpl {
3
+ /**
4
+ * Get all users
5
+ */
6
+ async getUsers() {
7
+ const response = await this.http.get('/users');
8
+ return response.data.data;
9
+ }
10
+ /**
11
+ * Get a specific user by ID
12
+ */
13
+ async getUser(userId) {
14
+ const response = await this.http.get(`/users/${userId}`);
15
+ return response.data.data;
16
+ }
17
+ /**
18
+ * Get current logged user data
19
+ */
20
+ async getCurrentUser() {
21
+ const response = await this.http.get('/me');
22
+ return response.data.data;
23
+ }
24
+ }
25
+ //# sourceMappingURL=user-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-client.js","sourceRoot":"","sources":["../../../src/client/modules/user-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,OAAO,UAAW,SAAQ,oBAAoB;IAClD;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsB,QAAQ,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoB,UAAU,MAAM,EAAE,CAAC,CAAC;QAC5E,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,KAAK,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { BaseClientModuleImpl } from './base-client.js';
2
+ export declare class UtilityClient extends BaseClientModuleImpl {
3
+ /**
4
+ * Check if the API is healthy and accessible
5
+ */
6
+ healthCheck(): Promise<boolean>;
7
+ /**
8
+ * Get API information (with fallback for official API)
9
+ */
10
+ getApiInfo(): Promise<any>;
11
+ }
12
+ //# sourceMappingURL=utility-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility-client.d.ts","sourceRoot":"","sources":["../../../src/client/modules/utility-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,qBAAa,aAAc,SAAQ,oBAAoB;IACrD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAcrC;;OAEG;IACG,UAAU;CAyBjB"}
@@ -0,0 +1,51 @@
1
+ import { createLoggerSync } from '@toolprint/mcp-logger';
2
+ import { BaseClientModuleImpl } from './base-client.js';
3
+ const logger = createLoggerSync({ level: 'info' });
4
+ export class UtilityClient extends BaseClientModuleImpl {
5
+ /**
6
+ * Check if the API is healthy and accessible
7
+ */
8
+ async healthCheck() {
9
+ try {
10
+ // Use /me endpoint as health check since /health may not exist
11
+ await this.http.get('/me');
12
+ return true;
13
+ }
14
+ catch (error) {
15
+ // Log the actual error for debugging
16
+ logger.error('Health check failed', {
17
+ error: error instanceof Error ? error.message : 'Unknown error'
18
+ });
19
+ return false;
20
+ }
21
+ }
22
+ /**
23
+ * Get API information (with fallback for official API)
24
+ */
25
+ async getApiInfo() {
26
+ try {
27
+ // Tentativa de usar /info (que não existe na API oficial)
28
+ const response = await this.http.get('/info');
29
+ return response.data;
30
+ }
31
+ catch (error) {
32
+ // Fallback: verificar conectividade com /me
33
+ logger.warn('Endpoint /info not available, testing connectivity via /me');
34
+ try {
35
+ await this.http.get('/me');
36
+ return {
37
+ message: 'API is responding (fallback test)',
38
+ endpoint: '/me',
39
+ status: 'healthy',
40
+ note: 'Endpoint /info does not exist in official BusinessMap API',
41
+ api_version: 'v2',
42
+ documentation: 'https://rdsaude.kanbanize.com/openapi/#/',
43
+ };
44
+ }
45
+ catch (fallbackError) {
46
+ throw new Error(`API connection failed: ${fallbackError instanceof Error ? fallbackError.message : 'Unknown error'}`);
47
+ }
48
+ }
49
+ }
50
+ }
51
+ //# sourceMappingURL=utility-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility-client.js","sourceRoot":"","sources":["../../../src/client/modules/utility-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAEnD,MAAM,OAAO,aAAc,SAAQ,oBAAoB;IACrD;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,+DAA+D;YAC/D,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qCAAqC;YACrC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE;gBAClC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,0DAA0D;YAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9C,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4CAA4C;YAC5C,MAAM,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YAC1E,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC3B,OAAO;oBACL,OAAO,EAAE,mCAAmC;oBAC5C,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,2DAA2D;oBACjE,WAAW,EAAE,IAAI;oBACjB,aAAa,EAAE,0CAA0C;iBAC1D,CAAC;YACJ,CAAC;YAAC,OAAO,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,0BAA0B,aAAa,YAAY,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACrG,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { WorkflowCycleTimeColumn } from '../../types/index.js';
2
+ import { BaseClientModuleImpl } from './base-client.js';
3
+ export declare class WorkflowClient extends BaseClientModuleImpl {
4
+ /**
5
+ * Get workflow's cycle time columns
6
+ */
7
+ getWorkflowCycleTimeColumns(boardId: number, workflowId: number): Promise<WorkflowCycleTimeColumn[]>;
8
+ /**
9
+ * Get workflow's effective cycle time columns
10
+ */
11
+ getWorkflowEffectiveCycleTimeColumns(boardId: number, workflowId: number): Promise<WorkflowCycleTimeColumn[]>;
12
+ }
13
+ //# sourceMappingURL=workflow-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-client.d.ts","sourceRoot":"","sources":["../../../src/client/modules/workflow-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,qBAAa,cAAe,SAAQ,oBAAoB;IACtD;;OAEG;IACG,2BAA2B,CAC/B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAOrC;;OAEG;IACG,oCAAoC,CACxC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAMtC"}
@@ -0,0 +1,18 @@
1
+ import { BaseClientModuleImpl } from './base-client.js';
2
+ export class WorkflowClient extends BaseClientModuleImpl {
3
+ /**
4
+ * Get workflow's cycle time columns
5
+ */
6
+ async getWorkflowCycleTimeColumns(boardId, workflowId) {
7
+ const response = await this.http.get(`/boards/${boardId}/workflows/${workflowId}/cycleTimeColumns`);
8
+ return response.data.data;
9
+ }
10
+ /**
11
+ * Get workflow's effective cycle time columns
12
+ */
13
+ async getWorkflowEffectiveCycleTimeColumns(boardId, workflowId) {
14
+ const response = await this.http.get(`/boards/${boardId}/workflows/${workflowId}/effectiveCycleTimeColumns`);
15
+ return response.data.data;
16
+ }
17
+ }
18
+ //# sourceMappingURL=workflow-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-client.js","sourceRoot":"","sources":["../../../src/client/modules/workflow-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,OAAO,cAAe,SAAQ,oBAAoB;IACtD;;OAEG;IACH,KAAK,CAAC,2BAA2B,CAC/B,OAAe,EACf,UAAkB;QAElB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAClC,WAAW,OAAO,cAAc,UAAU,mBAAmB,CAC9D,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oCAAoC,CACxC,OAAe,EACf,UAAkB;QAElB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAClC,WAAW,OAAO,cAAc,UAAU,4BAA4B,CACvE,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;CACF"}
@@ -0,0 +1,47 @@
1
+ import { CreateWorkspaceParams, Workspace } from '../../types/index.js';
2
+ import { BaseClientModuleImpl } from './base-client.js';
3
+ export declare class WorkspaceClient extends BaseClientModuleImpl {
4
+ /**
5
+ * Get all workspaces
6
+ */
7
+ getWorkspaces(): Promise<Workspace[]>;
8
+ /**
9
+ * Get a specific workspace by ID
10
+ */
11
+ getWorkspace(workspaceId: number): Promise<Workspace>;
12
+ /**
13
+ * Create a new workspace
14
+ */
15
+ createWorkspace(params: CreateWorkspaceParams): Promise<Workspace>;
16
+ /**
17
+ * Update an existing workspace
18
+ */
19
+ updateWorkspace(workspaceId: number, params: Partial<CreateWorkspaceParams>): Promise<Workspace>;
20
+ /**
21
+ * Archive a workspace (soft delete)
22
+ * @param workspaceId - The ID of the workspace to archive
23
+ * @remarks API does not support permanent deletion (DELETE returns 405). Only archiving is available.
24
+ */
25
+ archiveWorkspace(workspaceId: number): Promise<Workspace>;
26
+ /**
27
+ * Bulk archive workspaces (T057)
28
+ * Archives multiple workspaces sequentially
29
+ */
30
+ bulkArchiveWorkspaces(workspaceIds: number[]): Promise<Array<{
31
+ id: number;
32
+ success: boolean;
33
+ workspace?: Workspace;
34
+ error?: string;
35
+ }>>;
36
+ /**
37
+ * Bulk update workspaces (T061)
38
+ * Updates multiple workspaces sequentially with the same changes
39
+ */
40
+ bulkUpdateWorkspaces(workspaceIds: number[], updates: Partial<CreateWorkspaceParams>): Promise<Array<{
41
+ id: number;
42
+ success: boolean;
43
+ workspace?: Workspace;
44
+ error?: string;
45
+ }>>;
46
+ }
47
+ //# sourceMappingURL=workspace-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-client.d.ts","sourceRoot":"","sources":["../../../src/client/modules/workspace-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,qBAAqB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,qBAAa,eAAgB,SAAQ,oBAAoB;IACvD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAK3C;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAK3D;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC;IAMxE;;OAEG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACrC,OAAO,CAAC,SAAS,CAAC;IASrB;;;;OAIG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAU/D;;;OAGG;IACG,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAoB5I;;;OAGG;IACG,oBAAoB,CACxB,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACtC,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAmB3F"}
@@ -0,0 +1,88 @@
1
+ import { BaseClientModuleImpl } from './base-client.js';
2
+ export class WorkspaceClient extends BaseClientModuleImpl {
3
+ /**
4
+ * Get all workspaces
5
+ */
6
+ async getWorkspaces() {
7
+ const response = await this.http.get('/workspaces');
8
+ return response.data.data;
9
+ }
10
+ /**
11
+ * Get a specific workspace by ID
12
+ */
13
+ async getWorkspace(workspaceId) {
14
+ const response = await this.http.get(`/workspaces/${workspaceId}`);
15
+ return response.data.data;
16
+ }
17
+ /**
18
+ * Create a new workspace
19
+ */
20
+ async createWorkspace(params) {
21
+ this.checkReadOnlyMode('create workspace');
22
+ const response = await this.http.post('/workspaces', params);
23
+ return response.data.data;
24
+ }
25
+ /**
26
+ * Update an existing workspace
27
+ */
28
+ async updateWorkspace(workspaceId, params) {
29
+ this.checkReadOnlyMode('update workspace');
30
+ const response = await this.http.patch(`/workspaces/${workspaceId}`, params);
31
+ return response.data.data;
32
+ }
33
+ /**
34
+ * Archive a workspace (soft delete)
35
+ * @param workspaceId - The ID of the workspace to archive
36
+ * @remarks API does not support permanent deletion (DELETE returns 405). Only archiving is available.
37
+ */
38
+ async archiveWorkspace(workspaceId) {
39
+ this.checkReadOnlyMode('archive workspace');
40
+ const response = await this.http.patch(`/workspaces/${workspaceId}`, { is_archived: 1 });
41
+ return response.data.data;
42
+ }
43
+ /**
44
+ * Bulk archive workspaces (T057)
45
+ * Archives multiple workspaces sequentially
46
+ */
47
+ async bulkArchiveWorkspaces(workspaceIds) {
48
+ this.checkReadOnlyMode('bulk archive workspaces');
49
+ const results = [];
50
+ for (const id of workspaceIds) {
51
+ try {
52
+ const workspace = await this.archiveWorkspace(id);
53
+ results.push({ id, success: true, workspace });
54
+ }
55
+ catch (error) {
56
+ results.push({
57
+ id,
58
+ success: false,
59
+ error: error instanceof Error ? error.message : 'Unknown error',
60
+ });
61
+ }
62
+ }
63
+ return results;
64
+ }
65
+ /**
66
+ * Bulk update workspaces (T061)
67
+ * Updates multiple workspaces sequentially with the same changes
68
+ */
69
+ async bulkUpdateWorkspaces(workspaceIds, updates) {
70
+ this.checkReadOnlyMode('bulk update workspaces');
71
+ const results = [];
72
+ for (const id of workspaceIds) {
73
+ try {
74
+ const workspace = await this.updateWorkspace(id, updates);
75
+ results.push({ id, success: true, workspace });
76
+ }
77
+ catch (error) {
78
+ results.push({
79
+ id,
80
+ success: false,
81
+ error: error instanceof Error ? error.message : 'Unknown error',
82
+ });
83
+ }
84
+ }
85
+ return results;
86
+ }
87
+ }
88
+ //# sourceMappingURL=workspace-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-client.js","sourceRoot":"","sources":["../../../src/client/modules/workspace-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { BusinessMapConfig } from '../types/index.js';
2
+ export interface EnvironmentConfig {
3
+ businessMap: BusinessMapConfig;
4
+ server: {
5
+ name: string;
6
+ version: string;
7
+ port?: number;
8
+ };
9
+ transport: {
10
+ sse: boolean;
11
+ streamableHttp: boolean;
12
+ };
13
+ }
14
+ export declare function getRequiredEnvVar(name: string): string;
15
+ export declare function getBooleanEnvVar(name: string, defaultValue?: boolean): boolean;
16
+ export declare function getNumberEnvVar(name: string, defaultValue?: number): number | undefined;
17
+ export declare const config: EnvironmentConfig;
18
+ export declare function validateConfig(): void;
19
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/config/environment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAOtD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,EAAE;QACT,GAAG,EAAE,OAAO,CAAC;QACb,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,OAAe,GAAG,OAAO,CAIrF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQvF;AAED,eAAO,MAAM,MAAM,EAAE,iBAgBpB,CAAC;AAEF,wBAAgB,cAAc,IAAI,IAAI,CAmBrC"}
@@ -0,0 +1,65 @@
1
+ import dotenv from 'dotenv';
2
+ import { createLoggerSync } from '@toolprint/mcp-logger';
3
+ // Load environment variables
4
+ dotenv.config();
5
+ const logger = createLoggerSync({ level: 'info' });
6
+ export function getRequiredEnvVar(name) {
7
+ const value = process.env[name];
8
+ if (!value) {
9
+ throw new Error(`Required environment variable ${name} is not set`);
10
+ }
11
+ return value;
12
+ }
13
+ export function getBooleanEnvVar(name, defaultValue = false) {
14
+ const value = process.env[name];
15
+ if (value === undefined)
16
+ return defaultValue;
17
+ return value.toLowerCase() === 'true';
18
+ }
19
+ export function getNumberEnvVar(name, defaultValue) {
20
+ const value = process.env[name];
21
+ if (value === undefined)
22
+ return defaultValue;
23
+ const parsed = parseInt(value, 10);
24
+ if (isNaN(parsed)) {
25
+ throw new Error(`Environment variable ${name} must be a valid number`);
26
+ }
27
+ return parsed;
28
+ }
29
+ export const config = {
30
+ businessMap: {
31
+ apiUrl: getRequiredEnvVar('BUSINESSMAP_API_URL'),
32
+ apiToken: getRequiredEnvVar('BUSINESSMAP_API_TOKEN'),
33
+ defaultWorkspaceId: getNumberEnvVar('BUSINESSMAP_DEFAULT_WORKSPACE_ID'),
34
+ readOnlyMode: getBooleanEnvVar('BUSINESSMAP_READ_ONLY_MODE', false),
35
+ },
36
+ server: {
37
+ name: process.env.MCP_SERVER_NAME || 'businessmap-mcp',
38
+ version: process.env.MCP_SERVER_VERSION || '1.0.0',
39
+ port: getNumberEnvVar('PORT'),
40
+ },
41
+ transport: {
42
+ sse: getBooleanEnvVar('SSE', false),
43
+ streamableHttp: getBooleanEnvVar('STREAMABLE_HTTP', true),
44
+ },
45
+ };
46
+ export function validateConfig() {
47
+ // Validate API URL format
48
+ try {
49
+ new URL(config.businessMap.apiUrl);
50
+ }
51
+ catch {
52
+ throw new Error('BUSINESSMAP_API_URL must be a valid URL');
53
+ }
54
+ // Validate API token is not empty
55
+ if (!config.businessMap.apiToken.trim()) {
56
+ throw new Error('BUSINESSMAP_API_TOKEN cannot be empty');
57
+ }
58
+ logger.info('Configuration validated', {
59
+ serverName: config.server.name,
60
+ serverVersion: config.server.version,
61
+ apiUrl: config.businessMap.apiUrl,
62
+ readOnlyMode: config.businessMap.readOnlyMode
63
+ });
64
+ }
65
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/config/environment.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,6BAA6B;AAC7B,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAenD,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,aAAa,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,eAAwB,KAAK;IAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAC7C,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,YAAqB;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,yBAAyB,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAsB;IACvC,WAAW,EAAE;QACX,MAAM,EAAE,iBAAiB,CAAC,qBAAqB,CAAC;QAChD,QAAQ,EAAE,iBAAiB,CAAC,uBAAuB,CAAC;QACpD,kBAAkB,EAAE,eAAe,CAAC,kCAAkC,CAAC;QACvE,YAAY,EAAE,gBAAgB,CAAC,4BAA4B,EAAE,KAAK,CAAC;KACpE;IACD,MAAM,EAAE;QACN,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,iBAAiB;QACtD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO;QAClD,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;KAC9B;IACD,SAAS,EAAE;QACT,GAAG,EAAE,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC;QACnC,cAAc,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC;KAC1D;CACF,CAAC;AAEF,MAAM,UAAU,cAAc;IAC5B,0BAA0B;IAC1B,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;QACrC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QAC9B,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;QACpC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;QACjC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY;KAC9C,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}