@pinepaper.studio/mcp-server 1.6.28 → 1.6.29
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/README.md +27 -0
- package/SECURITY.md +2 -3
- package/dist/agent/export-manager.js +125 -125
- package/dist/assets/repositories/fontawesome.d.ts.map +1 -1
- package/dist/assets/repositories/fontawesome.js +2 -1
- package/dist/assets/repositories/fontawesome.js.map +1 -1
- package/dist/assets/repositories/iconify.d.ts.map +1 -1
- package/dist/assets/repositories/iconify.js +4 -3
- package/dist/assets/repositories/iconify.js.map +1 -1
- package/dist/browser/puppeteer-controller.js +38 -23
- package/dist/build-info.json +2 -2
- package/dist/cli.js +54 -54
- package/dist/execution/canvas-state.js +25 -25
- package/dist/i18n/locales/en.js +22 -22
- package/dist/i18n/locales/fil.js +44 -44
- package/dist/i18n/locales/is.js +22 -22
- package/dist/i18n/locales/ur.js +22 -22
- package/dist/index.js +5559 -5559
- package/dist/ontology/upstream-vocabulary.js +4 -4
- package/dist/tools/craft-tools.js +18 -18
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +2816 -2815
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/effect-check.js +68 -68
- package/dist/tools/engine-methods.d.ts.map +1 -1
- package/dist/tools/engine-methods.js +1 -1
- package/dist/tools/engine-methods.js.map +1 -1
- package/dist/tools/handlers/font.js +22 -22
- package/dist/tools/handlers/generate.d.ts.map +1 -1
- package/dist/tools/handlers/generate.js +2 -1
- package/dist/tools/handlers/generate.js.map +1 -1
- package/dist/tools/handlers.js +16 -16
- package/dist/tools/lane.js +64 -64
- package/dist/tools/p5-compat/p5-helpers.js +341 -341
- package/dist/tools/timeline.js +82 -82
- package/dist/types/code-generator.d.ts.map +1 -1
- package/dist/types/code-generator.js +6616 -5859
- package/dist/types/code-generator.js.map +1 -1
- package/dist/types/schemas.d.ts +2 -0
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +2 -0
- package/dist/types/schemas.js.map +1 -1
- package/dist/utils/safe-fetch.d.ts +8 -0
- package/dist/utils/safe-fetch.d.ts.map +1 -1
- package/dist/utils/safe-fetch.js +125 -34
- package/dist/utils/safe-fetch.js.map +1 -1
- package/dist/vendor/design/device-mockup-generator.js +167 -150
- package/dist/vendor/design/recursive-subdivision-generator.js +107 -107
- package/dist/vendor/design/textile-weave-generator.js +429 -429
- package/dist/vendor/design/ui-kit-runtime.js +674 -674
- package/manifest.json +1 -1
- package/package.json +7 -4
|
@@ -7,6 +7,8 @@ export interface ResolvedAddress {
|
|
|
7
7
|
export declare const safeFetchDeps: {
|
|
8
8
|
lookup: (host: string) => Promise<ResolvedAddress[]>;
|
|
9
9
|
request: (url: URL, addresses: ResolvedAddress[], init: RequestInit) => Promise<Response>;
|
|
10
|
+
/** The transport for trustedFetch: the same node request, unpinned. */
|
|
11
|
+
trusted: (url: URL, init: RequestInit) => Promise<Response>;
|
|
10
12
|
};
|
|
11
13
|
export declare function privateNetworkAllowed(): boolean;
|
|
12
14
|
/** 'metadata' | 'private' | null (public). */
|
|
@@ -25,4 +27,10 @@ export declare function checkUrl(input: string | URL): Promise<ResolvedAddress[]
|
|
|
25
27
|
* in full before returning, so the per-request connection can be closed.
|
|
26
28
|
*/
|
|
27
29
|
export declare function safeFetch(input: string | URL, init?: RequestInit): Promise<Response>;
|
|
30
|
+
/**
|
|
31
|
+
* A request to a service the server itself is configured with: the hosted API (PINEPAPER_CLOUD_URL, which may be a
|
|
32
|
+
* local dev server) and the icon libraries' fixed hosts. Not a URL a model named, so no private-address check; it
|
|
33
|
+
* follows redirects like fetch. Kept here so the package's network access is this one file.
|
|
34
|
+
*/
|
|
35
|
+
export declare function trustedFetch(input: string | URL, init?: RequestInit): Promise<Response>;
|
|
28
36
|
//# sourceMappingURL=safe-fetch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-fetch.d.ts","sourceRoot":"","sources":["../../src/utils/safe-fetch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"safe-fetch.d.ts","sourceRoot":"","sources":["../../src/utils/safe-fetch.ts"],"names":[],"mappings":"AAgDA,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,MAAM,WAAW,eAAe;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE;AAEnE,sDAAsD;AACtD,eAAO,MAAM,aAAa,EAAE;IAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACrD,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1F,uEAAuE;IACvE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAK7D,CAAC;AAyBF,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AA6BD,8CAA8C;AAC9C,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,IAAI,CAW9E;AAED,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAaD;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CA8B9E;AAKD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAa9F;AAgFD;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CASjG"}
|
package/dist/utils/safe-fetch.js
CHANGED
|
@@ -14,11 +14,12 @@
|
|
|
14
14
|
* followed here, one hop at a time (at most MAX_REDIRECTS), and every
|
|
15
15
|
* Location is checked by the same rules before it is connected to.
|
|
16
16
|
* - DNS REBINDING. A name can resolve to a public address for the check and
|
|
17
|
-
* to 127.0.0.1 for the connection. The connection is pinned:
|
|
18
|
-
*
|
|
19
|
-
* socket cannot go anywhere else.
|
|
20
|
-
*
|
|
21
|
-
*
|
|
17
|
+
* to 127.0.0.1 for the connection. The connection is pinned: node:http /
|
|
18
|
+
* node:https are given a `lookup` that returns exactly the addresses that
|
|
19
|
+
* were checked, so the socket cannot go anywhere else. TLS still verifies
|
|
20
|
+
* the certificate against the URL's host name (servername). The published
|
|
21
|
+
* bin runs under node, where this holds; bun may ignore `lookup`, and there
|
|
22
|
+
* it degrades to check-then-connect.
|
|
22
23
|
* - MAPPED FORMS. ::ffff:127.0.0.1 and 64:ff9b::7f00:1 are loopback in
|
|
23
24
|
* IPv6 clothing. BlockList matches IPv4 rules against mapped addresses;
|
|
24
25
|
* the NAT64 and 6to4 prefixes are unpacked and checked as IPv4.
|
|
@@ -27,20 +28,29 @@
|
|
|
27
28
|
* LAN addresses, for a local dev server. Cloud metadata addresses stay
|
|
28
29
|
* refused with it set: nothing a design tool does needs them.
|
|
29
30
|
*
|
|
30
|
-
*
|
|
31
|
-
* Cloudflare Worker, which has
|
|
32
|
-
* address is still checked and the platform's own fetch
|
|
33
|
-
* (Workers cannot open connections to private addresses).
|
|
31
|
+
* node:http, node:https and node:dns are loaded lazily. This module is also
|
|
32
|
+
* bundled into a Cloudflare Worker, which has none of them in the same form;
|
|
33
|
+
* there, the literal address is still checked and the platform's own fetch
|
|
34
|
+
* does the rest (Workers cannot open connections to private addresses).
|
|
34
35
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
36
|
+
* NO DEPENDENCY (1.6.29). This was built on undici, the package's only
|
|
37
|
+
* runtime dependency besides zod, for its pinnable connect.lookup. node:http
|
|
38
|
+
* takes the same `lookup`, so undici went, and with it about 25 network,
|
|
39
|
+
* environment and wasm findings a supply-chain scanner counted against the
|
|
40
|
+
* package. Every outbound request the server makes goes through this file:
|
|
41
|
+
* safeFetch for a URL a model named, trustedFetch for the server's own
|
|
42
|
+
* configured services (the hosted API, the icon libraries).
|
|
43
|
+
*
|
|
44
|
+
* Keep this file to node builtins, with no relative imports: the pinning test
|
|
45
|
+
* loads it in a plain node process (bun cannot exercise pinning).
|
|
37
46
|
*/
|
|
38
47
|
import { BlockList, isIP } from 'node:net';
|
|
39
48
|
export const MAX_REDIRECTS = 5;
|
|
40
49
|
/** Seams for tests: DNS, and the pinned transport. */
|
|
41
50
|
export const safeFetchDeps = {
|
|
42
51
|
lookup: defaultLookup,
|
|
43
|
-
request: pinnedRequest,
|
|
52
|
+
request: (url, addresses, init) => pinnedRequest(url, addresses, init),
|
|
53
|
+
trusted: (url, init) => nodeRequest(url, [], init),
|
|
44
54
|
};
|
|
45
55
|
const PRIVATE = new BlockList();
|
|
46
56
|
for (const [net, bits] of [
|
|
@@ -192,30 +202,111 @@ export async function safeFetch(input, init = {}) {
|
|
|
192
202
|
url = new URL(location, url);
|
|
193
203
|
}
|
|
194
204
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
if (
|
|
205
|
+
/** The request body as bytes: what the server sends is a string or bytes, never a stream. */
|
|
206
|
+
function bodyBytes(body) {
|
|
207
|
+
if (body === undefined || body === null)
|
|
208
|
+
return null;
|
|
209
|
+
if (typeof body === 'string')
|
|
210
|
+
return Buffer.from(body);
|
|
211
|
+
if (body instanceof URLSearchParams)
|
|
212
|
+
return Buffer.from(body.toString());
|
|
213
|
+
if (body instanceof ArrayBuffer)
|
|
214
|
+
return Buffer.from(body);
|
|
215
|
+
if (ArrayBuffer.isView(body))
|
|
216
|
+
return Buffer.from(body.buffer, body.byteOffset, body.byteLength);
|
|
217
|
+
throw new TypeError('safe-fetch sends a string, URLSearchParams or bytes as a request body, not a stream');
|
|
218
|
+
}
|
|
219
|
+
/** Response headers from node's IncomingMessage, repeated ones (set-cookie) kept. */
|
|
220
|
+
function toHeaders(raw) {
|
|
221
|
+
const h = new Headers();
|
|
222
|
+
for (const [k, v] of Object.entries(raw)) {
|
|
223
|
+
if (Array.isArray(v))
|
|
224
|
+
for (const x of v)
|
|
225
|
+
h.append(k, x);
|
|
226
|
+
else if (v !== undefined)
|
|
227
|
+
h.append(k, v);
|
|
228
|
+
}
|
|
229
|
+
return h;
|
|
230
|
+
}
|
|
231
|
+
/** No byte arrives for this long: the request is abandoned. */
|
|
232
|
+
const IDLE_TIMEOUT_MS = 120_000;
|
|
233
|
+
/**
|
|
234
|
+
* One request over node:http / node:https, its connection pinned to `addresses` when there are any. The whole body is
|
|
235
|
+
* read before returning. Where node:http is missing (a Worker), the platform fetch, which cannot reach private
|
|
236
|
+
* addresses.
|
|
237
|
+
*/
|
|
238
|
+
async function nodeRequest(url, addresses, init) {
|
|
239
|
+
// A Cloudflare Worker (mcp-cloud bundles this file) may offer a node:https shim over its own fetch; use the
|
|
240
|
+
// platform fetch there directly, as before undici went: a Worker cannot open connections to private addresses.
|
|
241
|
+
if (typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers')
|
|
242
|
+
return fetch(url, init);
|
|
243
|
+
const secure = url.protocol === 'https:';
|
|
244
|
+
const mod = await (secure ? import('node:https') : import('node:http')).catch(() => null);
|
|
245
|
+
if (!mod || typeof mod.request !== 'function')
|
|
200
246
|
return fetch(url, init);
|
|
201
|
-
const
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
247
|
+
const headers = {};
|
|
248
|
+
new Headers(init.headers).forEach((v, k) => { headers[k] = v; });
|
|
249
|
+
const body = bodyBytes(init.body);
|
|
250
|
+
if (body && headers['content-length'] === undefined)
|
|
251
|
+
headers['content-length'] = String(body.length);
|
|
252
|
+
const host = url.hostname.replace(/^\[|\]$/g, '');
|
|
253
|
+
const pinned = addresses.length
|
|
254
|
+
? (_h, opts, cb) => {
|
|
255
|
+
if (opts && opts.all)
|
|
256
|
+
cb(null, addresses);
|
|
257
|
+
else
|
|
258
|
+
cb(null, addresses[0].address, addresses[0].family);
|
|
259
|
+
}
|
|
260
|
+
: undefined;
|
|
261
|
+
return new Promise((resolve, reject) => {
|
|
262
|
+
const req = mod.request(url, {
|
|
263
|
+
method: (init.method || 'GET').toUpperCase(),
|
|
264
|
+
headers,
|
|
265
|
+
...(pinned ? { lookup: pinned } : {}),
|
|
266
|
+
...(secure && !isIP(host) ? { servername: host } : {}),
|
|
267
|
+
agent: false,
|
|
268
|
+
}, (res) => {
|
|
269
|
+
const chunks = [];
|
|
270
|
+
res.on('data', (c) => chunks.push(c));
|
|
271
|
+
res.on('error', reject);
|
|
272
|
+
res.on('end', () => {
|
|
273
|
+
const status = res.statusCode || 0;
|
|
274
|
+
resolve(new Response(NULL_BODY.has(status) ? null : Buffer.concat(chunks), { status, statusText: res.statusMessage || '', headers: toHeaders(res.headers) }));
|
|
275
|
+
});
|
|
276
|
+
});
|
|
277
|
+
req.setTimeout(IDLE_TIMEOUT_MS, () => req.destroy(new Error(`no response from ${url.host} in ${IDLE_TIMEOUT_MS / 1000} s`)));
|
|
278
|
+
req.on('error', reject);
|
|
279
|
+
const signal = init.signal;
|
|
280
|
+
if (signal) {
|
|
281
|
+
if (signal.aborted) {
|
|
282
|
+
req.destroy(new Error('aborted'));
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
signal.addEventListener('abort', () => req.destroy(new Error('aborted')), { once: true });
|
|
286
|
+
}
|
|
287
|
+
if (body)
|
|
288
|
+
req.write(body);
|
|
289
|
+
req.end();
|
|
210
290
|
});
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
291
|
+
}
|
|
292
|
+
function pinnedRequest(url, addresses, init) {
|
|
293
|
+
return nodeRequest(url, addresses, init);
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* A request to a service the server itself is configured with: the hosted API (PINEPAPER_CLOUD_URL, which may be a
|
|
297
|
+
* local dev server) and the icon libraries' fixed hosts. Not a URL a model named, so no private-address check; it
|
|
298
|
+
* follows redirects like fetch. Kept here so the package's network access is this one file.
|
|
299
|
+
*/
|
|
300
|
+
export async function trustedFetch(input, init = {}) {
|
|
301
|
+
let url = typeof input === 'string' ? new URL(input) : input;
|
|
302
|
+
for (let hop = 0;; hop++) {
|
|
303
|
+
const res = await safeFetchDeps.trusted(url, init);
|
|
304
|
+
if (!REDIRECT.has(res.status) || init.redirect === 'manual')
|
|
305
|
+
return res;
|
|
306
|
+
const location = res.headers.get('location');
|
|
307
|
+
if (!location || hop >= MAX_REDIRECTS)
|
|
308
|
+
return res;
|
|
309
|
+
url = new URL(location, url);
|
|
219
310
|
}
|
|
220
311
|
}
|
|
221
312
|
//# sourceMappingURL=safe-fetch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-fetch.js","sourceRoot":"","sources":["../../src/utils/safe-fetch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"safe-fetch.js","sourceRoot":"","sources":["../../src/utils/safe-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,12 +49,8 @@ export function generateBrowserWindowCode(opts) {
|
|
|
49
49
|
const pillH = Math.round(headerHeight * 0.65);
|
|
50
50
|
const pillX = Math.round(cx - pillW / 2);
|
|
51
51
|
const pillY = Math.round(cy - h / 2 + (headerHeight - pillH) / 2);
|
|
52
|
-
return
|
|
53
|
-
|
|
54
|
-
var frameGroup = new paper.Group();
|
|
55
|
-
|
|
56
|
-
// Outer ambient shadow
|
|
57
|
-
${opts.dropShadow !== false ? `
|
|
52
|
+
return ("\n // Browser Window Mockup Frame\n var frameGroup = new paper.Group();\n \n // Outer ambient shadow\n " +
|
|
53
|
+
String(opts.dropShadow !== false ? `
|
|
58
54
|
var shadow = new paper.Path.Rectangle({
|
|
59
55
|
point: [${cx - w / 2 + 6}, ${cy - h / 2 + 10}],
|
|
60
56
|
size: [${w}, ${h}],
|
|
@@ -62,77 +58,89 @@ export function generateBrowserWindowCode(opts) {
|
|
|
62
58
|
fillColor: '${isDark ? "rgba(0,0,0,0.6)" : "rgba(0,0,0,0.15)"}'
|
|
63
59
|
});
|
|
64
60
|
frameGroup.addChild(shadow);
|
|
65
|
-
` : ""
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
size: [
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
fillColor: '
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
61
|
+
` : "") +
|
|
62
|
+
"\n\n // Window Main Body\n var windowBody = new paper.Path.Rectangle({\n point: [" +
|
|
63
|
+
String(cx - w / 2) +
|
|
64
|
+
", " +
|
|
65
|
+
String(cy - h / 2) +
|
|
66
|
+
"],\n size: [" +
|
|
67
|
+
String(w) +
|
|
68
|
+
", " +
|
|
69
|
+
String(h) +
|
|
70
|
+
"],\n radius: " +
|
|
71
|
+
String(radius) +
|
|
72
|
+
",\n fillColor: '" +
|
|
73
|
+
String(bgWindow) +
|
|
74
|
+
"',\n strokeColor: '" +
|
|
75
|
+
String(borderColor) +
|
|
76
|
+
"',\n strokeWidth: 1.5\n });\n frameGroup.addChild(windowBody);\n\n // Header Titlebar\n var header = new paper.Path.Rectangle({\n point: [" +
|
|
77
|
+
String(cx - w / 2) +
|
|
78
|
+
", " +
|
|
79
|
+
String(cy - h / 2) +
|
|
80
|
+
"],\n size: [" +
|
|
81
|
+
String(w) +
|
|
82
|
+
", " +
|
|
83
|
+
String(headerHeight) +
|
|
84
|
+
"],\n radius: " +
|
|
85
|
+
String(radius) +
|
|
86
|
+
",\n fillColor: '" +
|
|
87
|
+
String(bgHeader) +
|
|
88
|
+
"'\n });\n // Clip header bottom corners to keep top rounded\n var headerCut = new paper.Path.Rectangle({\n point: [" +
|
|
89
|
+
String(cx - w / 2) +
|
|
90
|
+
", " +
|
|
91
|
+
String(cy - h / 2 + headerHeight - radius) +
|
|
92
|
+
"],\n size: [" +
|
|
93
|
+
String(w) +
|
|
94
|
+
", " +
|
|
95
|
+
String(radius) +
|
|
96
|
+
"],\n fillColor: '" +
|
|
97
|
+
String(bgHeader) +
|
|
98
|
+
"'\n });\n var fullHeader = header.unite(headerCut);\n fullHeader.strokeColor = '" +
|
|
99
|
+
String(borderColor) +
|
|
100
|
+
"';\n fullHeader.strokeWidth = 1;\n frameGroup.addChild(fullHeader);\n\n // Traffic Light Window Controls\n var closeDot = new paper.Path.Circle({ center: [" +
|
|
101
|
+
String(dotStartX) +
|
|
102
|
+
", " +
|
|
103
|
+
String(dotY) +
|
|
104
|
+
"], radius: " +
|
|
105
|
+
String(dotR) +
|
|
106
|
+
", fillColor: '#ff5f56' });\n var minDot = new paper.Path.Circle({ center: [" +
|
|
107
|
+
String(dotStartX + 14) +
|
|
108
|
+
", " +
|
|
109
|
+
String(dotY) +
|
|
110
|
+
"], radius: " +
|
|
111
|
+
String(dotR) +
|
|
112
|
+
", fillColor: '#ffbd2e' });\n var maxDot = new paper.Path.Circle({ center: [" +
|
|
113
|
+
String(dotStartX + 28) +
|
|
114
|
+
", " +
|
|
115
|
+
String(dotY) +
|
|
116
|
+
"], radius: " +
|
|
117
|
+
String(dotR) +
|
|
118
|
+
", fillColor: '#27c93f' });\n \n frameGroup.addChild(closeDot);\n frameGroup.addChild(minDot);\n frameGroup.addChild(maxDot);\n\n // Address Bar Pill\n var urlPill = new paper.Path.Rectangle({\n point: [" +
|
|
119
|
+
String(pillX) +
|
|
120
|
+
", " +
|
|
121
|
+
String(pillY) +
|
|
122
|
+
"],\n size: [" +
|
|
123
|
+
String(pillW) +
|
|
124
|
+
", " +
|
|
125
|
+
String(pillH) +
|
|
126
|
+
"],\n radius: " +
|
|
127
|
+
String(pillH / 2) +
|
|
128
|
+
",\n fillColor: '" +
|
|
129
|
+
String(bgUrlBar) +
|
|
130
|
+
"',\n strokeColor: '" +
|
|
131
|
+
String(borderColor) +
|
|
132
|
+
"',\n strokeWidth: 1\n });\n frameGroup.addChild(urlPill);\n\n // SSL Lock Icon\n var lockIcon = new paper.PointText({\n point: [" +
|
|
133
|
+
String(pillX + 12) +
|
|
134
|
+
", " +
|
|
135
|
+
String(pillY + pillH / 2 + 4) +
|
|
136
|
+
"],\n content: '🔒',\n fontSize: 10,\n fillColor: '" +
|
|
137
|
+
String(textUrl) +
|
|
138
|
+
"'\n });\n frameGroup.addChild(lockIcon);\n\n // Address Bar Text\n var urlText = new paper.PointText({\n point: [" +
|
|
139
|
+
String(pillX + 28) +
|
|
140
|
+
", " +
|
|
141
|
+
String(pillY + pillH / 2 + 4) +
|
|
142
|
+
"],\n content: " +
|
|
143
|
+
String(lit(urlDisplay)) + ",\n fontFamily: 'Inter, system-ui, sans-serif',\n fontSize: 12,\n fontWeight: 'normal',\n fillColor: '" + String(textUrl) + "'\n });\n frameGroup.addChild(urlText);\n ");
|
|
136
144
|
}
|
|
137
145
|
/**
|
|
138
146
|
* Generates Paper.js code for a simulated interactive prompt input box.
|
|
@@ -150,55 +158,52 @@ export function generateSimulatedPromptInputCode(opts) {
|
|
|
150
158
|
// Submit / Generate Button Pill
|
|
151
159
|
const btnH = Math.round(h * 0.72);
|
|
152
160
|
const btnFontSize = Math.max(12, Math.round(btnH * 0.38));
|
|
153
|
-
return
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
radius:
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
size: [
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
// Prompt Prefix Icon
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
fontFamily: 'system-ui'
|
|
184
|
-
|
|
185
|
-
fillColor: '
|
|
186
|
-
|
|
187
|
-
promptGroup.addChild(sparkleIcon)
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
fontFamily: 'Inter, -apple-system, sans-serif'
|
|
194
|
-
|
|
195
|
-
fontWeight: '500'
|
|
196
|
-
|
|
197
|
-
})
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
// Blinking Caret Cursor
|
|
201
|
-
${opts.showCursor !== false ? `
|
|
161
|
+
return ("\n // Simulated Interactive Prompt Bar\n var promptGroup = new paper.Group();\n\n // Outer glowing aura\n var glow = new paper.Path.Rectangle({\n point: [" +
|
|
162
|
+
String(x - 2) +
|
|
163
|
+
", " +
|
|
164
|
+
String(y - 2) +
|
|
165
|
+
"],\n size: [" +
|
|
166
|
+
String(w + 4) +
|
|
167
|
+
", " +
|
|
168
|
+
String(h + 4) +
|
|
169
|
+
"],\n radius: " +
|
|
170
|
+
String(Math.round(h * 0.35) + 2) +
|
|
171
|
+
",\n fillColor: '" +
|
|
172
|
+
String(accent) +
|
|
173
|
+
"22',\n strokeColor: '" +
|
|
174
|
+
String(accent) +
|
|
175
|
+
"55',\n strokeWidth: 1.5\n });\n promptGroup.addChild(glow);\n\n // Input background container\n var inputBg = new paper.Path.Rectangle({\n point: [" +
|
|
176
|
+
String(x) +
|
|
177
|
+
", " +
|
|
178
|
+
String(y) +
|
|
179
|
+
"],\n size: [" +
|
|
180
|
+
String(w) +
|
|
181
|
+
", " +
|
|
182
|
+
String(h) +
|
|
183
|
+
"],\n radius: " +
|
|
184
|
+
String(Math.round(h * 0.35)) +
|
|
185
|
+
",\n fillColor: '#090d13',\n strokeColor: '" +
|
|
186
|
+
String(accent) +
|
|
187
|
+
"',\n strokeWidth: 1.5\n });\n promptGroup.addChild(inputBg);\n\n // Prompt Prefix Icon\n var sparkleIcon = new paper.PointText({\n point: [" +
|
|
188
|
+
String(x + 18) +
|
|
189
|
+
", " +
|
|
190
|
+
String(y + h / 2 + 5) +
|
|
191
|
+
"],\n content: '✦',\n fontFamily: 'system-ui',\n fontSize: " +
|
|
192
|
+
String(Math.max(14, Math.round(h * 0.32))) +
|
|
193
|
+
",\n fillColor: '" +
|
|
194
|
+
String(accent) +
|
|
195
|
+
"'\n });\n promptGroup.addChild(sparkleIcon);\n\n // Prompt Text Content\n var promptContent = new paper.PointText({\n point: [" +
|
|
196
|
+
String(x + 44) +
|
|
197
|
+
", " +
|
|
198
|
+
String(y + h / 2 + 5) +
|
|
199
|
+
"],\n content: " +
|
|
200
|
+
String(lit(text)) +
|
|
201
|
+
",\n fontFamily: 'Inter, -apple-system, sans-serif',\n fontSize: " +
|
|
202
|
+
String(Math.max(13, Math.round(h * 0.28))) +
|
|
203
|
+
",\n fontWeight: '500',\n fillColor: '" +
|
|
204
|
+
String(textColor) +
|
|
205
|
+
"'\n });\n promptGroup.addChild(promptContent);\n\n // Blinking Caret Cursor\n " +
|
|
206
|
+
String(opts.showCursor !== false ? `
|
|
202
207
|
var textBounds = promptContent.bounds;
|
|
203
208
|
var caret = new paper.Path.Line({
|
|
204
209
|
from: [textBounds.right + 3, ${y + h * 0.25}],
|
|
@@ -207,33 +212,45 @@ export function generateSimulatedPromptInputCode(opts) {
|
|
|
207
212
|
strokeWidth: 2
|
|
208
213
|
});
|
|
209
214
|
promptGroup.addChild(caret);
|
|
210
|
-
` : ""
|
|
215
|
+
` : "") +
|
|
216
|
+
"\n\n // Submit / Generate Button Pill\n var btnW = " +
|
|
217
|
+
String(Math.max(90, Math.round(w * 0.18))) +
|
|
218
|
+
";\n var btnH = " +
|
|
219
|
+
String(btnH) +
|
|
220
|
+
";\n var btnX = " +
|
|
221
|
+
String(x + w) +
|
|
222
|
+
" - btnW - " +
|
|
223
|
+
String(Math.round(h * 0.14)) +
|
|
224
|
+
";\n var btnY = " +
|
|
225
|
+
String(y) +
|
|
226
|
+
" + (" +
|
|
227
|
+
String(h) +
|
|
228
|
+
" - btnH) / 2;\n\n var submitBtn = new paper.Path.Rectangle({\n point: [btnX, btnY],\n size: [btnW, btnH],\n radius: btnH / 2,\n fillColor: '" +
|
|
229
|
+
String(accent) +
|
|
230
|
+
"'\n });\n promptGroup.addChild(submitBtn);\n\n var btnLabel = new paper.PointText({\n point: [btnX + btnW / 2, btnY + btnH / 2 + 4],\n content: " +
|
|
231
|
+
String(lit(btnText)) +
|
|
232
|
+
",\n fontFamily: 'Inter, system-ui, sans-serif',\n fontSize: " +
|
|
233
|
+
String(btnFontSize) +
|
|
234
|
+
",\n fontWeight: 'bold',\n fillColor: '#090d13',\n justification: 'center'\n });\n promptGroup.addChild(btnLabel);\n "
|
|
211
235
|
|
|
212
|
-
// Submit / Generate Button Pill
|
|
213
|
-
var btnW = ${Math.max(90, Math.round(w * 0.18))};
|
|
214
|
-
var btnH = ${btnH};
|
|
215
|
-
var btnX = ${x + w} - btnW - ${Math.round(h * 0.14)};
|
|
216
|
-
var btnY = ${y} + (${h} - btnH) / 2;
|
|
217
236
|
|
|
218
|
-
var submitBtn = new paper.Path.Rectangle({
|
|
219
|
-
point: [btnX, btnY],
|
|
220
|
-
size: [btnW, btnH],
|
|
221
|
-
radius: btnH / 2,
|
|
222
|
-
fillColor: '${accent}'
|
|
223
|
-
});
|
|
224
|
-
promptGroup.addChild(submitBtn);
|
|
225
237
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
);
|
|
237
254
|
}
|
|
238
255
|
/**
|
|
239
256
|
* Generates Paper.js code for an animated cursor with optional click pulse.
|