mcp-insomnia 0.2.0 → 0.3.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 (129) hide show
  1. package/README.md +44 -6
  2. package/dist/index.js +10 -11
  3. package/dist/index.js.map +1 -1
  4. package/dist/resources/collection.resource.d.ts +3 -0
  5. package/dist/resources/collection.resource.d.ts.map +1 -0
  6. package/dist/resources/collection.resource.js +113 -0
  7. package/dist/resources/collection.resource.js.map +1 -0
  8. package/dist/resources/environment.resource.d.ts +3 -0
  9. package/dist/resources/environment.resource.d.ts.map +1 -0
  10. package/dist/resources/environment.resource.js +48 -0
  11. package/dist/resources/environment.resource.js.map +1 -0
  12. package/dist/resources/index.d.ts +3 -0
  13. package/dist/resources/index.d.ts.map +1 -0
  14. package/dist/resources/index.js +8 -0
  15. package/dist/resources/index.js.map +1 -0
  16. package/dist/resources/request.resource.d.ts +3 -0
  17. package/dist/resources/request.resource.d.ts.map +1 -0
  18. package/dist/resources/request.resource.js +157 -0
  19. package/dist/resources/request.resource.js.map +1 -0
  20. package/dist/resources/search.resource.d.ts +3 -0
  21. package/dist/resources/search.resource.d.ts.map +1 -0
  22. package/dist/resources/search.resource.js +143 -0
  23. package/dist/resources/search.resource.js.map +1 -0
  24. package/dist/storage/index.d.ts +3 -0
  25. package/dist/storage/index.d.ts.map +1 -0
  26. package/dist/storage/index.js +3 -0
  27. package/dist/storage/index.js.map +1 -0
  28. package/dist/storage/insomnia-storage.d.ts +111 -0
  29. package/dist/storage/insomnia-storage.d.ts.map +1 -0
  30. package/dist/storage/insomnia-storage.js +322 -0
  31. package/dist/storage/insomnia-storage.js.map +1 -0
  32. package/dist/{storage.d.ts → storage/storage.d.ts} +1 -1
  33. package/dist/storage/storage.d.ts.map +1 -0
  34. package/dist/{storage.js → storage/storage.js} +3 -3
  35. package/dist/storage/storage.js.map +1 -0
  36. package/dist/tools/collection.tools.d.ts +3 -0
  37. package/dist/tools/collection.tools.d.ts.map +1 -0
  38. package/dist/tools/collection.tools.js +132 -0
  39. package/dist/tools/collection.tools.js.map +1 -0
  40. package/dist/tools/environment.tools.d.ts +3 -0
  41. package/dist/tools/environment.tools.d.ts.map +1 -0
  42. package/dist/tools/environment.tools.js +93 -0
  43. package/dist/tools/environment.tools.js.map +1 -0
  44. package/dist/tools/folder.tools.d.ts +3 -0
  45. package/dist/tools/folder.tools.d.ts.map +1 -0
  46. package/dist/tools/folder.tools.js +46 -0
  47. package/dist/tools/folder.tools.js.map +1 -0
  48. package/dist/tools/index.d.ts +3 -0
  49. package/dist/tools/index.d.ts.map +1 -0
  50. package/dist/tools/index.js +17 -0
  51. package/dist/tools/index.js.map +1 -0
  52. package/dist/tools/insomnia.tools.d.ts +3 -0
  53. package/dist/tools/insomnia.tools.d.ts.map +1 -0
  54. package/dist/tools/insomnia.tools.js +482 -0
  55. package/dist/tools/insomnia.tools.js.map +1 -0
  56. package/dist/tools/request.tools.d.ts +3 -0
  57. package/dist/tools/request.tools.d.ts.map +1 -0
  58. package/dist/tools/request.tools.js +368 -0
  59. package/dist/tools/request.tools.js.map +1 -0
  60. package/dist/tools/utility.tools.d.ts +3 -0
  61. package/dist/tools/utility.tools.d.ts.map +1 -0
  62. package/dist/tools/utility.tools.js +433 -0
  63. package/dist/tools/utility.tools.js.map +1 -0
  64. package/dist/types/auth.d.ts +25 -0
  65. package/dist/types/auth.d.ts.map +1 -0
  66. package/dist/types/auth.js +2 -0
  67. package/dist/types/auth.js.map +1 -0
  68. package/dist/types/collection.d.ts +48 -0
  69. package/dist/types/collection.d.ts.map +1 -0
  70. package/dist/types/collection.js +2 -0
  71. package/dist/types/collection.js.map +1 -0
  72. package/dist/types/common.d.ts +63 -0
  73. package/dist/types/common.d.ts.map +1 -0
  74. package/dist/types/common.js +2 -0
  75. package/dist/types/common.js.map +1 -0
  76. package/dist/types/environment.d.ts +17 -0
  77. package/dist/types/environment.d.ts.map +1 -0
  78. package/dist/types/environment.js +2 -0
  79. package/dist/types/environment.js.map +1 -0
  80. package/dist/types/har.d.ts +29 -0
  81. package/dist/types/har.d.ts.map +1 -0
  82. package/dist/types/har.js +2 -0
  83. package/dist/types/har.js.map +1 -0
  84. package/dist/types/index.d.ts +9 -0
  85. package/dist/types/index.d.ts.map +1 -0
  86. package/dist/types/index.js +9 -0
  87. package/dist/types/index.js.map +1 -0
  88. package/dist/{types.d.ts → types/request.d.ts} +29 -105
  89. package/dist/types/request.d.ts.map +1 -0
  90. package/dist/types/request.js +2 -0
  91. package/dist/types/request.js.map +1 -0
  92. package/dist/types/resource.d.ts +20 -0
  93. package/dist/types/resource.d.ts.map +1 -0
  94. package/dist/types/resource.js +2 -0
  95. package/dist/types/resource.js.map +1 -0
  96. package/dist/types/tool.d.ts +35 -0
  97. package/dist/types/tool.d.ts.map +1 -0
  98. package/dist/types/tool.js +2 -0
  99. package/dist/types/tool.js.map +1 -0
  100. package/dist/utils/curl-parser.d.ts +10 -0
  101. package/dist/utils/curl-parser.d.ts.map +1 -0
  102. package/dist/utils/curl-parser.js +84 -0
  103. package/dist/utils/curl-parser.js.map +1 -0
  104. package/dist/utils/http.d.ts +3 -0
  105. package/dist/utils/http.d.ts.map +1 -0
  106. package/dist/utils/http.js +12 -0
  107. package/dist/utils/http.js.map +1 -0
  108. package/dist/utils/postman-converter.d.ts +88 -0
  109. package/dist/utils/postman-converter.d.ts.map +1 -0
  110. package/dist/utils/postman-converter.js +171 -0
  111. package/dist/utils/postman-converter.js.map +1 -0
  112. package/package.json +16 -6
  113. package/dist/resources.d.ts +0 -11
  114. package/dist/resources.d.ts.map +0 -1
  115. package/dist/resources.js +0 -449
  116. package/dist/resources.js.map +0 -1
  117. package/dist/run-duplication-test.d.ts +0 -2
  118. package/dist/run-duplication-test.d.ts.map +0 -1
  119. package/dist/run-duplication-test.js +0 -58
  120. package/dist/run-duplication-test.js.map +0 -1
  121. package/dist/storage.d.ts.map +0 -1
  122. package/dist/storage.js.map +0 -1
  123. package/dist/tools.d.ts +0 -10
  124. package/dist/tools.d.ts.map +0 -1
  125. package/dist/tools.js +0 -698
  126. package/dist/tools.js.map +0 -1
  127. package/dist/types.d.ts.map +0 -1
  128. package/dist/types.js +0 -2
  129. package/dist/types.js.map +0 -1
