anki-mcp-http 0.19.1 โ†’ 0.20.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 (37) hide show
  1. package/README.md +7 -1
  2. package/dist/mcp/clients/anki-connect.client.js +5 -0
  3. package/dist/mcp/clients/anki-connect.client.js.map +1 -1
  4. package/dist/mcp/primitives/essential/index.d.ts +13 -1
  5. package/dist/mcp/primitives/essential/index.js +25 -1
  6. package/dist/mcp/primitives/essential/index.js.map +1 -1
  7. package/dist/mcp/primitives/essential/tools/add-model-field.tool.d.ts +113 -0
  8. package/dist/mcp/primitives/essential/tools/add-model-field.tool.js +150 -0
  9. package/dist/mcp/primitives/essential/tools/add-model-field.tool.js.map +1 -0
  10. package/dist/mcp/primitives/essential/tools/model-templates.tool.d.ts +116 -0
  11. package/dist/mcp/primitives/essential/tools/model-templates.tool.js +95 -0
  12. package/dist/mcp/primitives/essential/tools/model-templates.tool.js.map +1 -0
  13. package/dist/mcp/primitives/essential/tools/remove-model-field.tool.d.ts +112 -0
  14. package/dist/mcp/primitives/essential/tools/remove-model-field.tool.js +107 -0
  15. package/dist/mcp/primitives/essential/tools/remove-model-field.tool.js.map +1 -0
  16. package/dist/mcp/primitives/essential/tools/rename-model-field.tool.d.ts +114 -0
  17. package/dist/mcp/primitives/essential/tools/rename-model-field.tool.js +156 -0
  18. package/dist/mcp/primitives/essential/tools/rename-model-field.tool.js.map +1 -0
  19. package/dist/mcp/primitives/essential/tools/reposition-model-field.tool.d.ts +113 -0
  20. package/dist/mcp/primitives/essential/tools/reposition-model-field.tool.js +137 -0
  21. package/dist/mcp/primitives/essential/tools/reposition-model-field.tool.js.map +1 -0
  22. package/dist/mcp/primitives/essential/tools/update-model-templates.tool.d.ts +115 -0
  23. package/dist/mcp/primitives/essential/tools/update-model-templates.tool.js +140 -0
  24. package/dist/mcp/primitives/essential/tools/update-model-templates.tool.js.map +1 -0
  25. package/dist/tunnel/commands/tunnel.command.js +22 -11
  26. package/dist/tunnel/commands/tunnel.command.js.map +1 -1
  27. package/dist/tunnel/in-memory.transport.js +2 -1
  28. package/dist/tunnel/in-memory.transport.js.map +1 -1
  29. package/dist/tunnel/tunnel-mcp.service.js +8 -3
  30. package/dist/tunnel/tunnel-mcp.service.js.map +1 -1
  31. package/dist/tunnel/tunnel.client.d.ts +2 -1
  32. package/dist/tunnel/tunnel.client.js +48 -27
  33. package/dist/tunnel/tunnel.client.js.map +1 -1
  34. package/dist/tunnel/tunnel.protocol.d.ts +2 -8
  35. package/dist/tunnel/tunnel.protocol.js +1 -1
  36. package/dist/tunnel/tunnel.protocol.js.map +1 -1
  37. package/package.json +11 -11
