@alisaitteke/photoshop-mcp 0.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.
Files changed (115) hide show
  1. package/.prettierrc +9 -0
  2. package/README.md +1300 -0
  3. package/dist/api/batch-play.d.ts +62 -0
  4. package/dist/api/batch-play.d.ts.map +1 -0
  5. package/dist/api/batch-play.js +131 -0
  6. package/dist/api/batch-play.js.map +1 -0
  7. package/dist/api/extendscript.d.ts +258 -0
  8. package/dist/api/extendscript.d.ts.map +1 -0
  9. package/dist/api/extendscript.js +1437 -0
  10. package/dist/api/extendscript.js.map +1 -0
  11. package/dist/api/photoshop-api.d.ts +20 -0
  12. package/dist/api/photoshop-api.d.ts.map +1 -0
  13. package/dist/api/photoshop-api.js +88 -0
  14. package/dist/api/photoshop-api.js.map +1 -0
  15. package/dist/core/server.d.ts +14 -0
  16. package/dist/core/server.d.ts.map +1 -0
  17. package/dist/core/server.js +191 -0
  18. package/dist/core/server.js.map +1 -0
  19. package/dist/core/session.d.ts +24 -0
  20. package/dist/core/session.d.ts.map +1 -0
  21. package/dist/core/session.js +83 -0
  22. package/dist/core/session.js.map +1 -0
  23. package/dist/core/tool-registry.d.ts +23 -0
  24. package/dist/core/tool-registry.d.ts.map +1 -0
  25. package/dist/core/tool-registry.js +55 -0
  26. package/dist/core/tool-registry.js.map +1 -0
  27. package/dist/index.d.ts +3 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +18 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/platform/connection.d.ts +20 -0
  32. package/dist/platform/connection.d.ts.map +1 -0
  33. package/dist/platform/connection.js +94 -0
  34. package/dist/platform/connection.js.map +1 -0
  35. package/dist/platform/detector.d.ts +19 -0
  36. package/dist/platform/detector.d.ts.map +1 -0
  37. package/dist/platform/detector.js +63 -0
  38. package/dist/platform/detector.js.map +1 -0
  39. package/dist/platform/macos-detector.d.ts +13 -0
  40. package/dist/platform/macos-detector.d.ts.map +1 -0
  41. package/dist/platform/macos-detector.js +145 -0
  42. package/dist/platform/macos-detector.js.map +1 -0
  43. package/dist/platform/macos-executor.d.ts +22 -0
  44. package/dist/platform/macos-executor.d.ts.map +1 -0
  45. package/dist/platform/macos-executor.js +161 -0
  46. package/dist/platform/macos-executor.js.map +1 -0
  47. package/dist/platform/script-executor.d.ts +23 -0
  48. package/dist/platform/script-executor.d.ts.map +1 -0
  49. package/dist/platform/script-executor.js +2 -0
  50. package/dist/platform/script-executor.js.map +1 -0
  51. package/dist/platform/windows-detector.d.ts +14 -0
  52. package/dist/platform/windows-detector.d.ts.map +1 -0
  53. package/dist/platform/windows-detector.js +173 -0
  54. package/dist/platform/windows-detector.js.map +1 -0
  55. package/dist/platform/windows-executor.d.ts +15 -0
  56. package/dist/platform/windows-executor.d.ts.map +1 -0
  57. package/dist/platform/windows-executor.js +148 -0
  58. package/dist/platform/windows-executor.js.map +1 -0
  59. package/dist/tools/action-tools.d.ts +4 -0
  60. package/dist/tools/action-tools.d.ts.map +1 -0
  61. package/dist/tools/action-tools.js +102 -0
  62. package/dist/tools/action-tools.js.map +1 -0
  63. package/dist/tools/adjustment-tools.d.ts +4 -0
  64. package/dist/tools/adjustment-tools.d.ts.map +1 -0
  65. package/dist/tools/adjustment-tools.js +274 -0
  66. package/dist/tools/adjustment-tools.js.map +1 -0
  67. package/dist/tools/document-tools.d.ts +4 -0
  68. package/dist/tools/document-tools.d.ts.map +1 -0
  69. package/dist/tools/document-tools.js +230 -0
  70. package/dist/tools/document-tools.js.map +1 -0
  71. package/dist/tools/filter-tools.d.ts +4 -0
  72. package/dist/tools/filter-tools.d.ts.map +1 -0
  73. package/dist/tools/filter-tools.js +230 -0
  74. package/dist/tools/filter-tools.js.map +1 -0
  75. package/dist/tools/history-tools.d.ts +4 -0
  76. package/dist/tools/history-tools.d.ts.map +1 -0
  77. package/dist/tools/history-tools.js +137 -0
  78. package/dist/tools/history-tools.js.map +1 -0
  79. package/dist/tools/image-placement-tools.d.ts +4 -0
  80. package/dist/tools/image-placement-tools.d.ts.map +1 -0
  81. package/dist/tools/image-placement-tools.js +109 -0
  82. package/dist/tools/image-placement-tools.js.map +1 -0
  83. package/dist/tools/image-tools.d.ts +4 -0
  84. package/dist/tools/image-tools.d.ts.map +1 -0
  85. package/dist/tools/image-tools.js +123 -0
  86. package/dist/tools/image-tools.js.map +1 -0
  87. package/dist/tools/layer-ordering-tools.d.ts +4 -0
  88. package/dist/tools/layer-ordering-tools.d.ts.map +1 -0
  89. package/dist/tools/layer-ordering-tools.js +210 -0
  90. package/dist/tools/layer-ordering-tools.js.map +1 -0
  91. package/dist/tools/layer-properties-tools.d.ts +4 -0
  92. package/dist/tools/layer-properties-tools.d.ts.map +1 -0
  93. package/dist/tools/layer-properties-tools.js +421 -0
  94. package/dist/tools/layer-properties-tools.js.map +1 -0
  95. package/dist/tools/layer-tools.d.ts +4 -0
  96. package/dist/tools/layer-tools.d.ts.map +1 -0
  97. package/dist/tools/layer-tools.js +251 -0
  98. package/dist/tools/layer-tools.js.map +1 -0
  99. package/dist/tools/layer-transform-tools.d.ts +4 -0
  100. package/dist/tools/layer-transform-tools.d.ts.map +1 -0
  101. package/dist/tools/layer-transform-tools.js +199 -0
  102. package/dist/tools/layer-transform-tools.js.map +1 -0
  103. package/dist/tools/selection-tools.d.ts +4 -0
  104. package/dist/tools/selection-tools.d.ts.map +1 -0
  105. package/dist/tools/selection-tools.js +295 -0
  106. package/dist/tools/selection-tools.js.map +1 -0
  107. package/dist/tools/text-tools.d.ts +4 -0
  108. package/dist/tools/text-tools.d.ts.map +1 -0
  109. package/dist/tools/text-tools.js +210 -0
  110. package/dist/tools/text-tools.js.map +1 -0
  111. package/dist/utils/logger.d.ts +17 -0
  112. package/dist/utils/logger.d.ts.map +1 -0
  113. package/dist/utils/logger.js +43 -0
  114. package/dist/utils/logger.js.map +1 -0
  115. package/package.json +47 -0
