illustrator-mcp-server 1.0.0 → 1.1.1

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 (60) hide show
  1. package/README.ja.md +23 -19
  2. package/README.md +26 -20
  3. package/dist/executor/file-transport.d.ts.map +1 -1
  4. package/dist/executor/file-transport.js +20 -3
  5. package/dist/executor/file-transport.js.map +1 -1
  6. package/dist/executor/jsx-runner.d.ts +6 -0
  7. package/dist/executor/jsx-runner.d.ts.map +1 -1
  8. package/dist/executor/jsx-runner.js +29 -2
  9. package/dist/executor/jsx-runner.js.map +1 -1
  10. package/dist/index.js +12 -2
  11. package/dist/index.js.map +1 -1
  12. package/dist/tools/export/export-pdf.d.ts.map +1 -1
  13. package/dist/tools/export/export-pdf.js +2 -7
  14. package/dist/tools/export/export-pdf.js.map +1 -1
  15. package/dist/tools/export/export.d.ts.map +1 -1
  16. package/dist/tools/export/export.js +2 -14
  17. package/dist/tools/export/export.js.map +1 -1
  18. package/dist/tools/modify/apply-color-profile.d.ts.map +1 -1
  19. package/dist/tools/modify/apply-color-profile.js +2 -7
  20. package/dist/tools/modify/apply-color-profile.js.map +1 -1
  21. package/dist/tools/modify/convert-to-outlines.d.ts.map +1 -1
  22. package/dist/tools/modify/convert-to-outlines.js +2 -7
  23. package/dist/tools/modify/convert-to-outlines.js.map +1 -1
  24. package/dist/tools/modify/create-ellipse.d.ts.map +1 -1
  25. package/dist/tools/modify/create-ellipse.js +7 -55
  26. package/dist/tools/modify/create-ellipse.js.map +1 -1
  27. package/dist/tools/modify/create-line.d.ts.map +1 -1
  28. package/dist/tools/modify/create-line.js +6 -42
  29. package/dist/tools/modify/create-line.js.map +1 -1
  30. package/dist/tools/modify/create-path.d.ts.map +1 -1
  31. package/dist/tools/modify/create-path.js +7 -57
  32. package/dist/tools/modify/create-path.js.map +1 -1
  33. package/dist/tools/modify/create-rectangle.d.ts.map +1 -1
  34. package/dist/tools/modify/create-rectangle.js +7 -55
  35. package/dist/tools/modify/create-rectangle.js.map +1 -1
  36. package/dist/tools/modify/create-text-frame.d.ts.map +1 -1
  37. package/dist/tools/modify/create-text-frame.js +5 -35
  38. package/dist/tools/modify/create-text-frame.js.map +1 -1
  39. package/dist/tools/modify/modify-object.d.ts.map +1 -1
  40. package/dist/tools/modify/modify-object.js +10 -56
  41. package/dist/tools/modify/modify-object.js.map +1 -1
  42. package/dist/tools/modify/shared.d.ts +34 -0
  43. package/dist/tools/modify/shared.d.ts.map +1 -0
  44. package/dist/tools/modify/shared.js +76 -0
  45. package/dist/tools/modify/shared.js.map +1 -0
  46. package/dist/tools/read/get-effects.d.ts.map +1 -1
  47. package/dist/tools/read/get-effects.js +1 -3
  48. package/dist/tools/read/get-effects.js.map +1 -1
  49. package/dist/tools/read/get-images.d.ts.map +1 -1
  50. package/dist/tools/read/get-images.js +45 -5
  51. package/dist/tools/read/get-images.js.map +1 -1
  52. package/dist/tools/read/list-text-frames.js +3 -3
  53. package/dist/tools/utility/preflight-check.d.ts.map +1 -1
  54. package/dist/tools/utility/preflight-check.js +102 -33
  55. package/dist/tools/utility/preflight-check.js.map +1 -1
  56. package/dist/utils/image-header.d.ts +11 -0
  57. package/dist/utils/image-header.d.ts.map +1 -0
  58. package/dist/utils/image-header.js +174 -0
  59. package/dist/utils/image-header.js.map +1 -0
  60. package/package.json +4 -3
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { executeJsx } from '../../executor/jsx-runner.js';
3
+ import { colorSchema, strokeSchema, COLOR_HELPERS_JSX } from './shared.js';
3
4
  const jsxCode = `
4
5
  var preflight = preflightChecks();
5
6
  if (preflight) {
@@ -9,26 +10,7 @@ if (preflight) {
9
10
  var params = readParamsFile(PARAMS_PATH);
10
11
  var doc = app.activeDocument;
11
12
  var coordSystem = params.coordinate_system || "artboard-web";
12
-
13
- function createColor(colorObj) {
14
- if (!colorObj || colorObj.type === "none") return new NoColor();
15
- if (colorObj.type === "cmyk") {
16
- var c = new CMYKColor();
17
- c.cyan = (typeof colorObj.c === "number") ? colorObj.c : 0;
18
- c.magenta = (typeof colorObj.m === "number") ? colorObj.m : 0;
19
- c.yellow = (typeof colorObj.y === "number") ? colorObj.y : 0;
20
- c.black = (typeof colorObj.k === "number") ? colorObj.k : 0;
21
- return c;
22
- }
23
- if (colorObj.type === "rgb") {
24
- var c = new RGBColor();
25
- c.red = (typeof colorObj.r === "number") ? colorObj.r : 0;
26
- c.green = (typeof colorObj.g === "number") ? colorObj.g : 0;
27
- c.blue = (typeof colorObj.b === "number") ? colorObj.b : 0;
28
- return c;
29
- }
30
- return new NoColor();
31
- }
13
+ ${COLOR_HELPERS_JSX}
32
14
 
33
15
  var inputX = params.x;
34
16
  var inputY = params.y;
@@ -58,20 +40,8 @@ if (preflight) {
58
40
 
59
41
  var ellipse = targetLayer.pathItems.ellipse(top, left, w, h);
60
42
 
61
- if (params.fill) {
62
- ellipse.filled = true;
63
- ellipse.fillColor = createColor(params.fill);
64
- }
65
-
66
- if (params.stroke) {
67
- ellipse.stroked = true;
68
- if (params.stroke.color) {
69
- ellipse.strokeColor = createColor(params.stroke.color);
70
- }
71
- if (typeof params.stroke.width === "number") {
72
- ellipse.strokeWidth = params.stroke.width;
73
- }
74
- }
43
+ applyOptionalFill(ellipse, params.fill);
44
+ applyStroke(ellipse, params.stroke, ellipse.stroked);
75
45
 
76
46
  if (params.name) {
77
47
  ellipse.name = params.name;
@@ -84,35 +54,17 @@ if (preflight) {
84
54
  }
85
55
  }
86
56
  `;