@@ -0,0 +1,113 @@
1
+ import { AnkiConnectClient } from "../../../clients/anki-connect.client";
2
+ export declare class RepositionModelFieldTool {
3
+ private readonly ankiClient;
4
+ private readonly logger;
5
+ constructor(ankiClient: AnkiConnectClient);
6
+ repositionModelField({ modelName, fieldName, index, }: {
7
+ modelName: string;
8
+ fieldName: string;
9
+ index: number;
10
+ }): Promise<{
11
+ [x: string]: unknown;
12
+ content: ({
13
+ type: "text";
14
+ text: string;
15
+ annotations?: {
16
+ audience?: ("user" | "assistant")[] | undefined;
17
+ priority?: number | undefined;
18
+ lastModified?: string | undefined;
19
+ } | undefined;
20
+ _meta?: {
21
+ [x: string]: unknown;
22
+ } | undefined;
23
+ } | {
24
+ type: "image";
25
+ data: string;
26
+ mimeType: string;
27
+ annotations?: {
28
+ audience?: ("user" | "assistant")[] | undefined;
29
+ priority?: number | undefined;
30
+ lastModified?: string | undefined;
31
+ } | undefined;
32
+ _meta?: {
33
+ [x: string]: unknown;
34
+ } | undefined;
35
+ } | {
36
+ type: "audio";
37
+ data: string;
38
+ mimeType: string;
39
+ annotations?: {
40
+ audience?: ("user" | "assistant")[] | undefined;
41
+ priority?: number | undefined;
42
+ lastModified?: string | undefined;
43
+ } | undefined;
44
+ _meta?: {
45
+ [x: string]: unknown;
46
+ } | undefined;
47
+ } | {
48
+ uri: string;
49
+ name: string;
50
+ type: "resource_link";
51
+ description?: string | undefined;
52
+ mimeType?: string | undefined;
53
+ size?: number | undefined;
54
+ annotations?: {
55
+ audience?: ("user" | "assistant")[] | undefined;
56
+ priority?: number | undefined;
57
+ lastModified?: string | undefined;
58
+ } | undefined;
59
+ _meta?: {
60
+ [x: string]: unknown;
61
+ } | undefined;
62
+ icons?: {
63
+ src: string;
64
+ mimeType?: string | undefined;
65
+ sizes?: string[] | undefined;
66
+ theme?: "light" | "dark" | undefined;
67
+ }[] | undefined;
68
+ title?: string | undefined;
69
+ } | {
70
+ type: "resource";
71
+ resource: {
72
+ uri: string;
73
+ text: string;
74
+ mimeType?: string | undefined;
75
+ _meta?: {
76
+ [x: string]: unknown;
77
+ } | undefined;
78
+ } | {
79
+ uri: string;
80
+ blob: string;
81
+ mimeType?: string | undefined;
82
+ _meta?: {
83
+ [x: string]: unknown;
84
+ } | undefined;
85
+ };
86
+ annotations?: {
87
+ audience?: ("user" | "assistant")[] | undefined;
88
+ priority?: number | undefined;
89
+ lastModified?: string | undefined;
90
+ } | undefined;
91
+ _meta?: {
92
+ [x: string]: unknown;
93
+ } | undefined;
94
+ })[];
95
+ _meta?: {
96
+ [x: string]: unknown;
97
+ progressToken?: string | number | undefined;
98
+ "io.modelcontextprotocol/related-task"?: {
99
+ taskId: string;
100
+ } | undefined;
101
+ } | undefined;
102
+ structuredContent?: {
103
+ [x: string]: unknown;
104
+ } | undefined;
105
+ isError?: boolean | undefined;
106
+ } | {
107
+ success: boolean;
108
+ modelName: string;
109
+ fieldName: string;
110
+ newIndex: number;
111
+ message: string;
112
+ }>;
113
+ }
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var RepositionModelFieldTool_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.RepositionModelFieldTool = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const mcp_nest_1 = require("@rekog/mcp-nest");
16
+ const zod_1 = require("zod");
17
+ const anki_connect_client_1 = require("../../../clients/anki-connect.client");
18
+ const anki_utils_1 = require("../../../utils/anki.utils");
19
+ let RepositionModelFieldTool = RepositionModelFieldTool_1 = class RepositionModelFieldTool {
20
+ ankiClient;
21
+ logger = new common_1.Logger(RepositionModelFieldTool_1.name);
22
+ constructor(ankiClient) {
23
+ this.ankiClient = ankiClient;
24
+ }
25
+ async repositionModelField({ modelName, fieldName, index, }) {
26
+ try {
27
+ this.logger.log(`Repositioning field "${fieldName}" to index ${index} in model "${modelName}"`);
28
+ const fields = await this.ankiClient.invoke("modelFieldNames", {
29
+ modelName,
30
+ });
31
+ if (!fields || fields.length === 0) {
32
+ return (0, anki_utils_1.createErrorResponse)(new Error(`Model "${modelName}" has no fields or does not exist`), {
33
+ modelName,
34
+ fieldName,
35
+ index,
36
+ hint: "Model not found. Use modelNames tool to see available models.",
37
+ });
38
+ }
39
+ if (!fields.includes(fieldName)) {
40
+ return (0, anki_utils_1.createErrorResponse)(new Error(`Field "${fieldName}" does not exist in model "${modelName}"`), {
41
+ modelName,
42
+ fieldName,
43
+ index,
44
+ hint: "Field names are case-sensitive. Use modelFieldNames to see the current field names.",
45
+ });
46
+ }
47
+ if (index < 0 || index > fields.length - 1) {
48
+ return (0, anki_utils_1.createErrorResponse)(new Error(`Index ${index} is out of range for model "${modelName}". ` +
49
+ `Valid range is 0-${fields.length - 1} (the model has ${fields.length} fields). ` +
50
+ "AnkiConnect would silently clamp the index instead of erroring."), {
51
+ modelName,
52
+ fieldName,
53
+ index,
54
+ hint: "Index out of range. Use modelFieldNames to see how many fields exist.",
55
+ });
56
+ }
57
+ await this.ankiClient.invoke("modelFieldReposition", {
58
+ modelName,
59
+ fieldName,
60
+ index,
61
+ });
62
+ this.logger.log(`Successfully repositioned field "${fieldName}" to index ${index} in model "${modelName}"`);
63
+ return {
64
+ success: true,
65
+ modelName,
66
+ fieldName,
67
+ newIndex: index,
68
+ message: `Successfully moved field "${fieldName}" to position ${index} in model "${modelName}"`,
69
+ };
70
+ }
71
+ catch (error) {
72
+ this.logger.error(`Failed to reposition field "${fieldName}" in model "${modelName}"`, error);
73
+ const errorMessage = error instanceof Error ? error.message : String(error);
74
+ if (errorMessage.includes("not found") ||
75
+ errorMessage.includes("does not exist")) {
76
+ return (0, anki_utils_1.createErrorResponse)(error, {
77
+ modelName,
78
+ fieldName,
79
+ index,
80
+ hint: "Model or field not found. Use modelNames and modelFieldNames tools to verify names.",
81
+ });
82
+ }
83
+ return (0, anki_utils_1.createErrorResponse)(error, {
84
+ modelName,
85
+ fieldName,
86
+ index,
87
+ hint: "Make sure Anki is running and the model and field names are correct.",
88
+ });
89
+ }
90
+ }
91
+ };
92
+ exports.RepositionModelFieldTool = RepositionModelFieldTool;
93
+ __decorate([
94
+ (0, mcp_nest_1.Tool)({
95
+ name: "repositionModelField",
96
+ description: "Change the position of a field within an Anki note type (model). " +
97
+ "Fields are ordered 0-based: index 0 is the first field. " +
98
+ "(Which field is the sort field is a separate model setting and is not changed by repositioning.) " +
99
+ "Use modelFieldNames to see the current field order before repositioning.",
100
+ parameters: zod_1.z.object({
101
+ modelName: zod_1.z
102
+ .string()
103
+ .min(1)
104
+ .describe('Name of the note type to modify (e.g., "Basic", "Latin Vocabulary")'),
105
+ fieldName: zod_1.z
106
+ .string()
107
+ .min(1)
108
+ .describe('Name of the field to reposition (e.g., "Grammar")'),
109
+ index: zod_1.z
110
+ .number()
111
+ .int()
112
+ .min(0)
113
+ .describe("New 0-based position for the field (0 = first field)."),
114
+ }),
115
+ outputSchema: zod_1.z.object({
116
+ success: zod_1.z.boolean(),
117
+ modelName: zod_1.z.string(),
118
+ fieldName: zod_1.z.string(),
119
+ newIndex: zod_1.z.number(),
120
+ message: zod_1.z.string(),
121
+ }),
122
+ annotations: {
123
+ title: "Reposition Field in Note Type",
124
+ readOnlyHint: false,
125
+ destructiveHint: false,
126
+ idempotentHint: true,
127
+ },
128
+ }),
129
+ __metadata("design:type", Function),
130
+ __metadata("design:paramtypes", [Object]),
131
+ __metadata("design:returntype", Promise)
132
+ ], RepositionModelFieldTool.prototype, "repositionModelField", null);
133
+ exports.RepositionModelFieldTool = RepositionModelFieldTool = RepositionModelFieldTool_1 = __decorate([
134
+ (0, common_1.Injectable)(),
135
+ __metadata("design:paramtypes", [anki_connect_client_1.AnkiConnectClient])
136
+ ], RepositionModelFieldTool);
137
+ //# sourceMappingURL=reposition-model-field.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reposition-model-field.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/reposition-model-field.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ import { AnkiConnectClient } from "../../../clients/anki-connect.client";
2
+ export declare class UpdateModelTemplatesTool {
3
+ private readonly ankiClient;
4
+ private readonly logger;
5
+ constructor(ankiClient: AnkiConnectClient);
6
+ updateModelTemplates({ modelName, templates, }: {
7
+ modelName: string;
8
+ templates: Record<string, {
9
+ Front: string;
10
+ Back: string;
11
+ }>;
12
+ }): Promise<{
13
+ [x: string]: unknown;
14
+ content: ({
15
+ type: "text";
16
+ text: string;
17
+ annotations?: {
18
+ audience?: ("user" | "assistant")[] | undefined;
19
+ priority?: number | undefined;
20
+ lastModified?: string | undefined;
21
+ } | undefined;
22
+ _meta?: {
23
+ [x: string]: unknown;
24
+ } | undefined;
25
+ } | {
26
+ type: "image";
27
+ data: string;
28
+ mimeType: string;
29
+ annotations?: {
30
+ audience?: ("user" | "assistant")[] | undefined;
31
+ priority?: number | undefined;
32
+ lastModified?: string | undefined;
33
+ } | undefined;
34
+ _meta?: {
35
+ [x: string]: unknown;
36
+ } | undefined;
37
+ } | {
38
+ type: "audio";
39
+ data: string;
40
+ mimeType: string;
41
+ annotations?: {
42
+ audience?: ("user" | "assistant")[] | undefined;
43
+ priority?: number | undefined;
44
+ lastModified?: string | undefined;
45
+ } | undefined;
46
+ _meta?: {
47
+ [x: string]: unknown;
48
+ } | undefined;
49
+ } | {
50
+ uri: string;
51
+ name: string;
52
+ type: "resource_link";
53
+ description?: string | undefined;
54
+ mimeType?: string | undefined;
55
+ size?: number | undefined;
56
+ annotations?: {
57
+ audience?: ("user" | "assistant")[] | undefined;
58
+ priority?: number | undefined;
59
+ lastModified?: string | undefined;
60
+ } | undefined;
61
+ _meta?: {
62
+ [x: string]: unknown;
63
+ } | undefined;
64
+ icons?: {
65
+ src: string;
66
+ mimeType?: string | undefined;
67
+ sizes?: string[] | undefined;
68
+ theme?: "light" | "dark" | undefined;
69
+ }[] | undefined;
70
+ title?: string | undefined;
71
+ } | {
72
+ type: "resource";
73
+ resource: {
74
+ uri: string;
75
+ text: string;
76
+ mimeType?: string | undefined;
77
+ _meta?: {
78
+ [x: string]: unknown;
79
+ } | undefined;
80
+ } | {
81
+ uri: string;
82
+ blob: string;
83
+ mimeType?: string | undefined;
84
+ _meta?: {
85
+ [x: string]: unknown;
86
+ } | undefined;
87
+ };
88
+ annotations?: {
89
+ audience?: ("user" | "assistant")[] | undefined;
90
+ priority?: number | undefined;
91
+ lastModified?: string | undefined;
92
+ } | undefined;
93
+ _meta?: {
94
+ [x: string]: unknown;
95
+ } | undefined;
96
+ })[];
97
+ _meta?: {
98
+ [x: string]: unknown;
99
+ progressToken?: string | number | undefined;
100
+ "io.modelcontextprotocol/related-task"?: {
101
+ taskId: string;
102
+ } | undefined;
103
+ } | undefined;
104
+ structuredContent?: {
105
+ [x: string]: unknown;
106
+ } | undefined;
107
+ isError?: boolean | undefined;
108
+ } | {
109
+ success: boolean;
110
+ modelName: string;
111
+ templateCount: number;
112
+ message: string;
113
+ hint: string;
114
+ }>;
115
+ }
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var UpdateModelTemplatesTool_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.UpdateModelTemplatesTool = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const mcp_nest_1 = require("@rekog/mcp-nest");
16
+ const zod_1 = require("zod");
17
+ const anki_connect_client_1 = require("../../../clients/anki-connect.client");
18
+ const anki_utils_1 = require("../../../utils/anki.utils");
19
+ let UpdateModelTemplatesTool = UpdateModelTemplatesTool_1 = class UpdateModelTemplatesTool {
20
+ ankiClient;
21
+ logger = new common_1.Logger(UpdateModelTemplatesTool_1.name);
22
+ constructor(ankiClient) {
23
+ this.ankiClient = ankiClient;
24
+ }
25
+ async updateModelTemplates({ modelName, templates, }) {
26
+ try {
27
+ this.logger.log(`Updating templates for model: ${modelName}`);
28
+ const existingTemplates = await this.ankiClient.invoke("modelTemplates", {
29
+ modelName,
30
+ });
31
+ if (!existingTemplates || Object.keys(existingTemplates).length === 0) {
32
+ return (0, anki_utils_1.createErrorResponse)(new Error(`Model "${modelName}" has no templates or does not exist`), {
33
+ modelName,
34
+ hint: "Model not found. Use modelNames tool to see available models.",
35
+ });
36
+ }
37
+ const existingNames = new Set(Object.keys(existingTemplates));
38
+ const unknownNames = Object.keys(templates).filter((name) => !existingNames.has(name));
39
+ if (unknownNames.length > 0) {
40
+ const offending = unknownNames.map((name) => `"${name}"`).join(", ");
41
+ const validNames = Object.keys(existingTemplates)
42
+ .map((name) => `"${name}"`)
43
+ .join(", ");
44
+ return (0, anki_utils_1.createErrorResponse)(new Error(`Card template(s) not found in model "${modelName}": ${offending}. ` +
45
+ `Valid templates: ${validNames}. ` +
46
+ "Use modelTemplates to see current names."), {
47
+ modelName,
48
+ hint: `Card template names are case-sensitive and must match exactly. Valid templates: ${validNames}.`,
49
+ });
50
+ }
51
+ const templateCount = Object.keys(templates).length;
52
+ await this.ankiClient.invoke("updateModelTemplates", {
53
+ model: {
54
+ name: modelName,
55
+ templates,
56
+ },
57
+ });
58
+ this.logger.log(`Successfully updated ${templateCount} templates for model: ${modelName}`);
59
+ return {
60
+ success: true,
61
+ modelName,
62
+ templateCount,
63
+ message: `Successfully updated ${templateCount} card template(s) for model "${modelName}"`,
64
+ hint: "Template changes apply to all cards using this model. Use guiBrowse to preview changes.",
65
+ };
66
+ }
67
+ catch (error) {
68
+ this.logger.error(`Failed to update templates for model ${modelName}`, error);
69
+ const errorMessage = error instanceof Error ? error.message : String(error);
70
+ if (errorMessage.includes("not found") ||
71
+ errorMessage.includes("does not exist") ||
72
+ errorMessage.includes("model not found")) {
73
+ return (0, anki_utils_1.createErrorResponse)(error, {
74
+ modelName,
75
+ hint: "Model not found. Use modelNames tool to see available models.",
76
+ });
77
+ }
78
+ return (0, anki_utils_1.createErrorResponse)(error, {
79
+ modelName,
80
+ hint: "Make sure Anki is running and the model name is correct.",
81
+ });
82
+ }
83
+ }
84
+ };
85
+ exports.UpdateModelTemplatesTool = UpdateModelTemplatesTool;
86
+ __decorate([
87
+ (0, mcp_nest_1.Tool)({
88
+ name: "updateModelTemplates",
89
+ description: "Update the card templates (Front and Back HTML) for an existing note type (model). " +
90
+ "Each card template defines how the card's front and back sides are rendered. " +
91
+ "Use modelTemplates first to see current templates, then modify and pass back the templates object. " +
92
+ "Changes apply to all cards using this model. " +
93
+ "WARNING: Invalid HTML or missing required fields may break card rendering. " +
94
+ "Card template names are validated against the model's existing templates (case-sensitive) โ€” unknown or mis-cased names are rejected before any update. " +
95
+ "An empty string cannot be used to blank a side.",
96
+ parameters: zod_1.z.object({
97
+ modelName: zod_1.z
98
+ .string()
99
+ .min(1)
100
+ .describe('Name of the model to update (e.g., "Basic", "Cloze")'),
101
+ templates: zod_1.z
102
+ .record(zod_1.z.string(), zod_1.z.object({
103
+ Front: zod_1.z
104
+ .string()
105
+ .min(1)
106
+ .describe("HTML template for the front/question side"),
107
+ Back: zod_1.z
108
+ .string()
109
+ .min(1)
110
+ .describe("HTML template for the back/answer side"),
111
+ }))
112
+ .refine((t) => Object.keys(t).length > 0, {
113
+ message: "At least one card template is required",
114
+ })
115
+ .describe('Card templates keyed by card name (e.g., { "Card 1": { Front: "...", Back: "..." } }). ' +
116
+ "Use modelTemplates first to get the current structure, then modify the Front/Back HTML as needed."),
117
+ }),
118
+ outputSchema: zod_1.z.object({
119
+ success: zod_1.z.boolean(),
120
+ modelName: zod_1.z.string(),
121
+ templateCount: zod_1.z.number(),
122
+ message: zod_1.z.string(),
123
+ hint: zod_1.z.string(),
124
+ }),
125
+ annotations: {
126
+ title: "Update Note Type Templates",
127
+ readOnlyHint: false,
128
+ destructiveHint: false,
129
+ idempotentHint: true,
130
+ },
131
+ }),
132
+ __metadata("design:type", Function),
133
+ __metadata("design:paramtypes", [Object]),
134
+ __metadata("design:returntype", Promise)
135
+ ], UpdateModelTemplatesTool.prototype, "updateModelTemplates", null);
136
+ exports.UpdateModelTemplatesTool = UpdateModelTemplatesTool = UpdateModelTemplatesTool_1 = __decorate([
137
+ (0, common_1.Injectable)(),
138
+ __metadata("design:paramtypes", [anki_connect_client_1.AnkiConnectClient])
139
+ ], UpdateModelTemplatesTool);
140
+ //# sourceMappingURL=update-model-templates.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-model-templates.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/update-model-templates.tool.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,12 @@ function deriveDashboardUrl(tunnelUrl) {
21
21
  url.hostname = url.hostname.replace(/^tunnel\./, "web.");