@@ -0,0 +1,274 @@
1
+ import { PhotoshopAPIFactory } from '../api/photoshop-api.js';
2
+ import { ExtendScriptSnippets } from '../api/extendscript.js';
3
+ export function createAdjustmentTools(connection) {
4
+ return [
5
+ {
6
+ tool: {
7
+ name: 'photoshop_adjust_brightness_contrast',
8
+ description: 'Adjust brightness and contrast of the active layer',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {
12
+ brightness: {
13
+ type: 'number',
14
+ description: 'Brightness adjustment (-100 to 100)',
15
+ minimum: -100,
16
+ maximum: 100,
17
+ },
18
+ contrast: {
19
+ type: 'number',
20
+ description: 'Contrast adjustment (-100 to 100)',
21
+ minimum: -100,
22
+ maximum: 100,
23
+ },
24
+ },
25
+ required: ['brightness', 'contrast'],
26
+ },
27
+ },
28
+ handler: async (args) => adjustBrightnessContrast(connection, args),
29
+ },
30
+ {
31
+ tool: {
32
+ name: 'photoshop_adjust_hue_saturation',
33
+ description: 'Adjust hue, saturation, and lightness of the active layer',
34
+ inputSchema: {
35
+ type: 'object',
36
+ properties: {
37
+ hue: {
38
+ type: 'number',
39
+ description: 'Hue shift (-180 to 180)',
40
+ minimum: -180,
41
+ maximum: 180,
42
+ },
43
+ saturation: {
44
+ type: 'number',
45
+ description: 'Saturation adjustment (-100 to 100)',
46
+ minimum: -100,
47
+ maximum: 100,
48
+ },
49
+ lightness: {
50
+ type: 'number',
51
+ description: 'Lightness adjustment (-100 to 100)',
52
+ minimum: -100,
53
+ maximum: 100,
54
+ },
55
+ },
56
+ required: ['hue', 'saturation', 'lightness'],
57
+ },
58
+ },
59
+ handler: async (args) => adjustHueSaturation(connection, args),
60
+ },
61
+ {
62
+ tool: {
63
+ name: 'photoshop_auto_levels',
64
+ description: 'Apply auto levels adjustment to the active layer',
65
+ inputSchema: {
66
+ type: 'object',
67
+ properties: {},
68
+ },
69
+ },
70
+ handler: async () => autoLevels(connection),
71
+ },
72
+ {
73
+ tool: {
74
+ name: 'photoshop_auto_contrast',
75
+ description: 'Apply auto contrast adjustment to the active layer',
76
+ inputSchema: {
77
+ type: 'object',
78
+ properties: {},
79
+ },
80
+ },
81
+ handler: async () => autoContrast(connection),
82
+ },
83
+ {
84
+ tool: {
85
+ name: 'photoshop_desaturate',
86
+ description: 'Desaturate the active layer (convert to grayscale)',
87
+ inputSchema: {
88
+ type: 'object',
89
+ properties: {},
90
+ },
91
+ },
92
+ handler: async () => desaturate(connection),
93
+ },
94
+ {
95
+ tool: {
96
+ name: 'photoshop_invert',
97
+ description: 'Invert colors of the active layer',
98
+ inputSchema: {
99
+ type: 'object',
100
+ properties: {},
101
+ },
102
+ },
103
+ handler: async () => invert(connection),
104
+ },
105
+ ];
106
+ }
107
+ async function adjustBrightnessContrast(connection, args) {
108
+ const brightness = args.brightness;
109
+ const contrast = args.contrast;
110
+ try {
111
+ const apiFactory = new PhotoshopAPIFactory(connection);
112
+ const api = await apiFactory.createAPI();
113
+ const script = ExtendScriptSnippets.adjustBrightnessContrast(brightness, contrast);
114
+ await api.executeScript(script);
115
+ return {
116
+ content: [
117
+ {
118
+ type: 'text',
119
+ text: `Brightness/Contrast adjusted: brightness ${brightness}, contrast ${contrast}`,
120
+ },
121
+ ],
122
+ };
123
+ }
124
+ catch (error) {
125
+ return {
126
+ content: [
127
+ {
128
+ type: 'text',
129
+ text: `Error adjusting brightness/contrast: ${error instanceof Error ? error.message : String(error)}`,
130
+ },
131
+ ],
132
+ isError: true,
133
+ };
134
+ }
135
+ }
136
+ async function adjustHueSaturation(connection, args) {
137
+ const hue = args.hue;
138
+ const saturation = args.saturation;
139
+ const lightness = args.lightness;
140
+ try {
141
+ const apiFactory = new PhotoshopAPIFactory(connection);
142
+ const api = await apiFactory.createAPI();
143
+ const script = ExtendScriptSnippets.adjustHueSaturation(hue, saturation, lightness);
144
+ await api.executeScript(script);
145
+ return {
146
+ content: [
147
+ {
148
+ type: 'text',
149
+ text: `Hue/Saturation adjusted: hue ${hue}, saturation ${saturation}, lightness ${lightness}`,
150
+ },
151
+ ],
152
+ };
153
+ }
154
+ catch (error) {
155
+ return {
156
+ content: [
157
+ {
158
+ type: 'text',
159
+ text: `Error adjusting hue/saturation: ${error instanceof Error ? error.message : String(error)}`,
160
+ },
161
+ ],
162
+ isError: true,
163
+ };
164
+ }
165
+ }
166
+ async function autoLevels(connection) {
167
+ try {
168
+ const apiFactory = new PhotoshopAPIFactory(connection);
169
+ const api = await apiFactory.createAPI();
170
+ const script = ExtendScriptSnippets.autoLevels();
171
+ await api.executeScript(script);
172
+ return {
173
+ content: [
174
+ {
175
+ type: 'text',
176
+ text: 'Auto Levels applied',
177
+ },
178
+ ],
179
+ };
180
+ }
181
+ catch (error) {
182
+ return {
183
+ content: [
184
+ {
185
+ type: 'text',
186
+ text: `Error applying auto levels: ${error instanceof Error ? error.message : String(error)}`,
187
+ },
188
+ ],
189
+ isError: true,
190
+ };
191
+ }
192
+ }
193
+ async function autoContrast(connection) {
194
+ try {
195
+ const apiFactory = new PhotoshopAPIFactory(connection);
196
+ const api = await apiFactory.createAPI();
197
+ const script = ExtendScriptSnippets.autoContrast();
198
+ await api.executeScript(script);
199
+ return {
200
+ content: [
201
+ {
202
+ type: 'text',
203
+ text: 'Auto Contrast applied',
204
+ },
205
+ ],
206
+ };
207
+ }
208
+ catch (error) {
209
+ return {
210
+ content: [
211
+ {
212
+ type: 'text',
213
+ text: `Error applying auto contrast: ${error instanceof Error ? error.message : String(error)}`,
214
+ },
215
+ ],
216
+ isError: true,
217
+ };
218
+ }
219
+ }
220
+ async function desaturate(connection) {
221
+ try {
222
+ const apiFactory = new PhotoshopAPIFactory(connection);
223
+ const api = await apiFactory.createAPI();
224
+ const script = ExtendScriptSnippets.desaturate();
225
+ await api.executeScript(script);
226
+ return {
227
+ content: [
228
+ {
229
+ type: 'text',
230
+ text: 'Layer desaturated (converted to grayscale)',
231
+ },
232
+ ],
233
+ };
234
+ }
235
+ catch (error) {
236
+ return {
237
+ content: [
238
+ {
239
+ type: 'text',
240
+ text: `Error desaturating layer: ${error instanceof Error ? error.message : String(error)}`,
241
+ },
242
+ ],
243
+ isError: true,
244
+ };
245
+ }
246
+ }
247
+ async function invert(connection) {
248
+ try {
249
+ const apiFactory = new PhotoshopAPIFactory(connection);
250
+ const api = await apiFactory.createAPI();
251
+ const script = ExtendScriptSnippets.invert();
252
+ await api.executeScript(script);
253
+ return {
254
+ content: [
255
+ {
256
+ type: 'text',
257
+ text: 'Colors inverted',
258
+ },
259
+ ],
260
+ };
261
+ }
262
+ catch (error) {
263
+ return {
264
+ content: [
265
+ {
266
+ type: 'text',
267
+ text: `Error inverting colors: ${error instanceof Error ? error.message : String(error)}`,
268
+ },
269
+ ],
270
+ isError: true,
271
+ };
272
+ }
273
+ }
274
+ //# sourceMappingURL=adjustment-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adjustment-tools.js","sourceRoot":"","sources":["../../src/tools/adjustment-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ToolDefinition } from '../core/tool-registry.js';
2
+ import { PhotoshopConnection } from '../platform/connection.js';
3
+ export declare function createDocumentTools(connection: PhotoshopConnection): ToolDefinition[];
4
+ //# sourceMappingURL=document-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-tools.d.ts","sourceRoot":"","sources":["../../src/tools/document-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAc,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIhE,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,GAAG,cAAc,EAAE,CA+FrF"}
@@ -0,0 +1,230 @@
1
+ import { PhotoshopAPIFactory } from '../api/photoshop-api.js';
2
+ import { ExtendScriptSnippets } from '../api/extendscript.js';
3
+ export function createDocumentTools(connection) {
4
+ return [
5
+ {
6
+ tool: {
7
+ name: 'photoshop_create_document',
8
+ description: 'Create a new Photoshop document with specified dimensions',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {
12
+ width: {
13
+ type: 'number',
14
+ description: 'Document width in pixels',
15
+ minimum: 1,
16
+ },
17
+ height: {
18
+ type: 'number',
19
+ description: 'Document height in pixels',
20
+ minimum: 1,
21
+ },
22
+ resolution: {
23
+ type: 'number',
24
+ description: 'Document resolution in DPI (default: 72)',
25
+ default: 72,
26
+ },
27
+ colorMode: {
28
+ type: 'string',
29
+ description: 'Color mode (RGB, CMYK, Grayscale)',
30
+ enum: ['RGB', 'CMYK', 'Grayscale'],
31
+ default: 'RGB',
32
+ },
33
+ },
34
+ required: ['width', 'height'],
35
+ },
36
+ },
37
+ handler: async (args) => createDocument(connection, args),
38
+ },
39
+ {
40
+ tool: {
41
+ name: 'photoshop_get_document_info',
42
+ description: 'Get information about the active Photoshop document',
43
+ inputSchema: {
44
+ type: 'object',
45
+ properties: {},
46
+ },
47
+ },
48
+ handler: async () => getDocumentInfo(connection),
49
+ },
50
+ {
51
+ tool: {
52
+ name: 'photoshop_save_document',
53
+ description: 'Save the active document in specified format',
54
+ inputSchema: {
55
+ type: 'object',
56
+ properties: {
57
+ path: {
58
+ type: 'string',
59
+ description: 'Full path where to save the document',
60
+ },
61
+ format: {
62
+ type: 'string',
63
+ description: 'File format (PSD, JPEG, PNG)',
64
+ enum: ['PSD', 'JPEG', 'PNG'],
65
+ default: 'PSD',
66
+ },
67
+ quality: {
68
+ type: 'number',
69
+ description: 'Quality for JPEG (1-12, default: 8)',
70
+ minimum: 1,
71
+ maximum: 12,
72
+ default: 8,
73
+ },
74
+ },
75
+ required: ['path'],
76
+ },
77
+ },
78
+ handler: async (args) => saveDocument(connection, args),
79
+ },
80
+ {
81
+ tool: {
82
+ name: 'photoshop_close_document',
83
+ description: 'Close the active Photoshop document',
84
+ inputSchema: {
85
+ type: 'object',
86
+ properties: {
87
+ save: {
88
+ type: 'boolean',
89
+ description: 'Whether to save changes before closing',
90
+ default: false,
91
+ },
92
+ },
93
+ },
94
+ },
95
+ handler: async (args) => closeDocument(connection, args),
96
+ },
97
+ ];
98
+ }
99
+ async function createDocument(connection, args) {
100
+ const width = args.width;
101
+ const height = args.height;
102
+ const resolution = args.resolution || 72;
103
+ const colorMode = args.colorMode || 'RGB';
104
+ try {
105
+ const apiFactory = new PhotoshopAPIFactory(connection);
106
+ const api = await apiFactory.createAPI();
107
+ const colorModeMap = {
108
+ RGB: 'NewDocumentMode.RGB',
109
+ CMYK: 'NewDocumentMode.CMYK',
110
+ Grayscale: 'NewDocumentMode.GRAYSCALE',
111
+ };
112
+ const script = ExtendScriptSnippets.newDocument(width, height, resolution, colorModeMap[colorMode] || 'NewDocumentMode.RGB');
113
+ await api.executeScript(script);
114
+ return {
115
+ content: [
116
+ {
117
+ type: 'text',
118
+ text: `Document created: ${width}x${height}px at ${resolution}dpi (${colorMode})`,
119
+ },
120
+ ],
121
+ };
122
+ }
123
+ catch (error) {
124
+ return {
125
+ content: [
126
+ {
127
+ type: 'text',
128
+ text: `Error creating document: ${error instanceof Error ? error.message : String(error)}`,
129
+ },
130
+ ],
131
+ isError: true,
132
+ };
133
+ }
134
+ }
135
+ async function getDocumentInfo(connection) {
136
+ try {
137
+ const apiFactory = new PhotoshopAPIFactory(connection);
138
+ const api = await apiFactory.createAPI();
139
+ const script = ExtendScriptSnippets.getDocumentInfo();
140
+ const result = await api.executeScript(script);
141
+ return {
142
+ content: [
143
+ {
144
+ type: 'text',
145
+ text: `Document info:\n${JSON.stringify(result, null, 2)}`,
146
+ },
147
+ ],
148
+ };
149
+ }
150
+ catch (error) {
151
+ return {
152
+ content: [
153
+ {
154
+ type: 'text',
155
+ text: `Error getting document info: ${error instanceof Error ? error.message : String(error)}`,
156
+ },
157
+ ],
158
+ isError: true,
159
+ };
160
+ }
161
+ }
162
+ async function saveDocument(connection, args) {
163
+ const path = args.path;
164
+ const format = args.format || 'PSD';
165
+ const quality = args.quality || 8;
166
+ try {
167
+ const apiFactory = new PhotoshopAPIFactory(connection);
168
+ const api = await apiFactory.createAPI();
169
+ let script;
170
+ switch (format.toUpperCase()) {
171
+ case 'JPEG':
172
+ script = ExtendScriptSnippets.saveAsJPEG(path, quality);
173
+ break;
174
+ case 'PNG':
175
+ script = ExtendScriptSnippets.saveAsPNG(path);
176
+ break;
177
+ default:
178
+ script = ExtendScriptSnippets.saveAsPSD(path);
179
+ }
180
+ await api.executeScript(script);
181
+ return {
182
+ content: [
183
+ {
184
+ type: 'text',
185
+ text: `Document saved as ${format} to: ${path}`,
186
+ },
187
+ ],
188
+ };
189
+ }
190
+ catch (error) {
191
+ return {
192
+ content: [
193
+ {
194
+ type: 'text',
195
+ text: `Error saving document: ${error instanceof Error ? error.message : String(error)}`,
196
+ },
197
+ ],
198
+ isError: true,
199
+ };
200
+ }
201
+ }
202
+ async function closeDocument(connection, args) {
203
+ const save = args.save || false;
204
+ try {
205
+ const apiFactory = new PhotoshopAPIFactory(connection);
206
+ const api = await apiFactory.createAPI();
207
+ const script = ExtendScriptSnippets.closeDocument(save);
208
+ await api.executeScript(script);
209
+ return {
210
+ content: [
211
+ {
212
+ type: 'text',
213
+ text: save ? 'Document closed and saved' : 'Document closed without saving',
214
+ },
215
+ ],
216
+ };
217
+ }
218
+ catch (error) {
219
+ return {
220
+ content: [
221
+ {
222
+ type: 'text',
223
+ text: `Error closing document: ${error instanceof Error ? error.message : String(error)}`,
224
+ },
225
+ ],
226
+ isError: true,
227
+ };
228
+ }
229
+ }
230
+ //# sourceMappingURL=document-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-tools.js","sourceRoot":"","sources":["../../src/tools/document-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ToolDefinition } from '../core/tool-registry.js';
2
+ import { PhotoshopConnection } from '../platform/connection.js';
3
+ export declare function createFilterTools(connection: PhotoshopConnection): ToolDefinition[];
4
+ //# sourceMappingURL=filter-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-tools.d.ts","sourceRoot":"","sources":["../../src/tools/filter-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAc,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIhE,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,GAAG,cAAc,EAAE,CA6GnF"}