@alisaitteke/photoshop-mcp 1.7.30 → 1.7.33
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.
- package/AGENTS.md +5 -3
- package/README.md +2 -2
- package/dist/analytics/events.d.ts.map +1 -1
- package/dist/analytics/events.js +5 -1
- package/dist/analytics/events.js.map +1 -1
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics/index.js +4 -0
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/runtime-env.d.ts +7 -0
- package/dist/analytics/runtime-env.d.ts.map +1 -1
- package/dist/analytics/runtime-env.js +38 -1
- package/dist/analytics/runtime-env.js.map +1 -1
- package/dist/analytics/rybbit-node.d.ts.map +1 -1
- package/dist/analytics/rybbit-node.js +16 -8
- package/dist/analytics/rybbit-node.js.map +1 -1
- package/dist/api/extendscript.d.ts +5 -0
- package/dist/api/extendscript.d.ts.map +1 -1
- package/dist/api/extendscript.js +185 -1
- package/dist/api/extendscript.js.map +1 -1
- package/dist/apps/preview-frames.d.ts +21 -0
- package/dist/apps/preview-frames.d.ts.map +1 -0
- package/dist/apps/preview-frames.js +62 -0
- package/dist/apps/preview-frames.js.map +1 -0
- package/dist/apps/preview-html.d.ts +2 -0
- package/dist/apps/preview-html.d.ts.map +1 -0
- package/dist/apps/preview-html.js +3 -0
- package/dist/apps/preview-html.js.map +1 -0
- package/dist/apps/preview-resources.d.ts +12 -0
- package/dist/apps/preview-resources.d.ts.map +1 -0
- package/dist/apps/preview-resources.js +46 -0
- package/dist/apps/preview-resources.js.map +1 -0
- package/dist/apps/preview-result.d.ts +16 -0
- package/dist/apps/preview-result.d.ts.map +1 -0
- package/dist/apps/preview-result.js +83 -0
- package/dist/apps/preview-result.js.map +1 -0
- package/dist/core/document-target.d.ts +7 -2
- package/dist/core/document-target.d.ts.map +1 -1
- package/dist/core/document-target.js +34 -7
- package/dist/core/document-target.js.map +1 -1
- package/dist/core/server.d.ts.map +1 -1
- package/dist/core/server.js +16 -53
- package/dist/core/server.js.map +1 -1
- package/dist/core/tool-annotations.d.ts.map +1 -1
- package/dist/core/tool-annotations.js +1 -0
- package/dist/core/tool-annotations.js.map +1 -1
- package/dist/prompts/instructions.d.ts.map +1 -1
- package/dist/prompts/instructions.js +9 -104
- package/dist/prompts/instructions.js.map +1 -1
- package/dist/tools/action-tools.d.ts.map +1 -1
- package/dist/tools/action-tools.js +2 -1
- package/dist/tools/action-tools.js.map +1 -1
- package/dist/tools/document-tools.d.ts.map +1 -1
- package/dist/tools/document-tools.js +24 -7
- package/dist/tools/document-tools.js.map +1 -1
- package/dist/tools/history-tools.d.ts.map +1 -1
- package/dist/tools/history-tools.js +7 -1
- package/dist/tools/history-tools.js.map +1 -1
- package/dist/tools/layer-tools.d.ts.map +1 -1
- package/dist/tools/layer-tools.js +97 -2
- package/dist/tools/layer-tools.js.map +1 -1
- package/dist/tools/layer-transform-tools.d.ts.map +1 -1
- package/dist/tools/layer-transform-tools.js +2 -1
- package/dist/tools/layer-transform-tools.js.map +1 -1
- package/dist/tools/recipes/export-social-variants.js +1 -1
- package/dist/tools/recipes/export-social-variants.js.map +1 -1
- package/dist/tools/session-tools.d.ts +12 -0
- package/dist/tools/session-tools.d.ts.map +1 -0
- package/dist/tools/session-tools.js +61 -0
- package/dist/tools/session-tools.js.map +1 -0
- package/dist/tools/state-tools.d.ts.map +1 -1
- package/dist/tools/state-tools.js +13 -23
- package/dist/tools/state-tools.js.map +1 -1
- package/dist/ui/agent/action-plan.d.ts +25 -0
- package/dist/ui/agent/action-plan.d.ts.map +1 -1
- package/dist/ui/agent/action-plan.js +118 -10
- package/dist/ui/agent/action-plan.js.map +1 -1
- package/dist/ui/agent/api-key.js +1 -1
- package/dist/ui/agent/api-key.js.map +1 -1
- package/dist/ui/agent/plan-schema.d.ts +4 -4
- package/dist/ui/agent/plan-schema.d.ts.map +1 -1
- package/dist/ui/agent/plan-schema.js +43 -6
- package/dist/ui/agent/plan-schema.js.map +1 -1
- package/dist/ui/agent/planner-submit.d.ts +3 -3
- package/dist/ui/agent/planner-submit.d.ts.map +1 -1
- package/dist/ui/agent/planner-submit.js +6 -3
- package/dist/ui/agent/planner-submit.js.map +1 -1
- package/dist/ui/agent/shared.d.ts +7 -0
- package/dist/ui/agent/shared.d.ts.map +1 -1
- package/dist/ui/agent/shared.js +7 -0
- package/dist/ui/agent/shared.js.map +1 -1
- package/dist/ui/intent/catalog.d.ts +18 -26
- package/dist/ui/intent/catalog.d.ts.map +1 -1
- package/dist/ui/intent/catalog.js +151 -380
- package/dist/ui/intent/catalog.js.map +1 -1
- package/dist/ui/intent/router.d.ts +4 -3
- package/dist/ui/intent/router.d.ts.map +1 -1
- package/dist/ui/intent/router.js +31 -5
- package/dist/ui/intent/router.js.map +1 -1
- package/dist/ui/intent/tool-surface.d.ts +16 -0
- package/dist/ui/intent/tool-surface.d.ts.map +1 -0
- package/dist/ui/intent/tool-surface.js +74 -0
- package/dist/ui/intent/tool-surface.js.map +1 -0
- package/dist/ui/server.d.ts.map +1 -1
- package/dist/ui/server.js +1 -0
- package/dist/ui/server.js.map +1 -1
- package/package.json +4 -3
- package/web/dist/assets/index-D8j0GaOT.js +289 -0
- package/web/dist/index.html +1 -1
- package/web/dist/assets/index-DHJOEezS.js +0 -289
package/AGENTS.md
CHANGED
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
| -------- | ---- |
|
|
10
10
|
| Cursor | Install the `photoshop-mcp` plugin (Customize → Plugins / Marketplace) so the Photoshop logo appears in the MCP list. Fallback: `mcpServers` → `npx -y @alisaitteke/photoshop-mcp` (stdio, generic icon) |
|
|
11
11
|
| Claude Desktop / VS Code | Configure `mcpServers` → `npx -y @alisaitteke/photoshop-mcp` (stdio) |
|
|
12
|
-
| Claude Code | `claude mcp add photoshop -- npx -y @alisaitteke/photoshop-mcp` |
|
|
12
|
+
| Claude Code | Install this repo as a plugin (skills + MCP). Tools only: `claude mcp add photoshop -- npx -y @alisaitteke/photoshop-mcp` |
|
|
13
13
|
| Standalone chat UI (no IDE) | `npx -p @alisaitteke/photoshop-mcp ui` |
|
|
14
14
|
| Local development | `npm install && npm run build && node dist/index.js` — see [docs/development.md](docs/development.md) |
|
|
15
15
|
|
|
16
16
|
**Prerequisites:** Photoshop running on Windows or macOS, Node.js 18+. This is unofficial and not affiliated with Adobe.
|
|
17
17
|
|
|
18
|
-
**Tool surface:**
|
|
18
|
+
**Tool surface:** 127 MCP tools — 111 atomic `photoshop_*` + 16 recipe `photoshop_recipe_*`; 23 MCP prompt templates (`ps.*`).
|
|
19
19
|
|
|
20
20
|
## Architecture (agent view)
|
|
21
21
|
|
|
@@ -35,7 +35,7 @@ Deep dive: [docs/architecture.md](docs/architecture.md).
|
|
|
35
35
|
|
|
36
36
|
## Recommended workflow
|
|
37
37
|
|
|
38
|
-
Follow the server `instructions` advertised on MCP `initialize` ([src/prompts/instructions.ts](src/prompts/instructions.ts))
|
|
38
|
+
Follow the server `instructions` advertised on MCP `initialize` ([src/prompts/instructions.ts](src/prompts/instructions.ts)). Plugin installs also load [skills/photoshop-remove-background](skills/photoshop-remove-background/SKILL.md) and [skills/photoshop-recipes](skills/photoshop-recipes/SKILL.md) when the request matches; those hold the phrase-to-tool glossary. The initialize text stays the session contract.
|
|
39
39
|
|
|
40
40
|
```
|
|
41
41
|
1. DISCOVER: tools/list + prompts/list (or get_capabilities once per session)
|
|
@@ -123,6 +123,8 @@ More: [docs/troubleshooting.md](docs/troubleshooting.md).
|
|
|
123
123
|
| [src/prompts/](src/prompts/) | MCP prompt templates |
|
|
124
124
|
| [CONTRIBUTING.md](CONTRIBUTING.md) | PR and release workflow |
|
|
125
125
|
| [`.cursor-plugin/plugin.json`](.cursor-plugin/plugin.json) | Cursor Plugin manifest (MCP list logo) |
|
|
126
|
+
| [`.claude-plugin/plugin.json`](.claude-plugin/plugin.json) | Claude Code plugin manifest (same `skills/`) |
|
|
127
|
+
| [`skills/`](skills/) | Plugin skills: remove-background hard rule detail and recipe routing |
|
|
126
128
|
| [`mcp.json`](mcp.json) | Cursor Plugin stdio server config |
|
|
127
129
|
|
|
128
130
|
## Contributing (agents editing this repo)
|
package/README.md
CHANGED
|
@@ -64,7 +64,7 @@ Routes, thresholds and the off switch:
|
|
|
64
64
|
- 🎨 **Color grade & more** — film looks, sky replacement, generative fill (Adobe account required)
|
|
65
65
|
- ⏪ **Stay safe** — every multi-step "recipe" is a single undo step in Photoshop
|
|
66
66
|
|
|
67
|
-
Under the hood:
|
|
67
|
+
Under the hood: 127 tools (111 atomic + 16 one-step recipes) — full list in
|
|
68
68
|
[`docs/available-tools.md`](docs/available-tools.md).
|
|
69
69
|
|
|
70
70
|
## Try saying
|
|
@@ -153,7 +153,7 @@ next. Common fixes: [`docs/troubleshooting.md`](docs/troubleshooting.md).
|
|
|
153
153
|
|
|
154
154
|
## Documentation
|
|
155
155
|
|
|
156
|
-
- [Available tools](docs/available-tools.md) — all
|
|
156
|
+
- [Available tools](docs/available-tools.md) — all 127 tools with parameters
|
|
157
157
|
- [Standalone UI](docs/standalone-ui.md) — providers, auth modes, Action Plan, security
|
|
158
158
|
- [Prompt layer](docs/prompt-layer.md) — prompt templates and recipes
|
|
159
159
|
- [Architecture](docs/architecture.md) — how the bridge works under the hood
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"AAmIA,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAsBtD;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAa3C;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAStD;AAED,4FAA4F;AAC5F,wBAAgB,6BAA6B,CAC3C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAc3C"}
|
package/dist/analytics/events.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getServerAnalyticsContext } from './context.js';
|
|
2
2
|
import { getLaunchMethod } from './launch-method.js';
|
|
3
|
-
import { buildAnonymousRuntimeEnv, getMemoryGbBucket, getTotalRamGb } from './runtime-env.js';
|
|
3
|
+
import { buildAnonymousRuntimeEnv, getKnownPhotoshopVersion, getMemoryGbBucket, getTotalRamGb, } from './runtime-env.js';
|
|
4
4
|
const BLOCKED_PROPERTY_KEYS = new Set([
|
|
5
5
|
'api_key',
|
|
6
6
|
'apikey',
|
|
@@ -55,6 +55,8 @@ const ALLOWED_PROPERTY_KEYS = new Set([
|
|
|
55
55
|
'os_type',
|
|
56
56
|
'os_release',
|
|
57
57
|
'cpu_count',
|
|
58
|
+
'machine',
|
|
59
|
+
'uptime_hours',
|
|
58
60
|
'memory_gb',
|
|
59
61
|
'total_ram_gb',
|
|
60
62
|
'photoshop_version',
|
|
@@ -159,10 +161,12 @@ export function sanitizePersonOnceProperties(properties) {
|
|
|
159
161
|
return out;
|
|
160
162
|
}
|
|
161
163
|
export function buildRuntimeProperties(properties) {
|
|
164
|
+
const photoshopVersion = getKnownPhotoshopVersion();
|
|
162
165
|
return {
|
|
163
166
|
...buildAnonymousRuntimeEnv(),
|
|
164
167
|
launch_method: getLaunchMethod(),
|
|
165
168
|
...getServerAnalyticsContext(),
|
|
169
|
+
...(photoshopVersion ? { photoshop_version: photoshopVersion } : {}),
|
|
166
170
|
...sanitizeAnalyticsProperties(properties),
|
|
167
171
|
};
|
|
168
172
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKjD,OAAO,EACL,qBAAqB,EAIrB,sBAAsB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,+BAA+B,EAC/B,wBAAwB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAA2B,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,sFAAsF;AACtF,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,IAAI,CAON;AAED,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAgBlF;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG9D;AAED,4FAA4F;AAC5F,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAYhF;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvD;AAED,wBAAgB,yBAAyB,IAAI,sBAAsB,CAYlE;AACD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,+BAA+B,EAC/B,wBAAwB,GACzB,CAAC;AACF,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,GACb,CAAC"}
|
package/dist/analytics/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import { captureBetaChatTurn } from './beta-telemetry.js';
|
|
|
2
2
|
import { getAppVersion } from './app-version.js';
|
|
3
3
|
import { hasAnalyticsKey, resolveRybbitAnalyticsHost, resolveRybbitSiteId } from './config.js';
|
|
4
4
|
import { buildPersonIdentifyProperties, buildRuntimeProperties } from './events.js';
|
|
5
|
+
import { rememberPhotoshopVersion } from './runtime-env.js';
|
|
5
6
|
import { applyInstallCohortPersonOnce } from './install-cohorts.js';
|
|
6
7
|
import { getBetaTelemetryState, getOrCreateDistinctId, isAnalyticsEnabled, recordUsageSurface, setBetaTelemetryChoice, } from './identity.js';
|
|
7
8
|
import { onMcpClientConnected, onMcpClientDisconnected } from './mcp-client.js';
|
|
@@ -27,6 +28,9 @@ export function identifyAnalyticsPerson(properties) {
|
|
|
27
28
|
if (!isAnalyticsEnabled() || !hasAnalyticsKey())
|
|
28
29
|
return;
|
|
29
30
|
const props = { ...(properties ?? {}) };
|
|
31
|
+
if (typeof props.photoshop_version === 'string') {
|
|
32
|
+
rememberPhotoshopVersion(props.photoshop_version);
|
|
33
|
+
}
|
|
30
34
|
const usageSurface = typeof props.usage_surface === 'string' ? props.usage_surface : undefined;
|
|
31
35
|
if (usageSurface) {
|
|
32
36
|
props.usage_surfaces = recordUsageSurface(usageSurface);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
export declare function getTotalRamGb(): number;
|
|
3
3
|
/** Bucketed memory tier (GB) for person-profile cohort segmentation. */
|
|
4
4
|
export declare function getMemoryGbBucket(): number;
|
|
5
|
+
/** CPU model only — no hostname, username, or serial. */
|
|
6
|
+
export declare function getMachineModel(): string | undefined;
|
|
7
|
+
/** Whole hours the OS has been up, or undefined when the OS refuses the read. */
|
|
8
|
+
export declare function getUptimeHours(): number | undefined;
|
|
9
|
+
/** Remember a detected Photoshop version so later session events can carry it. */
|
|
10
|
+
export declare function rememberPhotoshopVersion(version: string): void;
|
|
11
|
+
export declare function getKnownPhotoshopVersion(): string | undefined;
|
|
5
12
|
/** Anonymous machine/runtime signals safe to attach to every server-side event. */
|
|
6
13
|
export declare function buildAnonymousRuntimeEnv(): Record<string, string | number | boolean>;
|
|
7
14
|
//# sourceMappingURL=runtime-env.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-env.d.ts","sourceRoot":"","sources":["../../src/analytics/runtime-env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime-env.d.ts","sourceRoot":"","sources":["../../src/analytics/runtime-env.ts"],"names":[],"mappings":"AAkBA,yFAAyF;AACzF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAqBD,yDAAyD;AACzD,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAKpD;AAED,iFAAiF;AACjF,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAQnD;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI9D;AAED,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,SAAS,CAE7D;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CA2BpF"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { cpus, release, totalmem, type } from 'node:os';
|
|
1
|
+
import { cpus, release, totalmem, type, uptime } from 'node:os';
|
|
2
2
|
import { getAppVersion } from './app-version.js';
|
|
3
3
|
import { getSystemLocale, resolveLocaleLanguage, resolveLocaleRegion } from './locale.js';
|
|
4
|
+
const MACHINE_MAX_CHARS = 80;
|
|
5
|
+
let knownPhotoshopVersion;
|
|
4
6
|
function bucketMemoryGb(totalBytes) {
|
|
5
7
|
const gb = totalBytes / 1024 ** 3;
|
|
6
8
|
if (gb <= 4)
|
|
@@ -41,12 +43,45 @@ function getNodeMajorVersion() {
|
|
|
41
43
|
function envFlag(name) {
|
|
42
44
|
return Boolean(process.env[name]?.trim());
|
|
43
45
|
}
|
|
46
|
+
/** CPU model only — no hostname, username, or serial. */
|
|
47
|
+
export function getMachineModel() {
|
|
48
|
+
const raw = cpus()[0]?.model?.replace(/\s+/g, ' ').trim();
|
|
49
|
+
if (!raw)
|
|
50
|
+
return undefined;
|
|
51
|
+
if (raw.length <= MACHINE_MAX_CHARS)
|
|
52
|
+
return raw;
|
|
53
|
+
return `${raw.slice(0, MACHINE_MAX_CHARS - 1)}…`;
|
|
54
|
+
}
|
|
55
|
+
/** Whole hours the OS has been up, or undefined when the OS refuses the read. */
|
|
56
|
+
export function getUptimeHours() {
|
|
57
|
+
try {
|
|
58
|
+
const seconds = uptime();
|
|
59
|
+
if (!Number.isFinite(seconds) || seconds < 0)
|
|
60
|
+
return undefined;
|
|
61
|
+
return Math.round(seconds / 3600);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** Remember a detected Photoshop version so later session events can carry it. */
|
|
68
|
+
export function rememberPhotoshopVersion(version) {
|
|
69
|
+
const trimmed = version.trim();
|
|
70
|
+
if (!trimmed || trimmed === 'Unknown')
|
|
71
|
+
return;
|
|
72
|
+
knownPhotoshopVersion = trimmed;
|
|
73
|
+
}
|
|
74
|
+
export function getKnownPhotoshopVersion() {
|
|
75
|
+
return knownPhotoshopVersion;
|
|
76
|
+
}
|
|
44
77
|
/** Anonymous machine/runtime signals safe to attach to every server-side event. */
|
|
45
78
|
export function buildAnonymousRuntimeEnv() {
|
|
46
79
|
const systemLocale = getSystemLocale();
|
|
47
80
|
const systemLocaleRegion = resolveLocaleRegion(systemLocale);
|
|
48
81
|
const systemLocaleLanguage = resolveLocaleLanguage(systemLocale);
|
|
49
82
|
const nodeMajor = getNodeMajorVersion();
|
|
83
|
+
const machine = getMachineModel();
|
|
84
|
+
const uptimeHours = getUptimeHours();
|
|
50
85
|
return {
|
|
51
86
|
app_version: getAppVersion(),
|
|
52
87
|
os: process.platform,
|
|
@@ -56,6 +91,8 @@ export function buildAnonymousRuntimeEnv() {
|
|
|
56
91
|
node_version: process.version,
|
|
57
92
|
...(nodeMajor !== undefined ? { node_major: nodeMajor } : {}),
|
|
58
93
|
cpu_count: cpus().length,
|
|
94
|
+
...(machine ? { machine } : {}),
|
|
95
|
+
...(uptimeHours !== undefined ? { uptime_hours: uptimeHours } : {}),
|
|
59
96
|
system_locale: systemLocale,
|
|
60
97
|
system_timezone: getSystemTimezone(),
|
|
61
98
|
...(systemLocaleRegion ? { system_locale_region: systemLocaleRegion } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-env.js","sourceRoot":"","sources":["../../src/analytics/runtime-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-env.js","sourceRoot":"","sources":["../../src/analytics/runtime-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE1F,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,IAAI,qBAAyC,CAAC;AAE9C,SAAS,cAAc,CAAC,UAAkB;IACxC,MAAM,EAAE,GAAG,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC;IAClC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,GAAG,CAAC,MAAM,IAAI,iBAAiB;QAAE,OAAO,GAAG,CAAC;IAChD,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC;AACnD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO;IAC9C,qBAAqB,GAAG,OAAO,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,wBAAwB;IACtC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO;QACL,WAAW,EAAE,aAAa,EAAE;QAC5B,EAAE,EAAE,OAAO,CAAC,QAAQ;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,IAAI,EAAE;QACf,UAAU,EAAE,OAAO,EAAE;QACrB,YAAY,EAAE,OAAO,CAAC,OAAO;QAC7B,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,SAAS,EAAE,IAAI,EAAE,CAAC,MAAM;QACxB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,aAAa,EAAE,YAAY;QAC3B,eAAe,EAAE,iBAAiB,EAAE;QACpC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/C,yBAAyB,EAAE,OAAO,CAAC,gBAAgB,CAAC;QACpD,0BAA0B,EAAE,OAAO,CAAC,oBAAoB,CAAC;KAC1D,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rybbit-node.d.ts","sourceRoot":"","sources":["../../src/analytics/rybbit-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rybbit-node.d.ts","sourceRoot":"","sources":["../../src/analytics/rybbit-node.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAA0B,MAAM,YAAY,CAAC;AA6B5F,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;;IAezB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAepD,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAgBxD,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IA2B9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B,OAAO,CAAC,OAAO;YAOD,IAAI;CA2BnB"}
|
|
@@ -3,24 +3,22 @@ import { getAppVersion } from './app-version.js';
|
|
|
3
3
|
import { resolveRybbitAnalyticsHost, resolveRybbitApiKey, resolveRybbitSiteId } from './config.js';
|
|
4
4
|
import { buildPersonIdentifyProperties, sanitizePersonOnceProperties } from './events.js';
|
|
5
5
|
import { getOrCreateDistinctId } from './identity.js';
|
|
6
|
+
import { getSystemLocale } from './locale.js';
|
|
6
7
|
const PROPERTIES_MAX_CHARS = 2048;
|
|
7
8
|
const TRAITS_MAX_CHARS = 2048;
|
|
8
9
|
const HOSTNAME = 'photoshop-mcp.com';
|
|
9
10
|
const FLUSH_AT = 10;
|
|
10
11
|
const FLUSH_INTERVAL_MS = 5000;
|
|
11
12
|
const DROP_WHEN_OVER_BUDGET = [
|
|
12
|
-
'os_release',
|
|
13
|
-
'system_timezone',
|
|
14
|
-
'system_locale',
|
|
15
|
-
'system_locale_language',
|
|
16
|
-
'system_locale_region',
|
|
17
|
-
'node_major',
|
|
18
13
|
'is_electron',
|
|
19
14
|
'photoshop_path_configured',
|
|
20
15
|
'custom_data_dir_configured',
|
|
21
|
-
'
|
|
22
|
-
'arch',
|
|
16
|
+
'node_major',
|
|
23
17
|
'os_type',
|
|
18
|
+
'arch',
|
|
19
|
+
'cpu_count',
|
|
20
|
+
'os_release',
|
|
21
|
+
'system_locale_region',
|
|
24
22
|
];
|
|
25
23
|
const PROTECTED_PROPERTY_KEYS = new Set(['feedback_choice', 'suggestion']);
|
|
26
24
|
export class RybbitNodeProvider {
|
|
@@ -90,6 +88,9 @@ export class RybbitNodeProvider {
|
|
|
90
88
|
const pageTitle = resolvePageTitle(props);
|
|
91
89
|
if (pageTitle)
|
|
92
90
|
body.page_title = pageTitle;
|
|
91
|
+
const language = sessionLanguage();
|
|
92
|
+
if (language)
|
|
93
|
+
body.language = language;
|
|
93
94
|
if (eventName)
|
|
94
95
|
body.event_name = eventName;
|
|
95
96
|
const encoded = encodeProperties(props);
|
|
@@ -170,6 +171,13 @@ function resolvePathname(properties) {
|
|
|
170
171
|
return '/ui';
|
|
171
172
|
return '/ui-server';
|
|
172
173
|
}
|
|
174
|
+
/** Rybbit stores this on the session `language` column (max 35). */
|
|
175
|
+
function sessionLanguage() {
|
|
176
|
+
const locale = getSystemLocale().trim();
|
|
177
|
+
if (!locale || locale === 'unknown')
|
|
178
|
+
return undefined;
|
|
179
|
+
return locale.slice(0, 35);
|
|
180
|
+
}
|
|
173
181
|
function resolvePageTitle(properties) {
|
|
174
182
|
const explicit = properties.$page_title;
|
|
175
183
|
if (typeof explicit !== 'string')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rybbit-node.js","sourceRoot":"","sources":["../../src/analytics/rybbit-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"rybbit-node.js","sourceRoot":"","sources":["../../src/analytics/rybbit-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,QAAQ,GAAG,mBAAmB,CAAC;AACrC,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,MAAM,qBAAqB,GAAG;IAC5B,aAAa;IACb,2BAA2B;IAC3B,4BAA4B;IAC5B,YAAY;IACZ,SAAS;IACT,MAAM;IACN,WAAW;IACX,YAAY;IACZ,sBAAsB;CACvB,CAAC;AAEF,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC;AAS3E,MAAM,OAAO,kBAAkB;IACrB,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;IACjC,UAAU,CAAS;IACnB,aAAa,CAAS;IACtB,MAAM,CAAS;IACf,MAAM,CAAqB;IAC3B,KAAK,GAAoB,EAAE,CAAC;IAC5B,UAAU,GAA0C,IAAI,CAAC;IACzD,UAAU,GAAG,KAAK,CAAC;IACnB,QAAQ,GAAG,KAAK,CAAC;IAEzB;QACE,IAAI,CAAC,aAAa,GAAG,0BAA0B,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,EAAE,gBAAgB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,QAAQ,CAAC,UAAoC;QAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC;YACX,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,WAAW;YACrC,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI,CAAC,MAAM;gBACpB,OAAO,EAAE,IAAI,CAAC,UAAU;gBACxB,MAAM;gBACN,eAAe,EAAE,KAAK;aACvB;SACF,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,UAAmC;QAC/C,MAAM,KAAK,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC5C,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC;YACX,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,WAAW;YACrC,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI,CAAC,MAAM;gBACpB,OAAO,EAAE,IAAI,CAAC,UAAU;gBACxB,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;gBAC5B,eAAe,EAAE,KAAK;aACvB;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,KAAqB;QAC3B,MAAM,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,GAAc,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;QACjF,MAAM,SAAS,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7E,MAAM,IAAI,GAA4B;YACpC,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,IAAI;YACJ,QAAQ,EAAE,QAAQ;YAClB,QAAQ;YACR,OAAO,EAAE,IAAI,CAAC,UAAU;SACzB,CAAC;QACF,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC3C,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACvC,IAAI,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,OAAO;YAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAEvC,IAAI,CAAC,OAAO,CAAC;YACX,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,QAAQ;YAClC,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEO,OAAO,CAAC,OAAsB;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,OAAsB;QACvC,IAAI,CAAC;YACH,MAAM,OAAO,GAA2B;gBACtC,cAAc,EAAE,kBAAkB;gBAClC,YAAY,EAAE,iBAAiB,aAAa,EAAE,EAAE;aACjD,CAAC;YACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,aAAa,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;YAClD,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;gBACxC,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;aACnC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnD,MAAM,SAAS,GACb,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,KAAK,QAAQ;oBACzC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU;oBACzB,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;wBACrC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;wBACnB,CAAC,CAAC,SAAS,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,QAAQ,CAAC,MAAM,QAAQ,SAAS,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,WAAW,CAAC;IAC9C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,UAAkD;IACzE,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC;IACtC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9E,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC;IACvC,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC;IACzC,IAAI,MAAM,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,MAAM,CAAC;IACzD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAC3E,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,oEAAoE;AACpE,SAAS,eAAe;IACtB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,gBAAgB,CACvB,UAAkD;IAElD,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC;IACxC,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkD;IAC1E,MAAM,OAAO,GAAG,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACxD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,kBAAkB,CACzB,UAAkD;IAElD,MAAM,GAAG,GAAyD,EAAE,CAAC;IACrE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACzF,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CACpB,UAAgE;IAEhE,MAAM,IAAI,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,OAAO,CAAC,MAAM,IAAI,oBAAoB;QAAE,OAAO,IAAI,CAAC;IAExD,KAAK,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACxC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACjE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,IAAI,oBAAoB;YAAE,OAAO,IAAI,CAAC;IAC1D,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;YAAE,SAAS;QAC7D,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;QACrC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,IAAI,oBAAoB;YAAE,OAAO,IAAI,CAAC;IAC1D,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,IACE,OAAO,CAAC,MAAM,GAAG,oBAAoB;QACrC,OAAO,UAAU,KAAK,QAAQ;QAC9B,UAAU,CAAC,MAAM,IAAI,EAAE,EACvB,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;QAChD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,IAAI,oBAAoB;YAAE,OAAO,IAAI,CAAC;IAC1D,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACvF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC;QAC9C,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,oBAAoB,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACjF,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,GAAG,oBAAoB,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACzD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;YACvD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CACpB,UAAmC;IAEnC,MAAM,GAAG,GAA8C,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACzF,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,MAAM,IAAI,gBAAgB;QAAE,OAAO,GAAG,CAAC;IAEnD,KAAK,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACxC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;YAAE,SAAS;QAC5B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,OAAO,CAAC,MAAM,IAAI,gBAAgB;YAAE,OAAO,GAAG,CAAC;IACrD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -102,6 +102,11 @@ export declare const ExtendScriptSnippets: {
|
|
|
102
102
|
* Background / fully-locked layers cannot be filled, so fail clearly.
|
|
103
103
|
*/
|
|
104
104
|
fillLayer: (red: number, green: number, blue: number) => string;
|
|
105
|
+
/**
|
|
106
|
+
* Two-color linear gradient on the active layer's pixels (not the mask).
|
|
107
|
+
* Document.gradients does not exist in ExtendScript; this uses the gradient tool action.
|
|
108
|
+
*/
|
|
109
|
+
fillLinearGradient: (fromRed: number, fromGreen: number, fromBlue: number, toRed: number, toGreen: number, toBlue: number, direction: "left_to_right" | "right_to_left" | "top_to_bottom" | "bottom_to_top") => string;
|
|
105
110
|
/**
|
|
106
111
|
* Resize image
|
|
107
112
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extendscript.d.ts","sourceRoot":"","sources":["../../src/api/extendscript.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqwBH,mGAAmG;AACnG,eAAO,MAAM,4BAA4B,8rDAsCxC,CAAC;AAOF;;;;GAIG;AACH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,6zDA0DpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,wlHA6FlC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,4kBAoBrC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;AAEnD,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,eAAe,GACf,eAAe,GACf,eAAe,CAAC;AAEpB;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;OAEG;;IASH;;OAEG;yBACkB,MAAM,UAAU,MAAM;IAW3C;;OAEG;;IAYH;;;OAGG;;IAyDH;;;OAGG;gCACyB;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IA8ED;;OAEG;4BAEK,MAAM,wDAID,MAAM;IAsCnB;;;;OAIG;2BACoB,MAAM;IAsD7B;;OAEG;0BACmB,MAAM;IAe5B;;OAEG;sBACe,MAAM;IAYxB;;OAEG;uBACgB,MAAM;IAazB;;OAEG;sBACe,MAAM;IAYxB;;OAEG;;IAUH;;OAEG;sBACe,MAAM;IAkBxB;;OAEG;;IAaH;;;;;;;OAOG;qBACc,MAAM,SAAS,MAAM,QAAQ,MAAM;
|
|
1
|
+
{"version":3,"file":"extendscript.d.ts","sourceRoot":"","sources":["../../src/api/extendscript.ts"],"names":[],"mappings":"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"}
|
package/dist/api/extendscript.js
CHANGED
|
@@ -1402,6 +1402,12 @@ export const ExtendScriptSnippets = {
|
|
|
1402
1402
|
if (layer.kind === LayerKind.TEXT) {
|
|
1403
1403
|
throw new Error('Cannot fill a text layer. Rasterize it first.');
|
|
1404
1404
|
}
|
|
1405
|
+
var rasterized = false;
|
|
1406
|
+
if (layer.kind === LayerKind.SMARTOBJECT) {
|
|
1407
|
+
layer.rasterize(RasterizeType.ENTIRELAYER);
|
|
1408
|
+
rasterized = true;
|
|
1409
|
+
layer = doc.activeLayer;
|
|
1410
|
+
}
|
|
1405
1411
|
|
|
1406
1412
|
var color = new SolidColor();
|
|
1407
1413
|
color.rgb.red = ${red};
|
|
@@ -1425,10 +1431,122 @@ export const ExtendScriptSnippets = {
|
|
|
1425
1431
|
|
|
1426
1432
|
return {
|
|
1427
1433
|
filled: true,
|
|
1434
|
+
rasterized: rasterized,
|
|
1428
1435
|
layerName: layer.name,
|
|
1429
1436
|
color: { red: ${red}, green: ${green}, blue: ${blue} }
|
|
1430
1437
|
};
|
|
1431
1438
|
`,
|
|
1439
|
+
/**
|
|
1440
|
+
* Two-color linear gradient on the active layer's pixels (not the mask).
|
|
1441
|
+
* Document.gradients does not exist in ExtendScript; this uses the gradient tool action.
|
|
1442
|
+
*/
|
|
1443
|
+
fillLinearGradient: (fromRed, fromGreen, fromBlue, toRed, toGreen, toBlue, direction) => {
|
|
1444
|
+
const axis = {
|
|
1445
|
+
left_to_right: { fromH: 0, fromV: 50, toH: 100, toV: 50 },
|
|
1446
|
+
right_to_left: { fromH: 100, fromV: 50, toH: 0, toV: 50 },
|
|
1447
|
+
top_to_bottom: { fromH: 50, fromV: 0, toH: 50, toV: 100 },
|
|
1448
|
+
bottom_to_top: { fromH: 50, fromV: 100, toH: 50, toV: 0 },
|
|
1449
|
+
}[direction];
|
|
1450
|
+
return `
|
|
1451
|
+
${helperFunctions}
|
|
1452
|
+
if (app.documents.length === 0) {
|
|
1453
|
+
throw new Error('No active document');
|
|
1454
|
+
}
|
|
1455
|
+
var doc = app.activeDocument;
|
|
1456
|
+
var layer = doc.activeLayer;
|
|
1457
|
+
if (!layer) throw new Error('No active layer');
|
|
1458
|
+
if (layer.allLocked) {
|
|
1459
|
+
throw new Error('Cannot fill a fully locked layer: ' + layer.name);
|
|
1460
|
+
}
|
|
1461
|
+
if (layer.kind === LayerKind.TEXT) {
|
|
1462
|
+
throw new Error('Cannot fill a text layer. Rasterize it first.');
|
|
1463
|
+
}
|
|
1464
|
+
if (layer.isBackgroundLayer) {
|
|
1465
|
+
layer.isBackgroundLayer = false;
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1468
|
+
app.displayDialogs = DialogModes.NO;
|
|
1469
|
+
var docW = doc.width.as('px');
|
|
1470
|
+
var docH = doc.height.as('px');
|
|
1471
|
+
var fromX = docW * (${axis.fromH} / 100.0);
|
|
1472
|
+
var fromY = docH * (${axis.fromV} / 100.0);
|
|
1473
|
+
var toX = docW * (${axis.toH} / 100.0);
|
|
1474
|
+
var toY = docH * (${axis.toV} / 100.0);
|
|
1475
|
+
|
|
1476
|
+
var hadSelection = false;
|
|
1477
|
+
try { hadSelection = doc.selection.bounds != null; } catch (eSel) { hadSelection = false; }
|
|
1478
|
+
if (!hadSelection) doc.selection.selectAll();
|
|
1479
|
+
|
|
1480
|
+
function __mcp_gradPoint(x, y) {
|
|
1481
|
+
var desc = new ActionDescriptor();
|
|
1482
|
+
desc.putUnitDouble(cTID('Hrzn'), cTID('#Pxl'), x);
|
|
1483
|
+
desc.putUnitDouble(cTID('Vrtc'), cTID('#Pxl'), y);
|
|
1484
|
+
return desc;
|
|
1485
|
+
}
|
|
1486
|
+
function __mcp_gradRgb(r, g, b) {
|
|
1487
|
+
var desc = new ActionDescriptor();
|
|
1488
|
+
desc.putDouble(cTID('Rd '), r);
|
|
1489
|
+
desc.putDouble(cTID('Grn '), g);
|
|
1490
|
+
desc.putDouble(cTID('Bl '), b);
|
|
1491
|
+
return desc;
|
|
1492
|
+
}
|
|
1493
|
+
function __mcp_gradStop(location, r, g, b) {
|
|
1494
|
+
var desc = new ActionDescriptor();
|
|
1495
|
+
desc.putInteger(cTID('Lctn'), location);
|
|
1496
|
+
desc.putInteger(cTID('Mdpn'), 50);
|
|
1497
|
+
desc.putObject(cTID('Clr '), cTID('RGBC'), __mcp_gradRgb(r, g, b));
|
|
1498
|
+
desc.putEnumerated(cTID('Type'), cTID('Clry'), cTID('UsrS'));
|
|
1499
|
+
return desc;
|
|
1500
|
+
}
|
|
1501
|
+
|
|
1502
|
+
var args = new ActionDescriptor();
|
|
1503
|
+
args.putObject(cTID('From'), cTID('Pnt '), __mcp_gradPoint(fromX, fromY));
|
|
1504
|
+
args.putObject(cTID('T '), cTID('Pnt '), __mcp_gradPoint(toX, toY));
|
|
1505
|
+
args.putEnumerated(cTID('Md '), cTID('BlnM'), cTID('Nrml'));
|
|
1506
|
+
args.putEnumerated(cTID('Type'), cTID('GrdT'), cTID('Lnr '));
|
|
1507
|
+
args.putBoolean(cTID('Dthr'), true);
|
|
1508
|
+
args.putBoolean(cTID('UsMs'), false);
|
|
1509
|
+
args.putBoolean(cTID('Rvrs'), false);
|
|
1510
|
+
|
|
1511
|
+
var gradDesc = new ActionDescriptor();
|
|
1512
|
+
gradDesc.putString(cTID('Nm '), 'Custom');
|
|
1513
|
+
gradDesc.putEnumerated(cTID('GrdF'), cTID('GrdF'), cTID('CstS'));
|
|
1514
|
+
gradDesc.putDouble(cTID('Intr'), 4096.0);
|
|
1515
|
+
|
|
1516
|
+
var colorList = new ActionList();
|
|
1517
|
+
colorList.putObject(cTID('Clrt'), __mcp_gradStop(0, ${fromRed}, ${fromGreen}, ${fromBlue}));
|
|
1518
|
+
colorList.putObject(cTID('Clrt'), __mcp_gradStop(4096, ${toRed}, ${toGreen}, ${toBlue}));
|
|
1519
|
+
gradDesc.putList(cTID('Clrs'), colorList);
|
|
1520
|
+
|
|
1521
|
+
var xferList = new ActionList();
|
|
1522
|
+
var xferA = new ActionDescriptor();
|
|
1523
|
+
xferA.putInteger(cTID('Lctn'), 0);
|
|
1524
|
+
xferA.putInteger(cTID('Mdpn'), 50);
|
|
1525
|
+
xferA.putUnitDouble(cTID('Opct'), cTID('#Prc'), 100.0);
|
|
1526
|
+
xferList.putObject(cTID('TrnS'), xferA);
|
|
1527
|
+
var xferB = new ActionDescriptor();
|
|
1528
|
+
xferB.putInteger(cTID('Lctn'), 4096);
|
|
1529
|
+
xferB.putInteger(cTID('Mdpn'), 50);
|
|
1530
|
+
xferB.putUnitDouble(cTID('Opct'), cTID('#Prc'), 100.0);
|
|
1531
|
+
xferList.putObject(cTID('TrnS'), xferB);
|
|
1532
|
+
gradDesc.putList(cTID('Trns'), xferList);
|
|
1533
|
+
|
|
1534
|
+
args.putObject(cTID('Grad'), cTID('Grdn'), gradDesc);
|
|
1535
|
+
executeAction(cTID('Grdn'), args, DialogModes.NO);
|
|
1536
|
+
|
|
1537
|
+
if (!hadSelection) {
|
|
1538
|
+
try { doc.selection.deselect(); } catch (eDeselect) {}
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1541
|
+
return {
|
|
1542
|
+
filled: true,
|
|
1543
|
+
layerName: layer.name,
|
|
1544
|
+
direction: '${direction}',
|
|
1545
|
+
from: { red: ${fromRed}, green: ${fromGreen}, blue: ${fromBlue} },
|
|
1546
|
+
to: { red: ${toRed}, green: ${toGreen}, blue: ${toBlue} }
|
|
1547
|
+
};
|
|
1548
|
+
`;
|
|
1549
|
+
},
|
|
1432
1550
|
/**
|
|
1433
1551
|
* Resize image
|
|
1434
1552
|
*/
|
|
@@ -1622,6 +1740,18 @@ export const ExtendScriptSnippets = {
|
|
|
1622
1740
|
throw new Error('Cannot transform background layer');
|
|
1623
1741
|
}
|
|
1624
1742
|
|
|
1743
|
+
try {
|
|
1744
|
+
var __mcpScaleBounds = layer.bounds;
|
|
1745
|
+
var __mcpScaleW = __mcpScaleBounds[2].as('px') - __mcpScaleBounds[0].as('px');
|
|
1746
|
+
var __mcpScaleH = __mcpScaleBounds[3].as('px') - __mcpScaleBounds[1].as('px');
|
|
1747
|
+
if (!(__mcpScaleW > 0) || !(__mcpScaleH > 0)) {
|
|
1748
|
+
throw new Error('Layer has no pixels (empty bounding rectangle). Fill the layer before scaling.');
|
|
1749
|
+
}
|
|
1750
|
+
} catch (eScaleBounds) {
|
|
1751
|
+
var __mcpScaleMsg = eScaleBounds && eScaleBounds.message ? String(eScaleBounds.message) : '';
|
|
1752
|
+
if (__mcpScaleMsg.indexOf('empty bounding rectangle') !== -1) throw eScaleBounds;
|
|
1753
|
+
}
|
|
1754
|
+
|
|
1625
1755
|
var anchor = ${centerAnchor ? 'AnchorPosition.MIDDLECENTER' : 'AnchorPosition.TOPLEFT'};
|
|
1626
1756
|
layer.resize(${scalePercent}, ${scalePercent}, anchor);
|
|
1627
1757
|
|
|
@@ -3422,6 +3552,22 @@ export const ExtendScriptSnippets = {
|
|
|
3422
3552
|
${getContextInfo}
|
|
3423
3553
|
var context = getContextInfo();
|
|
3424
3554
|
if (context.hasDocument && context.document) {
|
|
3555
|
+
var doc = app.activeDocument;
|
|
3556
|
+
try { context.document.saved = doc.saved; } catch (eSaved) {}
|
|
3557
|
+
try { context.document.path = doc.fullName.fsName; } catch (ePath) {}
|
|
3558
|
+
try { context.document.bitsPerChannel = String(doc.bitsPerChannel); } catch (eBits) {}
|
|
3559
|
+
context.document.layers = [];
|
|
3560
|
+
try {
|
|
3561
|
+
var layerLimit = Math.min(doc.layers.length, 40);
|
|
3562
|
+
for (var li = 0; li < layerLimit; li++) {
|
|
3563
|
+
var lyr = doc.layers[li];
|
|
3564
|
+
var layerEntry = { name: String(lyr.name) };
|
|
3565
|
+
try { layerEntry.kind = String(lyr.kind); } catch (eKind) {}
|
|
3566
|
+
try { layerEntry.visible = lyr.visible; } catch (eVis) {}
|
|
3567
|
+
context.document.layers.push(layerEntry);
|
|
3568
|
+
}
|
|
3569
|
+
} catch (eLayers) {}
|
|
3570
|
+
|
|
3425
3571
|
var abs = __mcp_listArtboards();
|
|
3426
3572
|
context.document.artboards = abs;
|
|
3427
3573
|
context.document.artboardCount = abs.length;
|
|
@@ -3434,6 +3580,25 @@ export const ExtendScriptSnippets = {
|
|
|
3434
3580
|
}
|
|
3435
3581
|
context.activeArtboard = activeAb;
|
|
3436
3582
|
}
|
|
3583
|
+
|
|
3584
|
+
context.documents = [];
|
|
3585
|
+
var activeId = null;
|
|
3586
|
+
try {
|
|
3587
|
+
if (app.documents.length > 0) activeId = app.activeDocument.id;
|
|
3588
|
+
} catch (eActive) {
|
|
3589
|
+
activeId = null;
|
|
3590
|
+
}
|
|
3591
|
+
for (var di = 0; di < app.documents.length; di++) {
|
|
3592
|
+
var openDoc = app.documents[di];
|
|
3593
|
+
var entry = { id: null, name: '', is_active: false };
|
|
3594
|
+
try { entry.id = openDoc.id; } catch (eId) {}
|
|
3595
|
+
try { entry.name = String(openDoc.name); } catch (eName) {}
|
|
3596
|
+
try { entry.width = openDoc.width.as('px'); } catch (eW) {}
|
|
3597
|
+
try { entry.height = openDoc.height.as('px'); } catch (eH) {}
|
|
3598
|
+
try { entry.saved = openDoc.saved; } catch (eOpenSaved) {}
|
|
3599
|
+
try { entry.is_active = activeId !== null && openDoc.id === activeId; } catch (eA) {}
|
|
3600
|
+
context.documents.push(entry);
|
|
3601
|
+
}
|
|
3437
3602
|
return context;
|
|
3438
3603
|
`,
|
|
3439
3604
|
/**
|
|
@@ -3449,6 +3614,19 @@ export const ExtendScriptSnippets = {
|
|
|
3449
3614
|
var doc = app.activeDocument;
|
|
3450
3615
|
var w = doc.width.as('px');
|
|
3451
3616
|
var h = doc.height.as('px');
|
|
3617
|
+
var docName = '';
|
|
3618
|
+
try { docName = String(doc.name); } catch (eName) {}
|
|
3619
|
+
var colorMode = '';
|
|
3620
|
+
try { colorMode = String(doc.mode); } catch (eMode) {}
|
|
3621
|
+
var docId = null;
|
|
3622
|
+
try { docId = doc.id; } catch (eId) {}
|
|
3623
|
+
var layerNames = [];
|
|
3624
|
+
try {
|
|
3625
|
+
var layerLimit = Math.min(doc.layers.length, 40);
|
|
3626
|
+
for (var li = 0; li < layerLimit; li++) {
|
|
3627
|
+
layerNames.push(String(doc.layers[li].name));
|
|
3628
|
+
}
|
|
3629
|
+
} catch (eLayers) {}
|
|
3452
3630
|
var maxDim = ${maxDimension};
|
|
3453
3631
|
var scale = 1;
|
|
3454
3632
|
if (w > maxDim || h > maxDim) {
|
|
@@ -3478,7 +3656,13 @@ export const ExtendScriptSnippets = {
|
|
|
3478
3656
|
path: tmpFile.fsName,
|
|
3479
3657
|
width: Math.round(w * scale),
|
|
3480
3658
|
height: Math.round(h * scale),
|
|
3481
|
-
mimeType: 'image/jpeg'
|
|
3659
|
+
mimeType: 'image/jpeg',
|
|
3660
|
+
documentId: docId,
|
|
3661
|
+
documentName: docName,
|
|
3662
|
+
documentWidth: Math.round(w),
|
|
3663
|
+
documentHeight: Math.round(h),
|
|
3664
|
+
colorMode: colorMode,
|
|
3665
|
+
layers: layerNames
|
|
3482
3666
|
};
|
|
3483
3667
|
`,
|
|
3484
3668
|
/**
|