22
22
  return url.origin;
23
23
  }
24
+ function printTunnelBoxes(cli, tunnelUrl) {
25
+ displayBox(cli, "๐Ÿš‡ Tunnel URL", tunnelUrl);
26
+ cli.blank();
27
+ displayBox(cli, "๐ŸŒ Dashboard", deriveDashboardUrl(tunnelUrl));
28
+ cli.blank();
29
+ }
24
30
  function formatConnectionError(error, tunnelUrl) {
25
31
  if (error instanceof tunnel_1.TunnelClientError && error.originalError) {
26
32
  const origError = error.originalError;
@@ -186,27 +192,32 @@ async function handleTunnel(cli, tunnelUrl, debug, readOnly) {
186
192
  cli.blank();
187
193
  return await gracefulExit(1);
188
194
  }
189
- displayBox(cli, "๐Ÿš‡ Tunnel URL", publicUrl);
190
- cli.blank();
191
- displayBox(cli, "๐ŸŒ Dashboard", deriveDashboardUrl(publicUrl));
192
- cli.blank();
195
+ printTunnelBoxes(cli, publicUrl);
193
196
  cli.info("Tunnel is active. Press Ctrl+C to disconnect.");
194
197
  cli.blank();
195
198
  const logger = new common_1.Logger("TunnelCommand");
196
199
  tunnelClient.on("request", (requestId, request) => {
197
200
  logger.log(`Request ${requestId}: ${request.method} ${request.path}`);
198
201
  });
199
- tunnelClient.on("url_changed", (oldUrl, newUrl) => {
202
+ tunnelClient.on("disconnected", (code, reason, willReconnect) => {
200
203
  cli.blank();
201
- cli.info(`๐Ÿ”„ Tunnel URL changed:`);
202
- cli.info(` Old: ${oldUrl}`);
203
- cli.info(` New: ${newUrl}`);
204
+ if (willReconnect) {
205
+ cli.warn(`Tunnel disconnected (code ${code}): ${reason}. Reconnectingโ€ฆ`);
206
+ }
207
+ else {
208
+ cli.error(`Tunnel disconnected (code ${code}): ${reason}`);
209
+ }
204
210
  cli.blank();
205
211
  });
206
- tunnelClient.on("disconnected", (code, reason) => {
207
- cli.blank();
208
- cli.error(`Tunnel disconnected (code ${code}): ${reason}`);
212
+ let activeTunnelUrl = publicUrl;
213
+ tunnelClient.on("tunnel_url", (url) => {
214
+ if (url === activeTunnelUrl) {
215
+ return;
216
+ }
217
+ activeTunnelUrl = url;
209
218
  cli.blank();
219
+ cli.info("Tunnel URL changed after reconnect:");
220
+ printTunnelBoxes(cli, url);
210
221
  });
211
222
  process.on("SIGINT", () => {
212
223
  cli.blank();
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel.command.js","sourceRoot":"","sources":["../../../src/tunnel/commands/tunnel.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tunnel.command.js","sourceRoot":"","sources":["../../../src/tunnel/commands/tunnel.command.ts"],"names":[],"mappings":";;AAgDA,gDAIC;AAwJD,oCA+QC;AA3dD,uCAA2C;AAC3C,2CAAsE;AACtE,iDAAyC;AACzC,+BAQkB;AAClB,8DAA+D;AAC/D,iEAAwD;AACxD,yCAA+C;AAC/C,qDAA0D;AAC1D,+CAA6C;AAC7C,+CAIqB;AACrB,mDAAyE;AAKzE,SAAS,UAAU,CAAC,GAAQ,EAAE,KAAa,EAAE,GAAW;IACtD,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtB,CAAC;AAmBD,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAOD,SAAS,gBAAgB,CAAC,GAAQ,EAAE,SAAiB;IACnD,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;IAC5C,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,CAAC;AASD,SAAS,qBAAqB,CAAC,KAAc,EAAE,SAAiB;IAE9D,IAAI,KAAK,YAAY,0BAAiB,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,aAAkC,CAAC;QAC3D,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACtC,OAAO,sCAAsC,SAAS;2CACjB,CAAC;QACxC,CAAC;IACH,CAAC;IAGD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,IACE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;YACtC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAC9C,CAAC;YACD,OAAO,sCAAsC,SAAS;2CACjB,CAAC;QACxC,CAAC;QAGD,IACE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAC5C,CAAC;YACD,OAAO,yBAAyB,SAAS;4DACa,CAAC;QACzD,CAAC;QAGD,IACE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;YACtC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC7B,CAAC;YACD,OAAO;6EACgE,CAAC;QAC1E,CAAC;IACH,CAAC;IAGD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,sBAAsB,OAAO,EAAE,CAAC;AACzC,CAAC;AAeD,KAAK,UAAU,iBAAiB,CAC9B,GAAQ,EACR,kBAAsC,EACtC,iBAAoC;IAEpC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,eAAe,EAAE,CAAC;IAC5D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAOD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,GAAG,CAAC,KAAK,CACP,0EAA0E,CAC3E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC5D,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,IAAA,4BAAY,EAAC;YACrC,kBAAkB;YAClB,iBAAiB;YACjB,GAAG;SACJ,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACpC,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,EAAE,CAAC;QAEZ,IAAI,KAAK,YAAY,wBAAe,EAAE,CAAC;YACrC,GAAG,CAAC,KAAK,CAAC,IAAA,wCAAwB,EAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CACP,iBAAiB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACzE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAyBM,KAAK,UAAU,YAAY,CAChC,GAAQ,EACR,SAAkB,EAClB,KAAe,EACf,QAAkB;IAElB,MAAM,kBAAkB,GAAG,IAAI,2BAAkB,EAAE,CAAC;IAGpD,MAAM,eAAe,GAAG,IAAA,4BAAmB,EAAC;QAC1C,KAAK;QACL,QAAQ;QACR,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,IAAI,qCAAgB,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,iBAAiB,GAAG,IAAI,0BAAiB,CAAC,gBAAgB,CAAC,CAAC;IAKlE,IAAI,GAAwC,CAAC;IAC7C,IAAI,YAAsC,CAAC;IAI3C,IAAI,YAAY,GAAG,KAAK,CAAC;IAWzB,MAAM,YAAY,GAAG,KAAK,EACxB,IAAY,EACZ,OAAgB,EACA,EAAE;QAClB,IAAI,YAAY,EAAE,CAAC;YAGjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,YAAY,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC;YACH,IAAI,OAAO,EAAE,CAAC;gBACZ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC;YACD,YAAY,EAAE,UAAU,EAAE,CAAC;YAC3B,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CACP,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACrE,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,GAAG,CAAC,IAAI,CAAC,IAAA,yBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC;IACjC,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,IAAI,CAAC;QAKH,MAAM,WAAW,GAAG,MAAM,iBAAiB,CACzC,GAAG,EACH,kBAAkB,EAClB,iBAAiB,CAClB,CAAC;QAGF,MAAM,WAAW,GAAG,IAAA,sBAAY,EAAC,yBAAyB,CAAC,CAAC;QAC5D,IAAI,gBAAkC,CAAC;QAGvC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAA,4BAAgB,EAAC,2BAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,IAAA,+BAAmB,EAAC,UAAU,CAAC,CAAC;QAKtD,IAAI,KAAK,EAAE,CAAC;YACV,eAAM,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,eAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAErC,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,kBAAW,CAAC,wBAAwB,CAC9C,sBAAS,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EACxC;gBACE,MAAM,EAAE,aAAa;aACtB,CACF,CAAC;YACF,gBAAgB,GAAG,GAAG,CAAC,GAAG,CAAC,qCAAgB,CAAC,CAAC;YAC7C,WAAW,EAAE,CAAC;YACd,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,GAAG,CAAC,KAAK,CACP,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACxF,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;YACF,GAAG,CAAC,KAAK,EAAE,CAAC;YAEZ,OAAO,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,GAAG,CAAC,KAAK,EAAE,CAAC;QAGZ,MAAM,UAAU,GAAsB;YACpC,KAAK,CAAC,MAAM,CAAC,OAAO;gBAClB,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACxE,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,YAAY;iBACnB,CAAC;YACJ,CAAC;SACF,CAAC;QAMF,MAAM,kBAAkB,GAAG,SAAS,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC;QAEzE,YAAY,GAAG,IAAI,qBAAY,CAC7B,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,CACnB,CAAC;QAIF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAExC,IACE,KAAK,YAAY,0BAAiB;gBAClC,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAChC,CAAC;gBACD,GAAG,CAAC,KAAK,EAAE,CAAC;gBACZ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAIzB,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAGD,IAAI,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC;gBAChC,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;QAEH,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,IAAA,sBAAY,EAAC,iCAAiC,CAAC,CAAC;QACvE,IAAI,SAAiB,CAAC;QAEtB,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACpD,cAAc,EAAE,CAAC;YACjB,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAClC,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;YAGjB,IACE,KAAK,YAAY,0BAAiB;gBAClC,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAChC,CAAC;gBACD,GAAG,CAAC,KAAK,EAAE,CAAC;gBACZ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAGzB,OAAO,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;YAGD,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;YACtE,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACpE,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAKD,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC1D,GAAG,CAAC,KAAK,EAAE,CAAC;QAGZ,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,eAAe,CAAC,CAAC;QAC3C,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,SAAiB,EAAE,OAAO,EAAE,EAAE;YACxD,MAAM,CAAC,GAAG,CAAC,WAAW,SAAS,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CACb,cAAc,EACd,CAAC,IAAY,EAAE,MAAc,EAAE,aAAsB,EAAE,EAAE;YACvD,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,IAAI,aAAa,EAAE,CAAC;gBAGlB,GAAG,CAAC,IAAI,CACN,6BAA6B,IAAI,MAAM,MAAM,iBAAiB,CAC/D,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,6BAA6B,IAAI,MAAM,MAAM,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,CAAC,CACF,CAAC;QAQF,IAAI,eAAe,GAAG,SAAS,CAAC;QAChC,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAW,EAAE,EAAE;YAC5C,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,eAAe,GAAG,GAAG,CAAC;YACtB,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YAChD,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QASH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,YAAY,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,YAAY,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAGH,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,GAAG,CAAC,KAAK,CACP,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC1E,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACF,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;AACH,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InMemoryTransport = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
+ const tunnel_protocol_1 = require("./tunnel.protocol");
5
6
  class InMemoryTransport {
6
7
  logger = new common_1.Logger(InMemoryTransport.name);
7
8
  pendingRequests = new Map();
@@ -54,7 +55,7 @@ class InMemoryTransport {
54
55
  pending.timeout = setTimeout(() => {
55
56
  this.pendingRequests.delete(request.id);
56
57
  reject(new Error("MCP request timeout"));
57
- }, 30000);
58
+ }, tunnel_protocol_1.TUNNEL_DEFAULTS.REQUEST_TIMEOUT);
58
59
  this.onmessage(request);
59
60
  });
60
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.transport.js","sourceRoot":"","sources":["../../src/tunnel/in-memory.transport.ts"],"names":[],"mappings":";;;AAEA,2CAAwC;AAQxC,MAAa,iBAAiB;IACX,MAAM,GAAG,IAAI,eAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrD,eAAe,GAAG,IAAI,GAAG,EAA6B,CAAC;IACvD,MAAM,GAAG,KAAK,CAAC;IAEvB,OAAO,CAAc;IACrB,OAAO,CAA0B;IACjC,SAAS,CAAqC;IAE9C,KAAK,CAAC,KAAK;IAEX,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAGnB,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAE7B,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IACnB,CAAC;IAMD,KAAK,CAAC,IAAI,CAAC,OAAuB;QAChC,IAAI,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACrD,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC9B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,6CAA6C,OAAO,CAAC,EAAE,EAAE,CAC1D,CAAC;YACJ,CAAC;QACH,CAAC;IAEH,CAAC;IAMD,KAAK,CAAC,aAAa,CAAC,OAAuB;QACzC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QAGD,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAGrC,MAAM,OAAO,GAAmB;gBAC9B,OAAO;gBACP,MAAM;gBACN,OAAO,EAAE,IAAW;aACrB,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAe,EAAE,OAAO,CAAC,CAAC;YAG3D,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAe,CAAC,CAAC;gBACrD,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC3C,CAAC,EAAE,KAAK,CAAC,CAAC;YAIV,IAAI,CAAC,SAAU,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAvFD,8CAuFC"}
1
+ {"version":3,"file":"in-memory.transport.js","sourceRoot":"","sources":["../../src/tunnel/in-memory.transport.ts"],"names":[],"mappings":";;;AAEA,2CAAwC;AACxC,uDAAoD;AAQpD,MAAa,iBAAiB;IACX,MAAM,GAAG,IAAI,eAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrD,eAAe,GAAG,IAAI,GAAG,EAA6B,CAAC;IACvD,MAAM,GAAG,KAAK,CAAC;IAEvB,OAAO,CAAc;IACrB,OAAO,CAA0B;IACjC,SAAS,CAAqC;IAE9C,KAAK,CAAC,KAAK;IAEX,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAGnB,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAE7B,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IACnB,CAAC;IAMD,KAAK,CAAC,IAAI,CAAC,OAAuB;QAChC,IAAI,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACrD,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC9B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,6CAA6C,OAAO,CAAC,EAAE,EAAE,CAC1D,CAAC;YACJ,CAAC;QACH,CAAC;IAEH,CAAC;IAMD,KAAK,CAAC,aAAa,CAAC,OAAuB;QACzC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QAGD,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAGrC,MAAM,OAAO,GAAmB;gBAC9B,OAAO;gBACP,MAAM;gBACN,OAAO,EAAE,IAAW;aACrB,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAe,EAAE,OAAO,CAAC,CAAC;YAG3D,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAe,CAAC,CAAC;gBACrD,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC3C,CAAC,EAAE,iCAAe,CAAC,eAAe,CAAC,CAAC;YAIpC,IAAI,CAAC,SAAU,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAvFD,8CAuFC"}