@@ -0,0 +1,143 @@
1
+ import { storage } from '../storage/index.js';
2
+ export const searchResources = [
3
+ {
4
+ uri: 'insomnia://search',
5
+ name: 'Search',
6
+ description: 'Search for a keyword across all collections, folders, and requests. Use with ?q=keyword',
7
+ mimeType: 'application/json',
8
+ handler: async (request) => {
9
+ const uri = request.params.uri;
10
+ const url = new URL(uri);
11
+ const keyword = url.searchParams.get('q');
12
+ if (!keyword) {
13
+ throw new Error('Search keyword must be provided with ?q=');
14
+ }
15
+ const searchResults = [];
16
+ const collections = storage.getAllCollections();
17
+ const lowerCaseKeyword = keyword.toLowerCase();
18
+ for (const [collectionId, structure] of collections.entries()) {
19
+ if (structure.workspace.name.toLowerCase().includes(lowerCaseKeyword) ||
20
+ (structure.workspace.description || '').toLowerCase().includes(lowerCaseKeyword)) {
21
+ searchResults.push({
22
+ type: 'Collection',
23
+ id: collectionId,
24
+ name: structure.workspace.name,
25
+ match: 'Name or description',
26
+ });
27
+ }
28
+ for (const folder of structure.folders) {
29
+ if (folder.name.toLowerCase().includes(lowerCaseKeyword) ||
30
+ (folder.description || '').toLowerCase().includes(lowerCaseKeyword)) {
31
+ searchResults.push({
32
+ type: 'Folder',
33
+ id: folder._id,
34
+ name: folder.name,
35
+ collection: { id: collectionId, name: structure.workspace.name },
36
+ match: 'Name or description',
37
+ });
38
+ }
39
+ }
40
+ for (const req of structure.requests) {
41
+ let matchReason = '';
42
+ if (req.name.toLowerCase().includes(lowerCaseKeyword))
43
+ matchReason = 'Name';
44
+ else if ((req.description || '').toLowerCase().includes(lowerCaseKeyword))
45
+ matchReason = 'Description';
46
+ else if (req.url.toLowerCase().includes(lowerCaseKeyword))
47
+ matchReason = 'URL';
48
+ else if (req.method.toLowerCase().includes(lowerCaseKeyword))
49
+ matchReason = 'Method';
50
+ if (matchReason) {
51
+ searchResults.push({
52
+ type: 'Request',
53
+ id: req._id,
54
+ name: req.name,
55
+ collection: { id: collectionId, name: structure.workspace.name },
56
+ match: matchReason,
57
+ });
58
+ }
59
+ }
60
+ }
61
+ return {
62
+ contents: [
63
+ {
64
+ type: 'text',
65
+ text: JSON.stringify(searchResults, null, 2),
66
+ },
67
+ ],
68
+ };
69
+ },
70
+ },
71
+ {
72
+ uri: 'insomnia://stats',
73
+ name: 'Statistics',
74
+ description: 'Global statistics of all collections',
75
+ mimeType: 'application/json',
76
+ handler: async () => {
77
+ const collections = storage.getAllCollections();
78
+ const totalCollections = collections.size;
79
+ let totalRequests = 0;
80
+ let totalFolders = 0;
81
+ let totalEnvironments = 0;
82
+ let totalEnvironmentVariables = 0;
83
+ const methodStats = {};
84
+ const authStats = {};
85
+ const recentActivity = [];
86
+ for (const [collectionId, structure] of collections.entries()) {
87
+ totalRequests += structure.requests.length;
88
+ totalFolders += structure.folders.length;
89
+ totalEnvironments += structure.environments.length;
90
+ structure.environments.forEach((env) => {
91
+ totalEnvironmentVariables += Object.keys(env.data).length;
92
+ });
93
+ structure.requests.forEach((request) => {
94
+ methodStats[request.method] = (methodStats[request.method] || 0) + 1;
95
+ const authType = request.authentication?.type ?? 'none';
96
+ authStats[authType] = (authStats[authType] || 0) + 1;
97
+ recentActivity.push({
98
+ type: 'request',
99
+ id: request._id,
100
+ name: request.name,
101
+ collectionName: structure.workspace.name,
102
+ method: request.method,
103
+ modified: request.modified,
104
+ });
105
+ });
106
+ recentActivity.push({
107
+ type: 'collection',
108
+ id: collectionId,
109
+ name: structure.workspace.name,
110
+ requestCount: structure.requests.length,
111
+ modified: structure.workspace.modified,
112
+ });
113
+ }
114
+ recentActivity.sort((a, b) => b.modified - a.modified);
115
+ const result = {
116
+ summary: {
117
+ totalCollections,
118
+ totalRequests,
119
+ totalFolders,
120
+ totalEnvironments,
121
+ totalEnvironmentVariables,
122
+ },
123
+ methodBreakdown: methodStats,
124
+ authenticationBreakdown: authStats,
125
+ recentActivity: recentActivity.slice(0, 20),
126
+ averages: {
127
+ requestsPerCollection: totalCollections > 0 ? Math.round((totalRequests / totalCollections) * 100) / 100 : 0,
128
+ foldersPerCollection: totalCollections > 0 ? Math.round((totalFolders / totalCollections) * 100) / 100 : 0,
129
+ environmentsPerCollection: totalCollections > 0 ? Math.round((totalEnvironments / totalCollections) * 100) / 100 : 0,
130
+ },
131
+ };
132
+ return {
133
+ contents: [
134
+ {
135
+ type: 'text',
136
+ text: JSON.stringify(result, null, 2),
137
+ },
138
+ ],
139
+ };
140
+ },
141
+ },
142
+ ];
143
+ //# sourceMappingURL=search.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.resource.js","sourceRoot":"","sources":["../../src/resources/search.resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './storage.js';
2
+ export * from './insomnia-storage.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './storage.js';
2
+ export * from './insomnia-storage.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,111 @@
1
+ import type { CollectionStructure, InsomniaWorkspace, InsomniaRequestGroup } from '../types/collection.js';
2
+ import type { InsomniaRequest } from '../types/request.js';
3
+ import type { InsomniaEnvironment } from '../types/environment.js';
4
+ export declare class InsomniaStorage {
5
+ private readonly insomniaDir;
6
+ constructor(customPath?: string);
7
+ private detectInsomniaPath;
8
+ isInsomniaInstalled(): boolean;
9
+ getInsomniaPath(): string;
10
+ private readNeDB;
11
+ private writeNeDB;
12
+ private appendNeDB;
13
+ getAllWorkspaces(): InsomniaWorkspaceRaw[];
14
+ getAllRequests(): InsomniaRequestRaw[];
15
+ getAllRequestGroups(): InsomniaRequestGroupRaw[];
16
+ getAllEnvironments(): InsomniaEnvironmentRaw[];
17
+ getAllProjects(): InsomniaProjectRaw[];
18
+ getCollection(workspaceId: string): CollectionStructure | null;
19
+ getAllCollections(): Map<string, CollectionStructure>;
20
+ saveRequest(request: InsomniaRequest): void;
21
+ saveWorkspace(workspace: InsomniaWorkspace, projectId?: string): void;
22
+ saveRequestGroup(folder: InsomniaRequestGroup): void;
23
+ saveEnvironment(env: InsomniaEnvironment): void;
24
+ deleteRequest(requestId: string): boolean;
25
+ private convertWorkspace;
26
+ private convertRequest;
27
+ private convertRequestGroup;
28
+ private convertEnvironment;
29
+ private convertToRawRequest;
30
+ }
31
+ interface InsomniaWorkspaceRaw {
32
+ _id: string;
33
+ type: 'Workspace';
34
+ parentId: string;
35
+ modified: number;
36
+ created: number;
37
+ name: string;
38
+ description: string;
39
+ scope: string;
40
+ }
41
+ interface InsomniaRequestRaw {
42
+ _id: string;
43
+ type: 'Request';
44
+ parentId: string;
45
+ modified: number;
46
+ created: number;
47
+ url: string;
48
+ name: string;
49
+ description: string;
50
+ method: string;
51
+ body: {
52
+ mimeType?: string;
53
+ text?: string;
54
+ };
55
+ parameters: Array<{
56
+ name: string;
57
+ value: string;
58
+ disabled?: boolean;
59
+ }>;
60
+ headers: Array<{
61
+ name: string;
62
+ value: string;
63
+ id?: string;
64
+ disabled?: boolean;
65
+ description?: string;
66
+ }>;
67
+ authentication: Record<string, unknown>;
68
+ metaSortKey: number;
69
+ isPrivate: boolean;
70
+ settingStoreCookies: boolean;
71
+ settingSendCookies: boolean;
72
+ settingDisableRenderRequestBody: boolean;
73
+ settingEncodeUrl: boolean;
74
+ settingRebuildPath: boolean;
75
+ settingFollowRedirects: string;
76
+ }
77
+ interface InsomniaRequestGroupRaw {
78
+ _id: string;
79
+ type: 'RequestGroup';
80
+ parentId: string;
81
+ modified: number;
82
+ created: number;
83
+ name: string;
84
+ description: string;
85
+ environment: Record<string, string | number | boolean>;
86
+ metaSortKey: number;
87
+ }
88
+ interface InsomniaEnvironmentRaw {
89
+ _id: string;
90
+ type: 'Environment';
91
+ parentId: string;
92
+ modified: number;
93
+ created: number;
94
+ name: string;
95
+ data: Record<string, string | number | boolean>;
96
+ isPrivate: boolean;
97
+ metaSortKey: number;
98
+ }
99
+ interface InsomniaProjectRaw {
100
+ _id: string;
101
+ type: 'Project';
102
+ parentId: string;
103
+ modified: number;
104
+ created: number;
105
+ name: string;
106
+ remoteId: string | null;
107
+ gitRepositoryId: string | null;
108
+ }
109
+ export declare const insomniaStorage: InsomniaStorage;
110
+ export {};
111
+ //# sourceMappingURL=insomnia-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insomnia-storage.d.ts","sourceRoot":"","sources":["../../src/storage/insomnia-storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,322 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import * as os from 'os';
4
+ export class InsomniaStorage {
5
+ insomniaDir;
6
+ constructor(customPath) {
7
+ this.insomniaDir = customPath || this.detectInsomniaPath();
8
+ }
9
+ detectInsomniaPath() {
10
+ const platform = process.platform;
11
+ let basePath;
12
+ if (platform === 'darwin') {
13
+ basePath = path.join(os.homedir(), 'Library', 'Application Support', 'Insomnia');
14
+ }
15
+ else if (platform === 'linux') {
16
+ basePath = path.join(os.homedir(), '.config', 'Insomnia');
17
+ }
18
+ else if (platform === 'win32') {
19
+ basePath = path.join(process.env.APPDATA || '', 'Insomnia');
20
+ }
21
+ else {
22
+ throw new Error(`Unsupported platform: ${platform}`);
23
+ }
24
+ return basePath;
25
+ }
26
+ isInsomniaInstalled() {
27
+ return fs.existsSync(this.insomniaDir);
28
+ }
29
+ getInsomniaPath() {
30
+ return this.insomniaDir;
31
+ }
32
+ readNeDB(filename) {
33
+ const filePath = path.join(this.insomniaDir, filename);
34
+ if (!fs.existsSync(filePath)) {
35
+ return [];
36
+ }
37
+ const content = fs.readFileSync(filePath, 'utf-8');
38
+ const lines = content.split('\n').filter((line) => line.trim());
39
+ return lines
40
+ .map((line) => {
41
+ try {
42
+ return JSON.parse(line);
43
+ }
44
+ catch {
45
+ return null;
46
+ }
47
+ })
48
+ .filter((item) => item !== null);
49
+ }
50
+ writeNeDB(filename, records) {
51
+ const filePath = path.join(this.insomniaDir, filename);
52
+ const content = records.map((r) => JSON.stringify(r)).join('\n') + '\n';
53
+ fs.writeFileSync(filePath, content, 'utf-8');
54
+ }
55
+ appendNeDB(filename, record) {
56
+ const filePath = path.join(this.insomniaDir, filename);
57
+ const line = JSON.stringify(record) + '\n';
58
+ fs.appendFileSync(filePath, line, 'utf-8');
59
+ }
60
+ getAllWorkspaces() {
61
+ return this.readNeDB('insomnia.Workspace.db');
62
+ }
63
+ getAllRequests() {
64
+ return this.readNeDB('insomnia.Request.db');
65
+ }
66
+ getAllRequestGroups() {
67
+ return this.readNeDB('insomnia.RequestGroup.db');
68
+ }
69
+ getAllEnvironments() {
70
+ return this.readNeDB('insomnia.Environment.db');
71
+ }
72
+ getAllProjects() {
73
+ return this.readNeDB('insomnia.Project.db');
74
+ }
75
+ getCollection(workspaceId) {
76
+ const workspaces = this.getAllWorkspaces();
77
+ const workspace = workspaces.find((w) => w._id === workspaceId);
78
+ if (!workspace) {
79
+ return null;
80
+ }
81
+ const allRequests = this.getAllRequests();
82
+ const allFolders = this.getAllRequestGroups();
83
+ const allEnvironments = this.getAllEnvironments();
84
+ const workspaceFolderIds = new Set();
85
+ const processedIds = new Set([workspaceId]);
86
+ for (const folder of allFolders) {
87
+ if (folder.parentId === workspaceId) {
88
+ workspaceFolderIds.add(folder._id);
89
+ processedIds.add(folder._id);
90
+ }
91
+ }
92
+ let foundNew = true;
93
+ while (foundNew) {
94
+ foundNew = false;
95
+ for (const folder of allFolders) {
96
+ if (processedIds.has(folder.parentId) && !workspaceFolderIds.has(folder._id)) {
97
+ workspaceFolderIds.add(folder._id);
98
+ processedIds.add(folder._id);
99
+ foundNew = true;
100
+ }
101
+ }
102
+ }
103
+ const requests = allRequests
104
+ .filter((r) => r.parentId === workspaceId || workspaceFolderIds.has(r.parentId))
105
+ .map((r) => this.convertRequest(r));
106
+ const folders = allFolders.filter((f) => workspaceFolderIds.has(f._id)).map((f) => this.convertRequestGroup(f));
107
+ const environments = allEnvironments
108
+ .filter((e) => e.parentId === workspaceId)
109
+ .map((e) => this.convertEnvironment(e));
110
+ return {
111
+ workspace: this.convertWorkspace(workspace),
112
+ folders,
113
+ requests,
114
+ environments,
115
+ };
116
+ }
117
+ getAllCollections() {
118
+ const collections = new Map();
119
+ const workspaces = this.getAllWorkspaces();
120
+ for (const workspace of workspaces) {
121
+ const collection = this.getCollection(workspace._id);
122
+ if (collection) {
123
+ collections.set(workspace._id, collection);
124
+ }
125
+ }
126
+ return collections;
127
+ }
128
+ saveRequest(request) {
129
+ const raw = this.convertToRawRequest(request);
130
+ const existing = this.getAllRequests();
131
+ const index = existing.findIndex((r) => r._id === request._id);
132
+ if (index >= 0) {
133
+ existing[index] = raw;
134
+ this.writeNeDB('insomnia.Request.db', existing);
135
+ }
136
+ else {
137
+ this.appendNeDB('insomnia.Request.db', raw);
138
+ }
139
+ }
140
+ saveWorkspace(workspace, projectId) {
141
+ const raw = {
142
+ _id: workspace._id,
143
+ type: 'Workspace',
144
+ parentId: projectId || 'proj_default',
145
+ modified: workspace.modified,
146
+ created: workspace.created,
147
+ name: workspace.name,
148
+ description: workspace.description || '',
149
+ scope: workspace.scope,
150
+ };
151
+ const existing = this.getAllWorkspaces();
152
+ const index = existing.findIndex((w) => w._id === workspace._id);
153
+ if (index >= 0) {
154
+ existing[index] = raw;
155
+ this.writeNeDB('insomnia.Workspace.db', existing);
156
+ }
157
+ else {
158
+ this.appendNeDB('insomnia.Workspace.db', raw);
159
+ }
160
+ }
161
+ saveRequestGroup(folder) {
162
+ const raw = {
163
+ _id: folder._id,
164
+ type: 'RequestGroup',
165
+ parentId: folder.parentId || '',
166
+ modified: folder.modified,
167
+ created: folder.created,
168
+ name: folder.name,
169
+ description: folder.description || '',
170
+ environment: folder.environment || {},
171
+ metaSortKey: -Date.now(),
172
+ };
173
+ const existing = this.getAllRequestGroups();
174
+ const index = existing.findIndex((f) => f._id === folder._id);
175
+ if (index >= 0) {
176
+ existing[index] = raw;
177
+ this.writeNeDB('insomnia.RequestGroup.db', existing);
178
+ }
179
+ else {
180
+ this.appendNeDB('insomnia.RequestGroup.db', raw);
181
+ }
182
+ }
183
+ saveEnvironment(env) {
184
+ const raw = {
185
+ _id: env._id,
186
+ type: 'Environment',
187
+ parentId: env.parentId || '',
188
+ modified: env.modified,
189
+ created: env.created,
190
+ name: env.name,
191
+ data: env.data,
192
+ isPrivate: env.isPrivate || false,
193
+ metaSortKey: -Date.now(),
194
+ };
195
+ const existing = this.getAllEnvironments();
196
+ const index = existing.findIndex((e) => e._id === env._id);
197
+ if (index >= 0) {
198
+ existing[index] = raw;
199
+ this.writeNeDB('insomnia.Environment.db', existing);
200
+ }
201
+ else {
202
+ this.appendNeDB('insomnia.Environment.db', raw);
203
+ }
204
+ }
205
+ deleteRequest(requestId) {
206
+ const existing = this.getAllRequests();
207
+ const filtered = existing.filter((r) => r._id !== requestId);
208
+ if (filtered.length < existing.length) {
209
+ this.writeNeDB('insomnia.Request.db', filtered);
210
+ return true;
211
+ }
212
+ return false;
213
+ }
214
+ convertWorkspace(raw) {
215
+ return {
216
+ _id: raw._id,
217
+ _type: 'workspace',
218
+ name: raw.name,
219
+ description: raw.description,
220
+ scope: raw.scope,
221
+ modified: raw.modified,
222
+ created: raw.created,
223
+ };
224
+ }
225
+ convertRequest(raw) {
226
+ return {
227
+ _id: raw._id,
228
+ _type: 'request',
229
+ parentId: raw.parentId,
230
+ name: raw.name,
231
+ description: raw.description,
232
+ url: raw.url,
233
+ method: raw.method,
234
+ headers: raw.headers.map((h) => ({
235
+ name: h.name,
236
+ value: h.value,
237
+ description: h.description,
238
+ disabled: h.disabled,
239
+ })),
240
+ parameters: raw.parameters.map((p) => ({
241
+ name: p.name,
242
+ value: p.value,
243
+ disabled: p.disabled,
244
+ })),
245
+ body: {
246
+ mimeType: raw.body.mimeType,
247
+ text: raw.body.text,
248
+ },
249
+ authentication: Object.keys(raw.authentication).length > 0
250
+ ? raw.authentication
251
+ : undefined,
252
+ modified: raw.modified,
253
+ created: raw.created,
254
+ };
255
+ }
256
+ convertRequestGroup(raw) {
257
+ return {
258
+ _id: raw._id,
259
+ _type: 'request_group',
260
+ parentId: raw.parentId,
261
+ name: raw.name,
262
+ description: raw.description,
263
+ environment: raw.environment,
264
+ modified: raw.modified,
265
+ created: raw.created,
266
+ };
267
+ }
268
+ convertEnvironment(raw) {
269
+ return {
270
+ _id: raw._id,
271
+ _type: 'environment',
272
+ parentId: raw.parentId,
273
+ name: raw.name,
274
+ data: raw.data,
275
+ isPrivate: raw.isPrivate,
276
+ modified: raw.modified,
277
+ created: raw.created,
278
+ };
279
+ }
280
+ convertToRawRequest(request) {
281
+ return {
282
+ _id: request._id,
283
+ type: 'Request',
284
+ parentId: request.parentId || '',
285
+ modified: request.modified,
286
+ created: request.created,
287
+ url: request.url,
288
+ name: request.name,
289
+ description: request.description || '',
290
+ method: request.method,
291
+ body: request.body
292
+ ? {
293
+ mimeType: request.body.mimeType || 'application/json',
294
+ text: request.body.text || '',
295
+ }
296
+ : {},
297
+ parameters: request.parameters.map((p) => ({
298
+ name: p.name,
299
+ value: p.value,
300
+ disabled: p.disabled || false,
301
+ })),
302
+ headers: request.headers.map((h) => ({
303
+ name: h.name,
304
+ value: h.value,
305
+ id: `pair_${String(Date.now())}`,
306
+ disabled: h.disabled || false,
307
+ description: h.description,
308
+ })),
309
+ authentication: (request.authentication || {}),
310
+ metaSortKey: -Date.now(),
311
+ isPrivate: false,
312
+ settingStoreCookies: true,
313
+ settingSendCookies: true,
314
+ settingDisableRenderRequestBody: false,
315
+ settingEncodeUrl: true,
316
+ settingRebuildPath: true,
317
+ settingFollowRedirects: 'global',
318
+ };
319
+ }
320
+ }
321
+ export const insomniaStorage = new InsomniaStorage();
322
+ //# sourceMappingURL=insomnia-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insomnia-storage.js","sourceRoot":"","sources":["../../src/storage/insomnia-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAKzB,MAAM,OAAO,eAAe;IACP,WAAW,CAAS;IAErC,YAAY,UAAmB;QAC3B,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC/D,CAAC;IAEO,kBAAkB;QACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,QAAgB,CAAC;QAErB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxB,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,UAAU,CAAC,CAAC;QACrF,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,mBAAmB;QACf,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEO,QAAQ,CAAI,QAAgB;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEhE,OAAO,KAAK;aACP,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACV,IAAI,CAAC;gBACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,IAAI,EAAa,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACpD,CAAC;IAEO,SAAS,CAAC,QAAgB,EAAE,OAAkB;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACxE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAEO,UAAU,CAAC,QAAgB,EAAE,MAAe;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC3C,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAuB,uBAAuB,CAAC,CAAC;IACxE,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,QAAQ,CAAqB,qBAAqB,CAAC,CAAC;IACpE,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,QAAQ,CAA0B,0BAA0B,CAAC,CAAC;IAC9E,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,QAAQ,CAAyB,yBAAyB,CAAC,CAAC;IAC5E,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,QAAQ,CAAqB,qBAAqB,CAAC,CAAC;IACpE,CAAC;IAED,aAAa,CAAC,WAAmB;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;QAEhE,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAElD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QAEpD,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBAClC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACnC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,OAAO,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,KAAK,CAAC;YACjB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;gBAC9B,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3E,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACnC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC7B,QAAQ,GAAG,IAAI,CAAC;gBACpB,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW;aACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aAC/E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAExC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhH,MAAM,YAAY,GAAG,eAAe;aAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC;aACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5C,OAAO;YACH,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;YAC3C,OAAO;YACP,QAAQ;YACR,YAAY;SACf,CAAC;IACN,CAAC;IAED,iBAAiB;QACb,MAAM,WAAW,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE3C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACrD,IAAI,UAAU,EAAE,CAAC;gBACb,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,OAAwB;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;QAE/D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAED,aAAa,CAAC,SAA4B,EAAE,SAAkB;QAC1D,MAAM,GAAG,GAAyB;YAC9B,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,SAAS,IAAI,cAAc;YACrC,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,EAAE;YACxC,KAAK,EAAE,SAAS,CAAC,KAAK;SACzB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC;QAEjE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,MAA4B;QACzC,MAAM,GAAG,GAA4B;YACjC,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YACrC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YACrC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;SAC3B,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC;QAE9D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAwB;QACpC,MAAM,GAAG,GAA2B;YAChC,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE;YAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,KAAK;YACjC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;SAC3B,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAE3D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED,aAAa,CAAC,SAAiB;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;QAE7D,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAC,GAAyB;QAC9C,OAAO;YACH,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,KAAK,EAAE,GAAG,CAAC,KAAgC;YAC3C,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO;SACvB,CAAC;IACN,CAAC;IAEO,cAAc,CAAC,GAAuB;QAC1C,OAAO;YACH,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,MAAM,EAAE,GAAG,CAAC,MAAmC;YAC/C,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACvB,CAAC,CAAC;YACH,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACvB,CAAC,CAAC;YACH,IAAI,EAAE;gBACF,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;gBAC3B,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;aACtB;YACD,cAAc,EACV,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC;gBACtC,CAAC,CAAE,GAAG,CAAC,cAA+D;gBACtE,CAAC,CAAC,SAAS;YACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO;SACvB,CAAC;IACN,CAAC;IAEO,mBAAmB,CAAC,GAA4B;QACpD,OAAO;YACH,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO;SACvB,CAAC;IACN,CAAC;IAEO,kBAAkB,CAAC,GAA2B;QAClD,OAAO;YACH,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO;SACvB,CAAC;IACN,CAAC;IAEO,mBAAmB,CAAC,OAAwB;QAChD,OAAO;YACH,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;gBACd,CAAC,CAAC;oBACI,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,kBAAkB;oBACrD,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;iBAChC;gBACH,CAAC,CAAC,EAAE;YACR,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,KAAK;aAChC,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,EAAE,EAAE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE;gBAChC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,KAAK;gBAC7B,WAAW,EAAE,CAAC,CAAC,WAAW;aAC7B,CAAC,CAAC;YACH,cAAc,EAAE,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAA4B;YACzE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACxB,SAAS,EAAE,KAAK;YAChB,mBAAmB,EAAE,IAAI;YACzB,kBAAkB,EAAE,IAAI;YACxB,+BAA+B,EAAE,KAAK;YACtC,gBAAgB,EAAE,IAAI;YACtB,kBAAkB,EAAE,IAAI;YACxB,sBAAsB,EAAE,QAAQ;SACnC,CAAC;IACN,CAAC;CACJ;AAqFD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { CollectionStructure, InsomniaExecution } from './types.js';
1
+ import { CollectionStructure, InsomniaExecution } from '../types/index.js';
2
2
  export declare class PersistentStorage {
3
3
  private readonly storageDir;
4
4
  private readonly collectionsFile;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/storage/storage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAwC,MAAM,mBAAmB,CAAC;AAgBjH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,SAAS,CAAC,EAAE,MAAM;IAM9B,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,sBAAsB;IAcvB,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAIrD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAK1D,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,GAAG,IAAI;IAMhE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IASrC,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,mBAAmB,GAAG,OAAO;IAcxG,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,OAAO;IA4B5F,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAKrC,iBAAiB,IAAI,MAAM,EAAE;IAK7B,cAAc,IAAI;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;KAC7B;IAwBM,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAapC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAyBxC,mBAAmB,IAAI,IAAI;IAK3B,kBAAkB,IAAI;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,yBAAyB,EAAE,MAAM,CAAC;KACrC;IA2BM,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAc9C,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;CAGvD;AAED,eAAO,MAAM,OAAO,mBAA0B,CAAC"}
@@ -83,7 +83,7 @@ export class PersistentStorage {
83
83
  if (!collection) {
84
84
  return false;
85
85
  }
86
- const request = collection.requests.find(r => r._id === requestId);
86
+ const request = collection.requests.find((r) => r._id === requestId);
87
87
  if (!request) {
88
88
  return false;
89
89
  }
@@ -174,8 +174,8 @@ export class PersistentStorage {
174
174
  totalRequests += structure.requests.length;
175
175
  totalFolders += structure.folders.length;
176
176
  totalEnvironments += structure.environments.length;
177
- structure.environments.forEach(env => {
178
- totalEnvironmentVariables += Object.keys(env.data || {}).length;
177
+ structure.environments.forEach((env) => {
178
+ totalEnvironmentVariables += Object.keys(env.data).length;
179
179
  });
180
180
  }
181
181
  return {