87
- const colorSchema = z
88
- .object({
89
- type: z.enum(['cmyk', 'rgb', 'none']).describe('Color type'),
90
- c: z.number().optional(),
91
- m: z.number().optional(),
92
- y: z.number().optional(),
93
- k: z.number().optional(),
94
- r: z.number().optional(),
95
- g: z.number().optional(),
96
- b: z.number().optional(),
97
- })
98
- .optional();
99
57
  export function register(server) {
100
58
  server.registerTool('create_ellipse', {
101
59
  title: 'Create Ellipse',
102
- description: 'Create an ellipse',
60
+ description: 'Create an ellipse. Note: Illustrator will be activated (brought to foreground) during execution.',
103
61
  inputSchema: {
104
62
  x: z.number().describe('Bounding box top-left X coordinate'),
105
63
  y: z.number().describe('Bounding box top-left Y coordinate'),
106
64
  width: z.number().describe('Width'),
107
65
  height: z.number().describe('Height'),
108
66
  fill: colorSchema.describe('Fill color'),
109
- stroke: z
110
- .object({
111
- color: colorSchema.describe('Stroke color'),
112
- width: z.number().describe('Stroke width'),
113
- })
114
- .optional()
115
- .describe('Stroke settings'),
67
+ stroke: strokeSchema.describe('Stroke settings'),
116
68
  layer_name: z.string().optional().describe('Target layer name'),
117
69
  name: z.string().optional().describe('Object name'),
118
70
  coordinate_system: z
@@ -128,7 +80,7 @@ export function register(server) {
128
80
  openWorldHint: false,
129
81
  },
130
82
  }, async (params) => {
131
- const result = await executeJsx(jsxCode, params);
83
+ const result = await executeJsx(jsxCode, params, { activate: true });
132
84
  return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
133
85
  });
134
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-ellipse.js","sourceRoot":"","sources":["../../../src/tools/modify/create-ellipse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-ellipse.js","sourceRoot":"","sources":["../../../src/tools/modify/create-ellipse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE3E,MAAM,OAAO,GAAG;;;;;;;;;MASV,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CtB,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,kGAAkG;QAC/G,WAAW,EAAE;YACX,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YAC5D,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YAC5D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACrC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;YACxC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAChD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnD,iBAAiB,EAAE,CAAC;iBACjB,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;iBACvB,QAAQ,CAAC,sGAAsG,CAAC;SACpH;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-line.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkHpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0ChD"}
1
+ {"version":3,"file":"create-line.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA6EpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0ChD"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { executeJsx } from '../../executor/jsx-runner.js';
3
+ import { colorSchema, COLOR_HELPERS_JSX } from './shared.js';
3
4
  const jsxCode = `
4
5
  var preflight = preflightChecks();
5
6
  if (preflight) {
@@ -9,26 +10,7 @@ if (preflight) {
9
10
  var params = readParamsFile(PARAMS_PATH);
10
11
  var doc = app.activeDocument;
11
12
  var coordSystem = params.coordinate_system || "artboard-web";
12
-
13
- function createColor(colorObj) {
14
- if (!colorObj || colorObj.type === "none") return new NoColor();
15
- if (colorObj.type === "cmyk") {
16
- var c = new CMYKColor();
17
- c.cyan = (typeof colorObj.c === "number") ? colorObj.c : 0;
18
- c.magenta = (typeof colorObj.m === "number") ? colorObj.m : 0;
19
- c.yellow = (typeof colorObj.y === "number") ? colorObj.y : 0;
20
- c.black = (typeof colorObj.k === "number") ? colorObj.k : 0;
21
- return c;
22
- }
23
- if (colorObj.type === "rgb") {
24
- var c = new RGBColor();
25
- c.red = (typeof colorObj.r === "number") ? colorObj.r : 0;
26
- c.green = (typeof colorObj.g === "number") ? colorObj.g : 0;
27
- c.blue = (typeof colorObj.b === "number") ? colorObj.b : 0;
28
- return c;
29
- }
30
- return new NoColor();
31
- }
13
+ ${COLOR_HELPERS_JSX}
32
14
 
33
15
  var ix1 = params.x1;
34
16
  var iy1 = params.y1;
@@ -65,13 +47,7 @@ if (preflight) {
65
47
  line.filled = false;
66
48
 
67
49
  if (params.stroke) {
68
- line.stroked = true;
69
- if (params.stroke.color) {
70
- line.strokeColor = createColor(params.stroke.color);
71
- }
72
- if (typeof params.stroke.width === "number") {
73
- line.strokeWidth = params.stroke.width;
74
- }
50
+ applyStroke(line, params.stroke, true);
75
51
  if (params.stroke.cap) {
76
52
  if (params.stroke.cap === "round") {
77
53
  line.strokeCap = StrokeCap.ROUNDENDCAP;
@@ -96,22 +72,10 @@ if (preflight) {
96
72
  }
97
73
  }
98
74
  `;
99
- const colorSchema = z
100
- .object({
101
- type: z.enum(['cmyk', 'rgb', 'none']).describe('Color type'),
102
- c: z.number().optional(),
103
- m: z.number().optional(),
104
- y: z.number().optional(),
105
- k: z.number().optional(),
106
- r: z.number().optional(),
107
- g: z.number().optional(),
108
- b: z.number().optional(),
109
- })
110
- .optional();
111
75
  export function register(server) {
112
76
  server.registerTool('create_line', {
113
77
  title: 'Create Line',
114
- description: 'Create a line',
78
+ description: 'Create a line. Note: Illustrator will be activated (brought to foreground) during execution.',
115
79
  inputSchema: {
116
80
  x1: z.number().describe('Start point X coordinate'),
117
81
  y1: z.number().describe('Start point Y coordinate'),
@@ -120,7 +84,7 @@ export function register(server) {
120
84
  stroke: z
121
85
  .object({
122
86
  color: colorSchema.describe('Stroke color'),
123
- width: z.number().describe('Stroke width'),
87
+ width: z.number().optional().describe('Stroke width'),
124
88
  cap: z
125
89
  .enum(['butt', 'round', 'projecting'])
126
90
  .optional()
@@ -143,7 +107,7 @@ export function register(server) {
143
107
  openWorldHint: false,
144
108
  },
145
109
  }, async (params) => {
146
- const result = await executeJsx(jsxCode, params);
110
+ const result = await executeJsx(jsxCode, params, { activate: true });
147
111
  return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
148
112
  });
149
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-line.js","sourceRoot":"","sources":["../../../src/tools/modify/create-line.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-line.js","sourceRoot":"","sources":["../../../src/tools/modify/create-line.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,OAAO,GAAG;;;;;;;;;MASV,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DtB,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,8FAA8F;QAC3G,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACnD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACnD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACjD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACjD,MAAM,EAAE,CAAC;iBACN,MAAM,CAAC;gBACN,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;gBACrD,GAAG,EAAE,CAAC;qBACH,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;qBACrC,QAAQ,EAAE;qBACV,QAAQ,CAAC,gBAAgB,CAAC;aAC9B,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,iBAAiB,CAAC;YAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnD,iBAAiB,EAAE,CAAC;iBACjB,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;iBACvB,QAAQ,CAAC,sGAAsG,CAAC;SACpH;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-path.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkKpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqChD"}
1
+ {"version":3,"file":"create-path.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqHpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+BhD"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { executeJsx } from '../../executor/jsx-runner.js';
3
+ import { colorSchema, strokeSchema, COLOR_HELPERS_JSX } from './shared.js';
3
4
  const jsxCode = `
4
5
  var preflight = preflightChecks();
5
6
  if (preflight) {
@@ -9,26 +10,7 @@ if (preflight) {
9
10
  var params = readParamsFile(PARAMS_PATH);
10
11
  var doc = app.activeDocument;
11
12
  var coordSystem = params.coordinate_system || "artboard-web";
12
-
13
- function createColor(colorObj) {
14
- if (!colorObj || colorObj.type === "none") return new NoColor();
15
- if (colorObj.type === "cmyk") {
16
- var c = new CMYKColor();
17
- c.cyan = (typeof colorObj.c === "number") ? colorObj.c : 0;
18
- c.magenta = (typeof colorObj.m === "number") ? colorObj.m : 0;
19
- c.yellow = (typeof colorObj.y === "number") ? colorObj.y : 0;
20
- c.black = (typeof colorObj.k === "number") ? colorObj.k : 0;
21
- return c;
22
- }
23
- if (colorObj.type === "rgb") {
24
- var c = new RGBColor();
25
- c.red = (typeof colorObj.r === "number") ? colorObj.r : 0;
26
- c.green = (typeof colorObj.g === "number") ? colorObj.g : 0;
27
- c.blue = (typeof colorObj.b === "number") ? colorObj.b : 0;
28
- return c;
29
- }
30
- return new NoColor();
31
- }
13
+ ${COLOR_HELPERS_JSX}
32
14
 
33
15
  function webToAiCoords(x, y, artboardRect) {
34
16
  if (artboardRect) {
@@ -92,22 +74,8 @@ if (preflight) {
92
74
  }
93
75
  }
94
76
 
95
- if (params.fill) {
96
- path.filled = true;
97
- path.fillColor = createColor(params.fill);
98
- } else {
99
- path.filled = false;
100
- }
101
-
102
- if (params.stroke) {
103
- path.stroked = true;
104
- if (params.stroke.color) {
105
- path.strokeColor = createColor(params.stroke.color);
106
- }
107
- if (typeof params.stroke.width === "number") {
108
- path.strokeWidth = params.stroke.width;
109
- }
110
- }
77
+ applyOptionalFill(path, params.fill);
78
+ applyStroke(path, params.stroke, path.stroked);
111
79
 
112
80
  if (params.name) {
113
81
  path.name = params.name;
@@ -120,18 +88,6 @@ if (preflight) {
120
88
  }
121
89
  }
122
90
  `;
123
- const colorSchema = z
124
- .object({
125
- type: z.enum(['cmyk', 'rgb', 'none']).describe('Color type'),
126
- c: z.number().optional(),
127
- m: z.number().optional(),
128
- y: z.number().optional(),
129
- k: z.number().optional(),
130
- r: z.number().optional(),
131
- g: z.number().optional(),
132
- b: z.number().optional(),
133
- })
134
- .optional();
135
91
  const anchorSchema = z.object({
136
92
  x: z.number().describe('Anchor point X coordinate'),
137
93
  y: z.number().describe('Anchor point Y coordinate'),
@@ -158,18 +114,12 @@ const anchorSchema = z.object({
158
114
  export function register(server) {
159
115
  server.registerTool('create_path', {
160
116
  title: 'Create Path',
161
- description: 'Create a custom path',
117
+ description: 'Create a custom path. Note: Illustrator will be activated (brought to foreground) during execution.',
162
118
  inputSchema: {
163
119
  anchors: z.array(anchorSchema).describe('Array of anchor points'),
164
120
  closed: z.boolean().optional().default(false).describe('Whether to close the path'),
165
121
  fill: colorSchema.describe('Fill color'),
166
- stroke: z
167
- .object({
168
- color: colorSchema.describe('Stroke color'),
169
- width: z.number().describe('Stroke width'),
170
- })
171
- .optional()
172
- .describe('Stroke settings'),
122
+ stroke: strokeSchema.describe('Stroke settings'),
173
123
  layer_name: z.string().optional().describe('Target layer name'),
174
124
  name: z.string().optional().describe('Object name'),
175
125
  coordinate_system: z
@@ -185,7 +135,7 @@ export function register(server) {
185
135
  openWorldHint: false,
186
136
  },
187
137
  }, async (params) => {
188
- const result = await executeJsx(jsxCode, params);
138
+ const result = await executeJsx(jsxCode, params, { activate: true });
189
139
  return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
190
140
  });
191
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-path.js","sourceRoot":"","sources":["../../../src/tools/modify/create-path.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-path.js","sourceRoot":"","sources":["../../../src/tools/modify/create-path.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE3E,MAAM,OAAO,GAAG;;;;;;;;;MASV,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6EtB,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACnD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACnD,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;KACd,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,mCAAmC,CAAC;IAChD,YAAY,EAAE,CAAC;SACZ,MAAM,CAAC;QACN,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;KACd,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,oCAAoC,CAAC;IACjD,UAAU,EAAE,CAAC;SACV,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAC1B,QAAQ,EAAE;SACV,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,YAAY,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,qGAAqG;QAClH,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACjE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACnF,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;YACxC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAChD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnD,iBAAiB,EAAE,CAAC;iBACjB,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;iBACvB,QAAQ,CAAC,sGAAsG,CAAC;SACpH;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-rectangle.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-rectangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4GpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwChD"}
1
+ {"version":3,"file":"create-rectangle.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-rectangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiEpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkChD"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { executeJsx } from '../../executor/jsx-runner.js';
3
+ import { colorSchema, strokeSchema, COLOR_HELPERS_JSX } from './shared.js';
3
4
  const jsxCode = `
4
5
  var preflight = preflightChecks();
5
6
  if (preflight) {
@@ -9,26 +10,7 @@ if (preflight) {
9
10
  var params = readParamsFile(PARAMS_PATH);
10
11
  var doc = app.activeDocument;
11
12
  var coordSystem = params.coordinate_system || "artboard-web";
12
-
13
- function createColor(colorObj) {
14
- if (!colorObj || colorObj.type === "none") return new NoColor();
15
- if (colorObj.type === "cmyk") {
16
- var c = new CMYKColor();
17
- c.cyan = (typeof colorObj.c === "number") ? colorObj.c : 0;
18
- c.magenta = (typeof colorObj.m === "number") ? colorObj.m : 0;
19
- c.yellow = (typeof colorObj.y === "number") ? colorObj.y : 0;
20
- c.black = (typeof colorObj.k === "number") ? colorObj.k : 0;
21
- return c;
22
- }
23
- if (colorObj.type === "rgb") {
24
- var c = new RGBColor();
25
- c.red = (typeof colorObj.r === "number") ? colorObj.r : 0;
26
- c.green = (typeof colorObj.g === "number") ? colorObj.g : 0;
27
- c.blue = (typeof colorObj.b === "number") ? colorObj.b : 0;
28
- return c;
29
- }
30
- return new NoColor();
31
- }
13
+ ${COLOR_HELPERS_JSX}
32
14
 
33
15
  var inputX = params.x;
34
16
  var inputY = params.y;
@@ -64,20 +46,8 @@ if (preflight) {
64
46
  rect = targetLayer.pathItems.rectangle(top, left, w, h);
65
47
  }
66
48
 
67
- if (params.fill) {
68
- rect.filled = true;
69
- rect.fillColor = createColor(params.fill);
70
- }
71
-
72
- if (params.stroke) {
73
- rect.stroked = true;
74
- if (params.stroke.color) {
75
- rect.strokeColor = createColor(params.stroke.color);
76
- }
77
- if (typeof params.stroke.width === "number") {
78
- rect.strokeWidth = params.stroke.width;
79
- }
80
- }
49
+ applyOptionalFill(rect, params.fill);
50
+ applyStroke(rect, params.stroke, rect.stroked);
81
51
 
82
52
  if (params.name) {
83
53
  rect.name = params.name;
@@ -90,22 +60,10 @@ if (preflight) {
90
60
  }
91
61
  }
92
62
  `;
93
- const colorSchema = z
94
- .object({
95
- type: z.enum(['cmyk', 'rgb', 'none']).describe('Color type'),
96
- c: z.number().optional(),
97
- m: z.number().optional(),
98
- y: z.number().optional(),
99
- k: z.number().optional(),
100
- r: z.number().optional(),
101
- g: z.number().optional(),
102
- b: z.number().optional(),
103
- })
104
- .optional();
105
63
  export function register(server) {
106
64
  server.registerTool('create_rectangle', {
107
65
  title: 'Create Rectangle',
108
- description: 'Create a rectangle',
66
+ description: 'Create a rectangle. Note: Illustrator will be activated (brought to foreground) during execution.',
109
67
  inputSchema: {
110
68
  x: z.number().describe('Top-left X coordinate'),
111
69
  y: z.number().describe('Top-left Y coordinate'),
@@ -113,13 +71,7 @@ export function register(server) {
113
71
  height: z.number().describe('Height'),
114
72
  corner_radius: z.number().optional().default(0).describe('Corner radius'),
115
73
  fill: colorSchema.describe('Fill color'),
116
- stroke: z
117
- .object({
118
- color: colorSchema.describe('Stroke color'),
119
- width: z.number().describe('Stroke width'),
120
- })
121
- .optional()
122
- .describe('Stroke settings'),
74
+ stroke: strokeSchema.describe('Stroke settings'),
123
75
  layer_name: z.string().optional().describe('Target layer name'),
124
76
  name: z.string().optional().describe('Object name'),
125
77
  coordinate_system: z
@@ -135,7 +87,7 @@ export function register(server) {
135
87
  openWorldHint: false,
136
88
  },
137
89
  }, async (params) => {
138
- const result = await executeJsx(jsxCode, params);
90
+ const result = await executeJsx(jsxCode, params, { activate: true });
139
91
  return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
140
92
  });
141
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-rectangle.js","sourceRoot":"","sources":["../../../src/tools/modify/create-rectangle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-rectangle.js","sourceRoot":"","sources":["../../../src/tools/modify/create-rectangle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE3E,MAAM,OAAO,GAAG;;;;;;;;;MASV,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDtB,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,mGAAmG;QAChH,WAAW,EAAE;YACX,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC/C,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACrC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;YACzE,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;YACxC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAChD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnD,iBAAiB,EAAE,CAAC;iBACjB,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;iBACvB,QAAQ,CAAC,sGAAsG,CAAC;SACpH;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-text-frame.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-text-frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwHpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwChD"}
1
+ {"version":3,"file":"create-text-frame.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-text-frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyFpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwChD"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { executeJsx } from '../../executor/jsx-runner.js';
3
+ import { colorSchema, COLOR_HELPERS_JSX } from './shared.js';
3
4
  const jsxCode = `
4
5
  var preflight = preflightChecks();
5
6
  if (preflight) {
@@ -9,26 +10,7 @@ if (preflight) {
9
10
  var params = readParamsFile(PARAMS_PATH);
10
11
  var doc = app.activeDocument;
11
12
  var coordSystem = params.coordinate_system || "artboard-web";
12
-
13
- function createColor(colorObj) {
14
- if (!colorObj || colorObj.type === "none") return new NoColor();
15
- if (colorObj.type === "cmyk") {
16
- var c = new CMYKColor();
17
- c.cyan = (typeof colorObj.c === "number") ? colorObj.c : 0;
18
- c.magenta = (typeof colorObj.m === "number") ? colorObj.m : 0;
19
- c.yellow = (typeof colorObj.y === "number") ? colorObj.y : 0;
20
- c.black = (typeof colorObj.k === "number") ? colorObj.k : 0;
21
- return c;
22
- }
23
- if (colorObj.type === "rgb") {
24
- var c = new RGBColor();
25
- c.red = (typeof colorObj.r === "number") ? colorObj.r : 0;
26
- c.green = (typeof colorObj.g === "number") ? colorObj.g : 0;
27
- c.blue = (typeof colorObj.b === "number") ? colorObj.b : 0;
28
- return c;
29
- }
30
- return new NoColor();
31
- }
13
+ ${COLOR_HELPERS_JSX}
32
14
 
33
15
  function webToAiCoords(x, y, artboardRect) {
34
16
  if (artboardRect) {
@@ -91,7 +73,7 @@ if (preflight) {
91
73
  charAttrs.size = params.font_size;
92
74
  }
93
75
 
94
- if (params.fill) {
76
+ if (typeof params.fill !== "undefined") {
95
77
  charAttrs.fillColor = createColor(params.fill);
96
78
  }
97
79
 
@@ -102,22 +84,10 @@ if (preflight) {
102
84
  }
103
85
  }
104
86
  `;
105
- const colorSchema = z
106
- .object({
107
- type: z.enum(['cmyk', 'rgb', 'none']).describe('Color type'),
108
- c: z.number().optional(),
109
- m: z.number().optional(),
110
- y: z.number().optional(),
111
- k: z.number().optional(),
112
- r: z.number().optional(),
113
- g: z.number().optional(),
114
- b: z.number().optional(),
115
- })
116
- .optional();
117
87
  export function register(server) {
118
88
  server.registerTool('create_text_frame', {
119
89
  title: 'Create Text Frame',
120
- description: 'Create a text frame',
90
+ description: 'Create a text frame. Note: Illustrator will be activated (brought to foreground) during execution.',
121
91
  inputSchema: {
122
92
  x: z.number().describe('X coordinate'),
123
93
  y: z.number().describe('Y coordinate'),
@@ -147,7 +117,7 @@ export function register(server) {
147
117
  openWorldHint: false,
148
118
  },
149
119
  }, async (params) => {
150
- const result = await executeJsx(jsxCode, params);
120
+ const result = await executeJsx(jsxCode, params, { activate: true });
151
121
  return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
152
122
  });
153
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-text-frame.js","sourceRoot":"","sources":["../../../src/tools/modify/create-text-frame.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-text-frame.js","sourceRoot":"","sources":["../../../src/tools/modify/create-text-frame.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,OAAO,GAAG;;;;;;;;;MASV,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEtB,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,oGAAoG;QACjH,WAAW,EAAE;YACX,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACtC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC9C,IAAI,EAAE,CAAC;iBACJ,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;iBACvB,QAAQ,EAAE;iBACV,OAAO,CAAC,OAAO,CAAC;iBAChB,QAAQ,CAAC,iCAAiC,CAAC;YAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACxD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC1D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC3D,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;YACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnD,iBAAiB,EAAE,CAAC;iBACjB,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,cAAc,CAAC;iBACvB,QAAQ,CAAC,sGAAsG,CAAC;SACpH;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"modify-object.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/modify-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4KpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0DhD"}
1
+ {"version":3,"file":"modify-object.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/modify-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmIpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoDhD"}