@respira/wordpress-mcp-server 8.0.5 → 8.1.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.
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Regression test for bug a3f65cf5: the ACF options-page tool family
3
+ * (`respira_acf_update_options`, `respira_acf_update_option`,
4
+ * `respira_acf_get_option`, `respira_acf_get_options`, and every other
5
+ * respira_acf_* tool) ignored a per-call `site_id` override and silently
6
+ * operated on the globally active site instead, while the response envelope
7
+ * still named the pinned site — a customer running a population pass pinned
8
+ * to site B had it silently land on site A instead (reported by
9
+ * john@localmarketingpros.com, 17-site DSO rollout).
10
+ *
11
+ * Root cause: same bug class as the mcp-v8.0.3 Bricks/Elementor fix. The
12
+ * dynamic-dispatch `default:` case in `dispatchToolCall` resolves a
13
+ * site_id-aware `client` at the top of the function (via `resolveClient`),
14
+ * but the ACF branch called `this.currentSite!.dispatchAcfTool(...)` — the
15
+ * globally active site — instead of `client.dispatchAcfTool(...)`.
16
+ *
17
+ * This test proves the actual outbound HTTP call lands on the pinned site's
18
+ * host, not the active site's, by installing a mock axios adapter (same
19
+ * pattern as rest-route-fallback.test.ts) and inspecting which baseURL
20
+ * serviced the ACF options request.
21
+ */
22
+ export {};
23
+ //# sourceMappingURL=acf-site-id-routing.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acf-site-id-routing.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/acf-site-id-routing.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Regression test for bug a3f65cf5: the ACF options-page tool family
3
+ * (`respira_acf_update_options`, `respira_acf_update_option`,
4
+ * `respira_acf_get_option`, `respira_acf_get_options`, and every other
5
+ * respira_acf_* tool) ignored a per-call `site_id` override and silently
6
+ * operated on the globally active site instead, while the response envelope
7
+ * still named the pinned site — a customer running a population pass pinned
8
+ * to site B had it silently land on site A instead (reported by
9
+ * john@localmarketingpros.com, 17-site DSO rollout).
10
+ *
11
+ * Root cause: same bug class as the mcp-v8.0.3 Bricks/Elementor fix. The
12
+ * dynamic-dispatch `default:` case in `dispatchToolCall` resolves a
13
+ * site_id-aware `client` at the top of the function (via `resolveClient`),
14
+ * but the ACF branch called `this.currentSite!.dispatchAcfTool(...)` — the
15
+ * globally active site — instead of `client.dispatchAcfTool(...)`.
16
+ *
17
+ * This test proves the actual outbound HTTP call lands on the pinned site's
18
+ * host, not the active site's, by installing a mock axios adapter (same
19
+ * pattern as rest-route-fallback.test.ts) and inspecting which baseURL
20
+ * serviced the ACF options request.
21
+ */
22
+ import { test } from 'node:test';
23
+ import assert from 'node:assert/strict';
24
+ import axios from 'axios';
25
+ import { RespiraWordPressServer } from '../server.js';
26
+ const callLog = [];
27
+ let currentHandler = null;
28
+ const originalAdapter = axios.defaults.adapter;
29
+ function installMockAdapter() {
30
+ callLog.length = 0;
31
+ axios.defaults.adapter = ((config) => {
32
+ callLog.push({
33
+ method: (config.method || 'get').toLowerCase(),
34
+ url: config.url,
35
+ baseURL: config.baseURL,
36
+ });
37
+ if (!currentHandler) {
38
+ return Promise.reject(new Error('no mock handler installed'));
39
+ }
40
+ const result = currentHandler(config);
41
+ return Promise.resolve(result).then((r) => ({
42
+ status: r.status,
43
+ statusText: 'OK',
44
+ headers: r.headers || { 'content-type': 'application/json' },
45
+ config,
46
+ data: r.data,
47
+ request: {},
48
+ }));
49
+ });
50
+ }
51
+ function restoreAdapter() {
52
+ axios.defaults.adapter = originalAdapter;
53
+ currentHandler = null;
54
+ }
55
+ function setHandler(h) {
56
+ currentHandler = h;
57
+ }
58
+ function fullUrl(c) {
59
+ return c.url.startsWith('http') ? c.url : `${c.baseURL || ''}${c.url}`;
60
+ }
61
+ const SITE_A = {
62
+ id: 'site-a',
63
+ name: 'Site A (active/default)',
64
+ url: 'https://site-a.example.com',
65
+ apiKey: 'respira_token_a',
66
+ default: true,
67
+ };
68
+ const SITE_B = {
69
+ id: 'site-b',
70
+ name: 'Site B (pinned)',
71
+ url: 'https://site-b.example.com',
72
+ apiKey: 'respira_token_b',
73
+ };
74
+ // Generic handler: ACF availability check (/context/site-info) always says
75
+ // ACF is installed, regardless of which site is asked. ACF options calls
76
+ // return a small JSON payload so dispatchAcfTool doesn't throw.
77
+ function genericHandler(config) {
78
+ const url = config.url || '';
79
+ if (/\/context\/site-info/.test(url)) {
80
+ return { status: 200, data: { addons: { acf: { installed: true } } } };
81
+ }
82
+ if (/\/acf\/options\//.test(url)) {
83
+ return { status: 200, data: { value: 'mock-value', field_key: 'hero_title' } };
84
+ }
85
+ // Any other probe (compatibility check, etc.) — respond harmlessly.
86
+ return { status: 200, data: {} };
87
+ }
88
+ test('respira_acf_get_option with site_id override hits the pinned site, not the active site', async () => {
89
+ installMockAdapter();
90
+ try {
91
+ setHandler(genericHandler);
92
+ const server = new RespiraWordPressServer([SITE_A, SITE_B]);
93
+ await server.dispatchToolCall('respira_acf_get_option', {
94
+ site_id: 'site-b',
95
+ page_id: 'general',
96
+ field_key: 'hero_title',
97
+ });
98
+ const acfCalls = callLog.filter((c) => /\/acf\/options\//.test(c.url));
99
+ assert.ok(acfCalls.length > 0, 'expected at least one /acf/options/ call');
100
+ for (const c of acfCalls) {
101
+ assert.match(fullUrl(c), /site-b\.example\.com/, `ACF call should hit site-b (pinned), got: ${fullUrl(c)}`);
102
+ }
103
+ // Site A (the active/default site) must never see this call.
104
+ assert.ok(!acfCalls.some((c) => /site-a\.example\.com/.test(fullUrl(c))), 'site-a (active site) must not receive the pinned ACF call');
105
+ }
106
+ finally {
107
+ restoreAdapter();
108
+ }
109
+ });
110
+ test('respira_acf_update_option with site_id override writes to the pinned site, not the active site', async () => {
111
+ installMockAdapter();
112
+ try {
113
+ setHandler(genericHandler);
114
+ const server = new RespiraWordPressServer([SITE_A, SITE_B]);
115
+ await server.dispatchToolCall('respira_acf_update_option', {
116
+ site_id: 'site-b',
117
+ page_id: 'general',
118
+ field_key: 'hero_title',
119
+ value: 'New Title',
120
+ });
121
+ const acfWrites = callLog.filter((c) => /\/acf\/options\//.test(c.url) && c.method === 'put');
122
+ assert.ok(acfWrites.length > 0, 'expected at least one PUT /acf/options/ call');
123
+ for (const c of acfWrites) {
124
+ assert.match(fullUrl(c), /site-b\.example\.com/, `ACF write should land on site-b (pinned), got: ${fullUrl(c)}`);
125
+ }
126
+ assert.ok(!acfWrites.some((c) => /site-a\.example\.com/.test(fullUrl(c))), 'site-a (active site) must never receive the pinned ACF write');
127
+ }
128
+ finally {
129
+ restoreAdapter();
130
+ }
131
+ });
132
+ test('the "wordpress_acf_*" alias (post normalizeToolName) also routes to the pinned site', async () => {
133
+ installMockAdapter();
134
+ try {
135
+ setHandler(genericHandler);
136
+ const server = new RespiraWordPressServer([SITE_A, SITE_B]);
137
+ // dispatchToolCall receives the already-normalized name in production,
138
+ // exactly as normalizeToolName() would rewrite respira_acf_get_options.
139
+ await server.dispatchToolCall('wordpress_acf_get_options', {
140
+ site_id: 'site-b',
141
+ page_id: 'general',
142
+ });
143
+ const acfCalls = callLog.filter((c) => /\/acf\/options\//.test(c.url));
144
+ assert.ok(acfCalls.length > 0, 'expected at least one /acf/options/ call');
145
+ for (const c of acfCalls) {
146
+ assert.match(fullUrl(c), /site-b\.example\.com/);
147
+ }
148
+ }
149
+ finally {
150
+ restoreAdapter();
151
+ }
152
+ });
153
+ // The response envelope's `site` block is built from getActiveSiteSummary(args),
154
+ // which already resolves args.site_id to the matching connected site regardless
155
+ // of which client actually serviced the call (see the v6.19.0 N6 fix). That means
156
+ // once the dispatch bug above is fixed so the HTTP call truly lands on the pinned
157
+ // site, the envelope and the actual write agree. This test locks in that
158
+ // agreement for the ACF family specifically.
159
+ test('getActiveSiteSummary(args) names the pinned site for an ACF call, matching where the write actually landed', () => {
160
+ const server = new RespiraWordPressServer([SITE_A, SITE_B]);
161
+ const summary = server.getActiveSiteSummary({ site_id: 'site-b', page_id: 'general', field_key: 'x' });
162
+ assert.ok(summary, 'expected a site summary');
163
+ assert.equal(summary.id ?? summary.site_id, 'site-b');
164
+ });
165
+ //# sourceMappingURL=acf-site-id-routing.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acf-site-id-routing.test.js","sourceRoot":"","sources":["../../src/__tests__/acf-site-id-routing.test.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import assert from 'node:assert/strict';
2
2
  import { test } from 'node:test';
3
3
  import { resolve } from 'node:path';
4
4
  import { createServer } from 'node:http';
5
- import { Client } from '@modelcontextprotocol/sdk/client/index.js';
6
- import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
7
- test('packaged stdio server initializes and enumerates the release tool catalog', { timeout: 20_000 }, async () => {
5
+ import { Client } from '@modelcontextprotocol/client';
6
+ import { StdioClientTransport } from '@modelcontextprotocol/client/stdio';
7
+ test('packaged stdio server negotiates MCP 2026-07-28 and enumerates the release tool catalog', { timeout: 20_000 }, async () => {
8
8
  const wordpress = createServer((_request, response) => {
9
9
  response.writeHead(200, { 'content-type': 'application/json' });
10
10
  response.end(JSON.stringify({
@@ -35,7 +35,7 @@ test('packaged stdio server initializes and enumerates the release tool catalog'
35
35
  }],
36
36
  preferences: { autoDuplicate: true, securityChecks: true },
37
37
  })).toString('base64');
38
- const transport = new StdioClientTransport({
38
+ const transportOptions = {
39
39
  command: process.execPath,
40
40
  args: [resolve(process.cwd(), 'dist/index.js')],
41
41
  cwd: process.cwd(),
@@ -46,10 +46,14 @@ test('packaged stdio server initializes and enumerates the release tool catalog'
46
46
  RESPIRA_USAGE_OPT_OUT: '1',
47
47
  NODE_ENV: 'test',
48
48
  },
49
- });
50
- const client = new Client({ name: 'respira-release-smoke', version: '1.0.0' });
49
+ };
50
+ const transport = new StdioClientTransport(transportOptions);
51
+ const client = new Client({ name: 'respira-release-smoke', version: '1.0.0' }, { versionNegotiation: { mode: { pin: '2026-07-28' } } });
51
52
  try {
52
53
  await client.connect(transport);
54
+ assert.equal(client.getProtocolEra(), 'modern');
55
+ assert.equal(client.getNegotiatedProtocolVersion(), '2026-07-28');
56
+ assert.ok(client.getDiscoverResult(), 'server/discover must return a modern discovery result');
53
57
  const response = await client.listTools();
54
58
  const names = new Set(response.tools.map((tool) => tool.name));
55
59
  assert.ok(response.tools.length >= 250, `expected the full fail-open catalog, got ${response.tools.length}`);
@@ -69,6 +73,17 @@ test('packaged stdio server initializes and enumerates the release tool catalog'
69
73
  ]) {
70
74
  assert.ok(names.has(required), `${required} must be advertised by the live MCP protocol`);
71
75
  }
76
+ await client.close();
77
+ const legacyClient = new Client({ name: 'respira-legacy-release-smoke', version: '1.0.0' });
78
+ try {
79
+ await legacyClient.connect(new StdioClientTransport(transportOptions));
80
+ assert.equal(legacyClient.getProtocolEra(), 'legacy');
81
+ const legacyResponse = await legacyClient.listTools();
82
+ assert.equal(legacyResponse.tools.length, response.tools.length, 'legacy and modern clients must receive the same release tool catalog');
83
+ }
84
+ finally {
85
+ await legacyClient.close();
86
+ }
72
87
  }
73
88
  finally {
74
89
  await client.close();
@@ -1 +1 @@
1
- {"version":3,"file":"tools-list-protocol-smoke.test.js","sourceRoot":"","sources":["../../src/__tests__/tools-list-protocol-smoke.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools-list-protocol-smoke.test.js","sourceRoot":"","sources":["../../src/__tests__/tools-list-protocol-smoke.test.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * @since 6.6.0
10
10
  */
11
- import type { Tool } from '@modelcontextprotocol/sdk/types.js';
11
+ import type { Tool } from '@modelcontextprotocol/server';
12
12
  /**
13
13
  * Full ACF tool catalog. Imported by server.ts and pushed into getTools()
14
14
  * when isAcfAvailable() is true.
@@ -1 +1 @@
1
- {"version":3,"file":"acf-tools.d.ts","sourceRoot":"","sources":["../src/acf-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,EAAE,CA8qBpC;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,aAuDzB,CAAC;AAEH;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK9D"}
1
+ {"version":3,"file":"acf-tools.d.ts","sourceRoot":"","sources":["../src/acf-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,EAAE,CA8qBpC;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,aAuDzB,CAAC;AAEH;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK9D"}
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * @since 5.3.0
11
11
  */
12
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
12
+ import type { Tool } from '@modelcontextprotocol/server';
13
13
  /**
14
14
  * Generate tool definitions for all 20 Bricks management tools.
15
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bricks-tools.d.ts","sourceRoot":"","sources":["../src/bricks-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,EAAE,CAievC;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GACrE,OAAO,CAAC,GAAG,CAAC,CAyHd"}
1
+ {"version":3,"file":"bricks-tools.d.ts","sourceRoot":"","sources":["../src/bricks-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEzD;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,EAAE,CAievC;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GACrE,OAAO,CAAC,GAAG,CAAC,CAyHd"}
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * @since 6.1.0
13
13
  */
14
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
14
+ import type { Tool } from '@modelcontextprotocol/server';
15
15
  /**
16
16
  * Generate tool definitions for all Elementor deep tools.
17
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"elementor-tools.d.ts","sourceRoot":"","sources":["../src/elementor-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,EAAE,CA4P1C;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GACrE,OAAO,CAAC,GAAG,CAAC,CA+Cd"}
1
+ {"version":3,"file":"elementor-tools.d.ts","sourceRoot":"","sources":["../src/elementor-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEzD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,EAAE,CA4P1C;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GACrE,OAAO,CAAC,GAAG,CAAC,CA+Cd"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqBH,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,kBAAkB,CAAC;AAsQzE,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,YAAY,CAA4B;IAChD,8EAA8E;IAC9E,OAAO,CAAC,YAAY,CAA4B;IAChD,8EAA8E;IAC9E,OAAO,CAAC,mBAAmB,CAAS;IACpC,iFAAiF;IACjF,OAAO,CAAC,iBAAiB,CAAK;IAC9B,iFAAiF;IACjF,OAAO,CAAC,mBAAmB,CAAgC;IAE3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;IAEhE;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;gBA4Bb,WAAW,EAAE,mBAAmB,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE;IAiVvE,OAAO,CAAC,cAAc;IAItB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa;IA4BrB,gEAAgE;IAChE,OAAO,CAAC,aAAa;IAUrB;;;;;;OAMG;YACW,UAAU;IA2CxB;;;;;;;;;;;;;;OAcG;YACW,WAAW;IAiJzB;;;;;;;;;OASG;YACW,kBAAkB;IA6KhC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;YACW,qBAAqB;YAiBrB,kBAAkB;IA6FhC,yFAAyF;IACzF,OAAO,CAAC,gBAAgB;IASxB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,6BAA6B;IA0BrC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,yBAAyB;IA+BjC,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,aAAa;YAmQP,kBAAkB;YA6BlB,yBAAyB;IASvC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;YAyBd,QAAQ;IAuvGtB;;;;;;OAMG;IACH;;;;;;;;;;;;;oDAagD;IAChD,OAAO,CAAC,mBAAmB,CAAoD;IAC/E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAU;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IAC1D;;mDAE+C;IAC/C,OAAO,CAAC,0BAA0B,CAAoC;IAEtE;;;;;;;;OAQG;YACW,0BAA0B;YAyC1B,oBAAoB;YA6CpB,2BAA2B;IAQzC;;;;OAIG;YACW,cAAc;IAQ5B,OAAO,CAAC,mBAAmB;IAo7C3B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAe3C;IAEF;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;YAmCpB,cAAc;IA4G5B,oEAAoE;IACpE,OAAO,CAAC,iBAAiB;IAoBzB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,eAAe;YAuCT,gBAAgB;IAo0C9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8YzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA6UxB,GAAG;CAyCV"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,kBAAkB,CAAC;AAsQzE,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,YAAY,CAA4B;IAChD,8EAA8E;IAC9E,OAAO,CAAC,YAAY,CAA4B;IAChD,8EAA8E;IAC9E,OAAO,CAAC,mBAAmB,CAAS;IACpC,iFAAiF;IACjF,OAAO,CAAC,iBAAiB,CAAK;IAC9B,iFAAiF;IACjF,OAAO,CAAC,mBAAmB,CAAgC;IAE3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;IAEhE;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;gBA4Bb,WAAW,EAAE,mBAAmB,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE;IAiVvE,OAAO,CAAC,cAAc;IAItB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa;IA4BrB,gEAAgE;IAChE,OAAO,CAAC,aAAa;IAUrB;;;;;;OAMG;YACW,UAAU;IA2CxB;;;;;;;;;;;;;;OAcG;YACW,WAAW;IAiJzB;;;;;;;;;OASG;YACW,kBAAkB;IA6KhC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;YACW,qBAAqB;YAiBrB,kBAAkB;IA6FhC,yFAAyF;IACzF,OAAO,CAAC,gBAAgB;IASxB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,6BAA6B;IA0BrC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,yBAAyB;IA+BjC,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,aAAa;YAmQP,kBAAkB;YA6BlB,yBAAyB;IASvC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;YAyBd,QAAQ;IA+xGtB;;;;;;OAMG;IACH;;;;;;;;;;;;;oDAagD;IAChD,OAAO,CAAC,mBAAmB,CAAoD;IAC/E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAU;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IAC1D;;mDAE+C;IAC/C,OAAO,CAAC,0BAA0B,CAAoC;IAEtE;;;;;;;;OAQG;YACW,0BAA0B;YAyC1B,oBAAoB;YA6CpB,2BAA2B;IAQzC;;;;OAIG;YACW,cAAc;IAQ5B,OAAO,CAAC,mBAAmB;IAo7C3B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAe3C;IAEF;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;YAmCpB,cAAc;IA4G5B,oEAAoE;IACpE,OAAO,CAAC,iBAAiB;IAoBzB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,eAAe;YAuCT,gBAAgB;IA+0C9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkZzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA6UxB,GAAG;CA+CV"}