@pinepaper.studio/mcp-server 1.6.27 → 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 +112 -2
- package/SECURITY.md +6 -6
- 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.d.ts.map +1 -1
- package/dist/index.js +5563 -5560
- package/dist/index.js.map +1 -1
- package/dist/ontology/upstream-vocabulary.d.ts +2 -2
- package/dist/ontology/upstream-vocabulary.js +6 -6
- package/dist/tools/choreograph.d.ts.map +1 -1
- package/dist/tools/choreograph.js +7 -0
- package/dist/tools/choreograph.js.map +1 -1
- package/dist/tools/craft-tools.js +18 -18
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +2830 -2812
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/effect-check.js +68 -68
- package/dist/tools/engine-lists.d.ts +11 -4
- package/dist/tools/engine-lists.d.ts.map +1 -1
- package/dist/tools/engine-lists.js +49 -4
- package/dist/tools/engine-lists.js.map +1 -1
- package/dist/tools/engine-methods.d.ts.map +1 -1
- package/dist/tools/engine-methods.js +2 -1
- package/dist/tools/engine-methods.js.map +1 -1
- package/dist/tools/engine-surface.d.ts +1 -1
- package/dist/tools/engine-surface.d.ts.map +1 -1
- package/dist/tools/engine-surface.js +16 -4
- package/dist/tools/engine-surface.js.map +1 -1
- package/dist/tools/export-file-receipt.d.ts +21 -0
- package/dist/tools/export-file-receipt.d.ts.map +1 -1
- package/dist/tools/export-file-receipt.js +36 -13
- package/dist/tools/export-file-receipt.js.map +1 -1
- package/dist/tools/handlers/export.d.ts.map +1 -1
- package/dist/tools/handlers/export.js +6 -2
- package/dist/tools/handlers/export.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 +4 -3
- package/dist/tools/handlers/generate.js.map +1 -1
- package/dist/tools/handlers.d.ts +5 -0
- package/dist/tools/handlers.d.ts.map +1 -1
- package/dist/tools/handlers.js +29 -16
- package/dist/tools/handlers.js.map +1 -1
- package/dist/tools/lane.d.ts +7 -3
- package/dist/tools/lane.d.ts.map +1 -1
- package/dist/tools/lane.js +82 -67
- package/dist/tools/lane.js.map +1 -1
- package/dist/tools/p5-compat/p5-helpers.js +341 -341
- package/dist/tools/scene-cache-export.d.ts.map +1 -1
- package/dist/tools/scene-cache-export.js +8 -4
- package/dist/tools/scene-cache-export.js.map +1 -1
- package/dist/tools/shape-params.d.ts +2 -2
- package/dist/tools/shape-params.js +2 -2
- package/dist/tools/stick-vocabulary.d.ts +1 -1
- package/dist/tools/stick-vocabulary.js +1 -1
- package/dist/tools/timeline.js +82 -82
- package/dist/tools/toolkits.d.ts +1 -1
- package/dist/tools/toolkits.d.ts.map +1 -1
- package/dist/tools/toolkits.js +8 -2
- package/dist/tools/toolkits.js.map +1 -1
- package/dist/types/code-generator.d.ts.map +1 -1
- package/dist/types/code-generator.js +6682 -5832
- package/dist/types/code-generator.js.map +1 -1
- package/dist/types/schemas.d.ts +29 -2
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +9 -23
- package/dist/types/schemas.js.map +1 -1
- package/dist/utils/asset-paths.d.ts.map +1 -1
- package/dist/utils/asset-paths.js +11 -0
- package/dist/utils/asset-paths.js.map +1 -1
- package/dist/utils/capabilities.d.ts +15 -0
- package/dist/utils/capabilities.d.ts.map +1 -0
- package/dist/utils/capabilities.js +63 -0
- package/dist/utils/capabilities.js.map +1 -0
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/env.js +2 -1
- package/dist/utils/env.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 +18 -2
- package/package.json +7 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-paths.d.ts","sourceRoot":"","sources":["../../src/utils/asset-paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"asset-paths.d.ts","sourceRoot":"","sources":["../../src/utils/asset-paths.ts"],"names":[],"mappings":"AAgCA,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAM3D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAkBlG"}
|
|
@@ -13,11 +13,18 @@
|
|
|
13
13
|
* The export folder is allowed because the server's own results point into
|
|
14
14
|
* it: brand_kit from_url saves the logo there and says to import it with
|
|
15
15
|
* pinepaper_import_image. Refusing that would break the tool's own advice.
|
|
16
|
+
*
|
|
17
|
+
* OFF BY DEFAULT OUTSIDE THE EXPORT FOLDER (1.6.28): reading the working
|
|
18
|
+
* directory or PINEPAPER_ASSET_DIRS needs PINEPAPER_ALLOW_LOCAL_FILES=1
|
|
19
|
+
* (utils/capabilities.ts). The export folder holds the server's own results
|
|
20
|
+
* (a saved scene, a brand_kit logo), so it is read without the switch, and a
|
|
21
|
+
* save / restore round trip keeps working.
|
|
16
22
|
*/
|
|
17
23
|
import { realpath } from 'node:fs/promises';
|
|
18
24
|
import { basename, delimiter, dirname, join, resolve, sep } from 'node:path';
|
|
19
25
|
import { env } from './env.js';
|
|
20
26
|
import { getExportDir } from './export-dir.js';
|
|
27
|
+
import { capabilityAllowed, capabilityRefusal } from './capabilities.js';
|
|
21
28
|
async function real(p) {
|
|
22
29
|
try {
|
|
23
30
|
return await realpath(p);
|
|
@@ -28,6 +35,8 @@ async function real(p) {
|
|
|
28
35
|
}
|
|
29
36
|
export async function allowedAssetRoots() {
|
|
30
37
|
const exportDir = getExportDir();
|
|
38
|
+
if (!capabilityAllowed('localFiles'))
|
|
39
|
+
return [...new Set([await real(resolve(exportDir))].filter((r) => r !== null))];
|
|
31
40
|
const entries = [process.cwd(), exportDir, ...(env('PINEPAPER_ASSET_DIRS') ?? '').split(delimiter).filter(Boolean)];
|
|
32
41
|
const roots = await Promise.all(entries.map((e) => real(resolve(e))));
|
|
33
42
|
return [...new Set(roots.filter((r) => r !== null))];
|
|
@@ -59,6 +68,8 @@ export async function confineAssetPath(path) {
|
|
|
59
68
|
return outside(path, dirname(target));
|
|
60
69
|
}
|
|
61
70
|
function outside(path, folder) {
|
|
71
|
+
if (!capabilityAllowed('localFiles'))
|
|
72
|
+
return { error: capabilityRefusal('localFiles', `Importing "${path}"`) + ` (Files in the export folder, ${getExportDir()}, are read without it.)` };
|
|
62
73
|
return {
|
|
63
74
|
error: `"${path}" is outside the allowed folders (cwd, the export folder, PINEPAPER_ASSET_DIRS). `
|
|
64
75
|
+ `Add its folder (${folder}) to PINEPAPER_ASSET_DIRS to import it.`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-paths.js","sourceRoot":"","sources":["../../src/utils/asset-paths.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"asset-paths.js","sourceRoot":"","sources":["../../src/utils/asset-paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type Capability = 'code' | 'localFiles';
|
|
2
|
+
export declare const CAPABILITY_SWITCH: Readonly<Record<Capability, string>>;
|
|
3
|
+
/** Turn a capability on or off for this process; undefined goes back to the environment. */
|
|
4
|
+
export declare function setCapability(capability: Capability, on: boolean | undefined): void;
|
|
5
|
+
export declare function capabilityAllowed(capability: Capability): boolean;
|
|
6
|
+
/** The tools behind PINEPAPER_ALLOW_CODE, as the notice and the docs name them. */
|
|
7
|
+
export declare const CODE_GATED_TOOLS: readonly string[];
|
|
8
|
+
/** The refusal for a call that needs a capability that is off: what was refused, and the switch that allows it. */
|
|
9
|
+
export declare function capabilityRefusal(capability: Capability, what: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* What an agent reads on connect (the server's instructions), so it knows before its first call which tools are
|
|
12
|
+
* behind a switch, whether this server has them on, and that turning them on is the user's decision, not a tool's.
|
|
13
|
+
*/
|
|
14
|
+
export declare function securityBoundaryNotice(): string;
|
|
15
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/utils/capabilities.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,YAAY,CAAC;AAE/C,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAGjE,CAAC;AAIH,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAGnF;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAKjE;AAED,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,mBAM3B,CAAC;AAIH,mHAAmH;AACnH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAM/C"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The high-impact capabilities, OFF unless the person running the server turns them on.
|
|
3
|
+
*
|
|
4
|
+
* - code: run JavaScript the caller wrote, in the studio page. pinepaper_execute_custom_code, pinepaper_p5_draw,
|
|
5
|
+
* pinepaper_render_hook (register), pinepaper_register_custom_relation (its compute / apply are JS), and
|
|
6
|
+
* pinepaper_import_scene's registerCustomRelations (a file's saved compute / apply). PINEPAPER_ALLOW_CODE=1.
|
|
7
|
+
* - localFiles: read a file from this machine's disk for an import (image, audio / video, a saved scene), inside
|
|
8
|
+
* the allowed folders (cwd, the export folder, PINEPAPER_ASSET_DIRS). PINEPAPER_ALLOW_LOCAL_FILES=1. The server's
|
|
9
|
+
* own exports stay readable without it, and URL imports are not affected (they go through safe-fetch).
|
|
10
|
+
*
|
|
11
|
+
* WHY OFF. An MCP server takes its arguments from a model, and a model takes its instructions from whatever it reads:
|
|
12
|
+
* a web page, a document, a scene file. Each of these turns such text into code running in the studio, or into the
|
|
13
|
+
* contents of a file on disk. The person who starts the server decides whether that is wanted; a refusal names the
|
|
14
|
+
* switch, so it is one step to turn on. An embedder (a Worker with no environment) sets them with setCapability.
|
|
15
|
+
*/
|
|
16
|
+
import { env } from './env.js';
|
|
17
|
+
export const CAPABILITY_SWITCH = Object.freeze({
|
|
18
|
+
code: 'PINEPAPER_ALLOW_CODE',
|
|
19
|
+
localFiles: 'PINEPAPER_ALLOW_LOCAL_FILES',
|
|
20
|
+
});
|
|
21
|
+
const overrides = {};
|
|
22
|
+
/** Turn a capability on or off for this process; undefined goes back to the environment. */
|
|
23
|
+
export function setCapability(capability, on) {
|
|
24
|
+
if (on === undefined)
|
|
25
|
+
delete overrides[capability];
|
|
26
|
+
else
|
|
27
|
+
overrides[capability] = on;
|
|
28
|
+
}
|
|
29
|
+
export function capabilityAllowed(capability) {
|
|
30
|
+
const set = overrides[capability];
|
|
31
|
+
if (set !== undefined)
|
|
32
|
+
return set;
|
|
33
|
+
const v = (env(CAPABILITY_SWITCH[capability]) ?? '').trim().toLowerCase();
|
|
34
|
+
return v === '1' || v === 'true' || v === 'yes' || v === 'on';
|
|
35
|
+
}
|
|
36
|
+
/** The tools behind PINEPAPER_ALLOW_CODE, as the notice and the docs name them. */
|
|
37
|
+
export const CODE_GATED_TOOLS = Object.freeze([
|
|
38
|
+
'pinepaper_execute_custom_code',
|
|
39
|
+
'pinepaper_p5_draw',
|
|
40
|
+
'pinepaper_render_hook (register)',
|
|
41
|
+
'pinepaper_register_custom_relation',
|
|
42
|
+
'pinepaper_import_scene (registerCustomRelations)',
|
|
43
|
+
]);
|
|
44
|
+
const HOW_TO_ENABLE = 'The person running the server enables it: add it to this server\'s "env" in their MCP client config, or tick the setting in the Claude Desktop extension, then restart the server. No tool call can change it.';
|
|
45
|
+
/** The refusal for a call that needs a capability that is off: what was refused, and the switch that allows it. */
|
|
46
|
+
export function capabilityRefusal(capability, what) {
|
|
47
|
+
const name = CAPABILITY_SWITCH[capability];
|
|
48
|
+
return capability === 'code'
|
|
49
|
+
? `SECURITY BOUNDARY: ${what} runs JavaScript in the studio, which is off unless the server is started with ${name}=1. Nothing was run. ${HOW_TO_ENABLE} Until then, use the built-in tools (shapes, keyframes, relations such as time_expression, generators, patterns).`
|
|
50
|
+
: `SECURITY BOUNDARY: ${what} reads a file from this machine's disk, which is off unless the server is started with ${name}=1. ${HOW_TO_ENABLE} Until then, pass an http(s) URL, or a file in the export folder.`;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* What an agent reads on connect (the server's instructions), so it knows before its first call which tools are
|
|
54
|
+
* behind a switch, whether this server has them on, and that turning them on is the user's decision, not a tool's.
|
|
55
|
+
*/
|
|
56
|
+
export function securityBoundaryNotice() {
|
|
57
|
+
const on = (c) => (capabilityAllowed(c) ? 'ON' : 'OFF');
|
|
58
|
+
return `SECURITY BOUNDARY (set by the person running this server; no tool call can change it):
|
|
59
|
+
- Running JavaScript you write is ${on('code')} on this server (${CAPABILITY_SWITCH.code}=1 turns it on): ${CODE_GATED_TOOLS.join(', ')}.
|
|
60
|
+
- Reading files from disk outside the export folder is ${on('localFiles')} (${CAPABILITY_SWITCH.localFiles}=1 turns it on). URLs and the export folder always work.
|
|
61
|
+
When a switch is OFF, build with the other tools. If the user needs one of these, tell them which switch to set in their MCP client config (or the Claude Desktop extension's settings) and to restart the server; do not retry the call.`;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/utils/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAI/B,MAAM,CAAC,MAAM,iBAAiB,GAAyC,MAAM,CAAC,MAAM,CAAC;IACnF,IAAI,EAAE,sBAAsB;IAC5B,UAAU,EAAE,6BAA6B;CAC1C,CAAC,CAAC;AAEH,MAAM,SAAS,GAAyC,EAAE,CAAC;AAE3D,4FAA4F;AAC5F,MAAM,UAAU,aAAa,CAAC,UAAsB,EAAE,EAAuB;IAC3E,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;;QAC9C,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAsB;IACtD,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1E,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC;AAChE,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5C,+BAA+B;IAC/B,mBAAmB;IACnB,kCAAkC;IAClC,oCAAoC;IACpC,kDAAkD;CACnD,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,gNAAgN,CAAC;AAEvO,mHAAmH;AACnH,MAAM,UAAU,iBAAiB,CAAC,UAAsB,EAAE,IAAY;IACpE,MAAM,IAAI,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,UAAU,KAAK,MAAM;QAC1B,CAAC,CAAC,sBAAsB,IAAI,kFAAkF,IAAI,wBAAwB,aAAa,mHAAmH;QAC1Q,CAAC,CAAC,sBAAsB,IAAI,0FAA0F,IAAI,OAAO,aAAa,mEAAmE,CAAC;AACtN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,EAAE,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACpE,OAAO;oCAC2B,EAAE,CAAC,MAAM,CAAC,oBAAoB,iBAAiB,CAAC,IAAI,oBAAoB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;yDAC9E,EAAE,CAAC,YAAY,CAAC,KAAK,iBAAiB,CAAC,UAAU;0OACgI,CAAC;AAC3O,CAAC"}
|
package/dist/utils/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGpD"}
|
package/dist/utils/env.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* reader: it is bundled on its own and takes no relative imports.
|
|
7
7
|
*/
|
|
8
8
|
export function env(name) {
|
|
9
|
-
|
|
9
|
+
// A Worker build (mcp-cloud) may have no process at all.
|
|
10
|
+
return typeof process !== 'undefined' && process.env ? process.env[name] : undefined;
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=env.js.map
|
package/dist/utils/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,CAAC,IAAY;IAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,CAAC,IAAY;IAC9B,yDAAyD;IACzD,OAAO,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvF,CAAC"}
|
|
@@ -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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"}
|