@promptframe/contracts 0.1.8 → 0.1.11

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 CHANGED
@@ -10,3 +10,15 @@ Key public exports:
10
10
  - `authoringStandardFreshnessDecisionSchema`: shared shape for local tooling and platform admission to explain whether an authoring package is current, warning-only, upload-blocking, or security-breaking.
11
11
  - `authoringUploadTargetSchema`: public upload lanes for `marketplace_authoring` and `project_private_generation`.
12
12
  - `componentReusabilityScoreSchema`: shared shape for deterministic component reuse diagnostics emitted by local CLI checks and platform admission.
13
+ - `PROMPTFRAME_PUBLIC_SECURITY_POLICY_DIGEST`: deterministic release-cohort fingerprint for the public security policy.
14
+ - `@promptframe/contracts/security-evaluator`: AST-aware evaluator for JS / TS / TSX source diagnostics.
15
+
16
+ ## Public Security Policy
17
+
18
+ `PROMPTFRAME_PUBLIC_SECURITY_POLICY` is the public author-facing rule catalog used by CLI diagnostics. It intentionally describes the behavior an external component author must avoid, not PromptFrame platform internals.
19
+
20
+ High-risk browser/runtime capabilities are rejected locally when they are statically visible, including BroadcastChannel, WebRTC / RTCPeerConnection, Notification, Service Worker, clipboard access, navigator.locks, AudioContext / AudioWorklet, CSS.registerProperty, DOM Observer APIs, Remotion delayRender, and dynamic import. Fps hardcoded timing is warning-first under `runtime.deterministic.fps_hardcoded_timing`; it reports timing literals in Remotion contexts while allowing local validation to proceed.
21
+
22
+ Each public rule exposes a stable `id`, severity, category, action, pattern set, optional AST matcher metadata, human reason, recommendation, optional `repairHint`, and documentation path so local CLI output, GitHub annotations, and platform admission can refer to the same author-facing diagnostic family.
23
+
24
+ The security evaluator subpath parses JS / TS / TSX source with the TypeScript compiler API, so comments, strings, and harmless local identifiers do not trigger the same diagnostics as real browser capability access. Regex patterns remain as compatibility and metadata fallback, not the preferred source-code admission path.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ export { COMPONENT_SECURITY_POLICY_DIGEST_VERSION, canonicalizePromptFramePolicy, createPromptFramePublicSecurityPolicyDigest, } from './security-policy-fingerprint.js';
2
3
  export declare const PROMPTFRAME_CONTRACTS_VERSION: "promptframe-contracts.v0.1.0";
3
4
  export declare const COMPONENT_MANIFEST_SCHEMA_VERSION: "component-manifest.v0.1.0";
4
5
  export declare const COMPONENT_STANDARD_VERSION: "component-standard.v0.1.0";
@@ -75,6 +76,9 @@ export declare const PROMPTFRAME_PUBLIC_SECURITY_POLICY: {
75
76
  readonly id: "code.eval";
76
77
  readonly label: "Dynamic code execution";
77
78
  readonly patterns: readonly ["\\beval\\s*\\("];
79
+ readonly astMatchers: {
80
+ readonly globals: readonly ["eval"];
81
+ };
78
82
  readonly action: "reject";
79
83
  readonly category: "dynamic_code_execution";
80
84
  readonly severity: "high";
@@ -84,6 +88,9 @@ export declare const PROMPTFRAME_PUBLIC_SECURITY_POLICY: {
84
88
  readonly id: "code.new_function";
85
89
  readonly label: "new Function dynamic execution";
86
90
  readonly patterns: readonly ["\\bnew\\s+Function\\s*\\("];
91
+ readonly astMatchers: {
92
+ readonly globals: readonly ["Function"];
93
+ };
87
94
  readonly action: "reject";
88
95
  readonly category: "dynamic_code_execution";
89
96
  readonly severity: "high";
@@ -93,25 +100,183 @@ export declare const PROMPTFRAME_PUBLIC_SECURITY_POLICY: {
93
100
  readonly id: "code.string_timer";
94
101
  readonly label: "String timer execution";
95
102
  readonly patterns: readonly ["\\bset(?:Timeout|Interval)\\s*\\(\\s*['\"`]"];
103
+ readonly astMatchers: {
104
+ readonly stringTimer: true;
105
+ };
96
106
  readonly action: "reject";
97
107
  readonly category: "dynamic_code_execution";
98
108
  readonly severity: "high";
99
109
  readonly reason: "String timers are equivalent to dynamic code execution.";
100
110
  readonly recommendation: "Do not pass strings to setTimeout or setInterval.";
111
+ }, {
112
+ readonly id: "code.dynamic_import";
113
+ readonly label: "Dynamic import loading";
114
+ readonly patterns: readonly ["\\bimport\\s*\\("];
115
+ readonly astMatchers: {
116
+ readonly dynamicImport: true;
117
+ };
118
+ readonly action: "reject";
119
+ readonly category: "dynamic_code_execution";
120
+ readonly severity: "high";
121
+ readonly reason: "Third-party components cannot dynamically load code at preview or render time.";
122
+ readonly recommendation: "Use static imports that are visible to the authoring build and security checks.";
123
+ readonly docsPath: "/docs/component-authoring/security#code-dynamic-import";
101
124
  }, {
102
125
  readonly id: "host.fs_process_env";
103
126
  readonly label: "Host filesystem, process, or env access";
104
127
  readonly patterns: readonly ["\\b(node:fs|fs\\/promises|child_process|process\\.env|Bun\\.|Deno\\.)\\b"];
128
+ readonly astMatchers: {
129
+ readonly globals: readonly ["Bun", "Deno"];
130
+ readonly memberPaths: readonly ["process.env", "Bun", "Deno"];
131
+ };
105
132
  readonly action: "reject";
106
133
  readonly category: "filesystem_process_env_access";
107
134
  readonly severity: "critical";
108
135
  readonly reason: "Components must not read host files, spawn processes, or access environment variables.";
109
136
  readonly recommendation: "Use only platform-provided props and trusted artifacts.";
137
+ }, {
138
+ readonly id: "browser.broadcast_channel";
139
+ readonly label: "BroadcastChannel cross-context messaging";
140
+ readonly patterns: readonly ["\\bnew\\s+BroadcastChannel\\b|\\bBroadcastChannel\\s*\\("];
141
+ readonly astMatchers: {
142
+ readonly globals: readonly ["BroadcastChannel"];
143
+ readonly memberPaths: readonly ["window.BroadcastChannel", "globalThis.BroadcastChannel"];
144
+ };
145
+ readonly action: "reject";
146
+ readonly category: "browser_capability";
147
+ readonly severity: "high";
148
+ readonly reason: "Third-party components cannot open cross-tab or cross-context messaging channels.";
149
+ readonly recommendation: "Remove BroadcastChannel. Use explicit component props or platform-provided data instead.";
150
+ readonly docsPath: "/docs/component-authoring/security#browser-broadcast-channel";
151
+ }, {
152
+ readonly id: "browser.webrtc";
153
+ readonly label: "WebRTC / RTCPeerConnection access";
154
+ readonly patterns: readonly ["\\bnew\\s+RTCPeerConnection\\b|\\bRTCPeerConnection\\s*\\(|navigator\\.mediaDevices\\.getUserMedia\\s*\\("];
155
+ readonly astMatchers: {
156
+ readonly globals: readonly ["RTCPeerConnection"];
157
+ readonly memberPaths: readonly ["navigator.mediaDevices.getUserMedia"];
158
+ };
159
+ readonly action: "reject";
160
+ readonly category: "browser_capability";
161
+ readonly severity: "high";
162
+ readonly reason: "Third-party components cannot open peer connections or capture local media devices.";
163
+ readonly recommendation: "Remove WebRTC and media device access. Use platform-provided assets or props.";
164
+ readonly docsPath: "/docs/component-authoring/security#browser-webrtc";
165
+ }, {
166
+ readonly id: "browser.notification";
167
+ readonly label: "Notification permission or display";
168
+ readonly patterns: readonly ["\\bnew\\s+Notification\\b|\\bNotification\\s*\\(|Notification\\.requestPermission\\s*\\("];
169
+ readonly astMatchers: {
170
+ readonly globals: readonly ["Notification"];
171
+ readonly memberPaths: readonly ["Notification.requestPermission", "window.Notification", "globalThis.Notification"];
172
+ };
173
+ readonly action: "reject";
174
+ readonly category: "browser_capability";
175
+ readonly severity: "high";
176
+ readonly reason: "Third-party components cannot request browser notification permissions or show notifications.";
177
+ readonly recommendation: "Remove Notification usage and express state inside the rendered component.";
178
+ readonly docsPath: "/docs/component-authoring/security#browser-notification";
179
+ }, {
180
+ readonly id: "browser.service_worker";
181
+ readonly label: "Service Worker registration";
182
+ readonly patterns: readonly ["navigator\\.serviceWorker\\b|\\bServiceWorker(?:Registration|Container)?\\b"];
183
+ readonly astMatchers: {
184
+ readonly memberPaths: readonly ["navigator.serviceWorker"];
185
+ };
186
+ readonly action: "reject";
187
+ readonly category: "browser_capability";
188
+ readonly severity: "high";
189
+ readonly reason: "Third-party components cannot register or control Service Worker lifecycle.";
190
+ readonly recommendation: "Remove Service Worker usage. Component code must stay inside the platform render boundary.";
191
+ readonly docsPath: "/docs/component-authoring/security#browser-service-worker";
192
+ }, {
193
+ readonly id: "browser.clipboard";
194
+ readonly label: "Clipboard access";
195
+ readonly patterns: readonly ["navigator\\.clipboard\\b|document\\.execCommand\\s*\\(\\s*['\"`](?:copy|cut|paste)['\"`]"];
196
+ readonly astMatchers: {
197
+ readonly memberPaths: readonly ["navigator.clipboard", "document.execCommand"];
198
+ };
199
+ readonly action: "reject";
200
+ readonly category: "browser_capability";
201
+ readonly severity: "high";
202
+ readonly reason: "Third-party components cannot read from or write to the user clipboard.";
203
+ readonly recommendation: "Remove clipboard calls and use explicit props or platform actions outside the component.";
204
+ readonly docsPath: "/docs/component-authoring/security#browser-clipboard";
205
+ }, {
206
+ readonly id: "browser.navigator_locks";
207
+ readonly label: "Navigator locks API";
208
+ readonly patterns: readonly ["navigator\\.locks\\b"];
209
+ readonly astMatchers: {
210
+ readonly memberPaths: readonly ["navigator.locks"];
211
+ };
212
+ readonly action: "reject";
213
+ readonly category: "browser_capability";
214
+ readonly severity: "high";
215
+ readonly reason: "Third-party components cannot acquire browser-level execution locks.";
216
+ readonly recommendation: "Remove navigator.locks usage and keep component logic frame-driven and deterministic.";
217
+ readonly docsPath: "/docs/component-authoring/security#browser-navigator-locks";
218
+ }, {
219
+ readonly id: "browser.audio_context";
220
+ readonly label: "AudioContext / AudioWorklet access";
221
+ readonly patterns: readonly ["\\bnew\\s+(?:AudioContext|webkitAudioContext)\\b|\\b(?:AudioContext|webkitAudioContext)\\s*\\(|\\bAudioWorklet\\b|\\.audioWorklet\\b"];
222
+ readonly astMatchers: {
223
+ readonly globals: readonly ["AudioContext", "webkitAudioContext", "AudioWorklet"];
224
+ readonly memberPaths: readonly ["window.AudioContext", "window.webkitAudioContext", "globalThis.AudioContext", "globalThis.webkitAudioContext"];
225
+ };
226
+ readonly action: "reject";
227
+ readonly category: "browser_capability";
228
+ readonly severity: "high";
229
+ readonly reason: "Third-party components cannot create browser audio processing contexts or AudioWorklet code.";
230
+ readonly recommendation: "Use platform-provided audio assets and frame-driven visualizers instead.";
231
+ readonly docsPath: "/docs/component-authoring/security#browser-audio-context";
232
+ }, {
233
+ readonly id: "browser.css_register_property";
234
+ readonly label: "CSS.registerProperty / CSS Houdini access";
235
+ readonly patterns: readonly ["CSS\\.registerProperty\\s*\\("];
236
+ readonly astMatchers: {
237
+ readonly memberPaths: readonly ["CSS.registerProperty"];
238
+ };
239
+ readonly action: "reject";
240
+ readonly category: "browser_capability";
241
+ readonly severity: "high";
242
+ readonly reason: "Third-party components cannot register global CSS Houdini properties.";
243
+ readonly recommendation: "Use component-local style props and ordinary frame-driven React styles.";
244
+ readonly docsPath: "/docs/component-authoring/security#browser-css-register-property";
245
+ }, {
246
+ readonly id: "browser.observer_abuse";
247
+ readonly label: "DOM Observer capability";
248
+ readonly patterns: readonly ["\\bnew\\s+(?:MutationObserver|ResizeObserver|IntersectionObserver)\\b|\\b(?:MutationObserver|ResizeObserver|IntersectionObserver)\\s*\\("];
249
+ readonly astMatchers: {
250
+ readonly globals: readonly ["MutationObserver", "ResizeObserver", "IntersectionObserver"];
251
+ };
252
+ readonly action: "reject";
253
+ readonly category: "browser_capability";
254
+ readonly severity: "high";
255
+ readonly reason: "Third-party components cannot observe host DOM or runtime boundaries.";
256
+ readonly recommendation: "Use explicit props, layout inputs, and deterministic frame data instead of Observer APIs.";
257
+ readonly docsPath: "/docs/component-authoring/security#browser-observer-abuse";
258
+ }, {
259
+ readonly id: "remotion.delay_render";
260
+ readonly label: "Remotion delayRender lifecycle control";
261
+ readonly patterns: readonly ["\\bdelayRender\\s*\\("];
262
+ readonly astMatchers: {
263
+ readonly globals: readonly ["delayRender"];
264
+ };
265
+ readonly action: "reject";
266
+ readonly category: "remotion_lifecycle";
267
+ readonly severity: "high";
268
+ readonly reason: "Third-party components cannot delay platform preview or render lifecycle from component code.";
269
+ readonly recommendation: "Resolve assets before rendering and pass ready data through component props.";
270
+ readonly docsPath: "/docs/component-authoring/security#remotion-delay-render";
110
271
  }];
111
272
  readonly mediatedApis: readonly [{
112
273
  readonly id: "network.raw_fetch";
113
274
  readonly label: "Raw network access";
114
275
  readonly rawApis: readonly ["fetch", "XMLHttpRequest", "WebSocket", "EventSource", "navigator.sendBeacon"];
276
+ readonly astMatchers: {
277
+ readonly globals: readonly ["fetch", "XMLHttpRequest", "WebSocket", "EventSource"];
278
+ readonly memberPaths: readonly ["navigator.sendBeacon", "window.fetch", "globalThis.fetch"];
279
+ };
115
280
  readonly defaultAction: "manual_review";
116
281
  readonly category: "network_exfiltration";
117
282
  readonly severity: "high";
@@ -190,8 +355,23 @@ export declare const PROMPTFRAME_PUBLIC_SECURITY_POLICY: {
190
355
  readonly severity: "medium";
191
356
  readonly reason: "Remote assets must go through platform asset management and authorization.";
192
357
  readonly recommendation: "Do not hardcode remote URLs in component source.";
358
+ }, {
359
+ readonly id: "runtime.deterministic.fps_hardcoded_timing";
360
+ readonly label: "Hardcoded frame timing";
361
+ readonly patterns: readonly [];
362
+ readonly astMatchers: {
363
+ readonly fpsHardcodedTiming: true;
364
+ };
365
+ readonly action: "warn";
366
+ readonly category: "remotion_lifecycle";
367
+ readonly severity: "medium";
368
+ readonly reason: "Hardcoded frame counts can drift when a component is previewed or rendered at a different fps.";
369
+ readonly recommendation: "Use useVideoConfig().fps with secondsToFrames(seconds, fps), createDurationTimeline(), or timeline.at() from @promptframe/component-kit/timing.";
370
+ readonly repairHint: "Replace hardcoded frame counts with secondsToFrames(seconds, fps) or createDurationTimeline()/timeline.at() from @promptframe/component-kit/timing.";
371
+ readonly docsPath: "/docs/component-authoring/security#runtime-deterministic-fps-hardcoded-timing";
193
372
  }];
194
373
  };
374
+ export declare const PROMPTFRAME_PUBLIC_SECURITY_POLICY_DIGEST: `component-security-policy-digest.v0.1:${string}`;
195
375
  export declare const PROMPTFRAME_PUBLIC_DEPENDENCY_POLICY: {
196
376
  readonly policyVersion: "component-dependency-policy.v0.1.0";
197
377
  readonly lanes: readonly ["platform_core", "reviewed_visual", "requested_dependency", "native_or_scripted", "unknown_unlocked"];
@@ -693,7 +873,7 @@ export declare const componentDiagnosticSchema: z.ZodObject<{
693
873
  repairHint?: string | undefined;
694
874
  }>;
695
875
  export type ComponentDiagnostic = z.infer<typeof componentDiagnosticSchema>;
696
- export declare const publicPolicyRuleIdSchema: z.ZodEnum<["manifest.identity.version", "manifest.component_type.supported", "schema.props.explicit", "runtime.deterministic.remotion", "runtime.no_global_scripts", "security.forbidden.browser_apis", "security.no_raw_remote_url_import", "layout.root_fills_parent", "layout.no_fixed_root_canvas", "package.no_parent_imports", "package.no_path_traversal", "evidence.schema_source_hash_present", "component.style.unknown_custom_style_prop"]>;
876
+ export declare const publicPolicyRuleIdSchema: z.ZodEnum<["manifest.identity.version", "manifest.component_type.supported", "schema.props.explicit", "runtime.deterministic.remotion", "runtime.deterministic.fps_hardcoded_timing", "runtime.no_global_scripts", "security.forbidden.browser_apis", "security.no_raw_remote_url_import", "layout.root_fills_parent", "layout.no_fixed_root_canvas", "package.no_parent_imports", "package.no_path_traversal", "evidence.schema_source_hash_present", "component.style.unknown_custom_style_prop"]>;
697
877
  export type PublicPolicyRuleId = z.infer<typeof publicPolicyRuleIdSchema>;
698
878
  export declare const layoutAdaptivitySchema: z.ZodEnum<["responsive", "scales_down", "reflows", "clips", "fixed"]>;
699
879
  export type LayoutAdaptivity = z.infer<typeof layoutAdaptivitySchema>;
@@ -1302,7 +1482,7 @@ export declare const componentCapabilityCardSchema: z.ZodObject<{
1302
1482
  repairHint?: string | undefined;
1303
1483
  }[] | undefined;
1304
1484
  }>;
1305
- policyRuleIds: z.ZodDefault<z.ZodArray<z.ZodEnum<["manifest.identity.version", "manifest.component_type.supported", "schema.props.explicit", "runtime.deterministic.remotion", "runtime.no_global_scripts", "security.forbidden.browser_apis", "security.no_raw_remote_url_import", "layout.root_fills_parent", "layout.no_fixed_root_canvas", "package.no_parent_imports", "package.no_path_traversal", "evidence.schema_source_hash_present", "component.style.unknown_custom_style_prop"]>, "many">>;
1485
+ policyRuleIds: z.ZodDefault<z.ZodArray<z.ZodEnum<["manifest.identity.version", "manifest.component_type.supported", "schema.props.explicit", "runtime.deterministic.remotion", "runtime.deterministic.fps_hardcoded_timing", "runtime.no_global_scripts", "security.forbidden.browser_apis", "security.no_raw_remote_url_import", "layout.root_fills_parent", "layout.no_fixed_root_canvas", "package.no_parent_imports", "package.no_path_traversal", "evidence.schema_source_hash_present", "component.style.unknown_custom_style_prop"]>, "many">>;
1306
1486
  diagnostics: z.ZodDefault<z.ZodArray<z.ZodObject<{
1307
1487
  code: z.ZodString;
1308
1488
  severity: z.ZodEnum<["info", "warning", "error"]>;
@@ -1364,7 +1544,7 @@ export declare const componentCapabilityCardSchema: z.ZodObject<{
1364
1544
  }[];
1365
1545
  lastVerifiedAt?: string | undefined;
1366
1546
  };
1367
- policyRuleIds: ("component.style.unknown_custom_style_prop" | "manifest.identity.version" | "manifest.component_type.supported" | "schema.props.explicit" | "runtime.deterministic.remotion" | "runtime.no_global_scripts" | "security.forbidden.browser_apis" | "security.no_raw_remote_url_import" | "layout.root_fills_parent" | "layout.no_fixed_root_canvas" | "package.no_parent_imports" | "package.no_path_traversal" | "evidence.schema_source_hash_present")[];
1547
+ policyRuleIds: ("runtime.deterministic.fps_hardcoded_timing" | "component.style.unknown_custom_style_prop" | "manifest.identity.version" | "manifest.component_type.supported" | "schema.props.explicit" | "runtime.deterministic.remotion" | "runtime.no_global_scripts" | "security.forbidden.browser_apis" | "security.no_raw_remote_url_import" | "layout.root_fills_parent" | "layout.no_fixed_root_canvas" | "package.no_parent_imports" | "package.no_path_traversal" | "evidence.schema_source_hash_present")[];
1368
1548
  }, {
1369
1549
  displayName: string;
1370
1550
  componentType: "scene_template" | "contained_widget" | "overlay" | "transition_effect";
@@ -1407,7 +1587,7 @@ export declare const componentCapabilityCardSchema: z.ZodObject<{
1407
1587
  stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
1408
1588
  repairHint?: string | undefined;
1409
1589
  }[] | undefined;
1410
- policyRuleIds?: ("component.style.unknown_custom_style_prop" | "manifest.identity.version" | "manifest.component_type.supported" | "schema.props.explicit" | "runtime.deterministic.remotion" | "runtime.no_global_scripts" | "security.forbidden.browser_apis" | "security.no_raw_remote_url_import" | "layout.root_fills_parent" | "layout.no_fixed_root_canvas" | "package.no_parent_imports" | "package.no_path_traversal" | "evidence.schema_source_hash_present")[] | undefined;
1590
+ policyRuleIds?: ("runtime.deterministic.fps_hardcoded_timing" | "component.style.unknown_custom_style_prop" | "manifest.identity.version" | "manifest.component_type.supported" | "schema.props.explicit" | "runtime.deterministic.remotion" | "runtime.no_global_scripts" | "security.forbidden.browser_apis" | "security.no_raw_remote_url_import" | "layout.root_fills_parent" | "layout.no_fixed_root_canvas" | "package.no_parent_imports" | "package.no_path_traversal" | "evidence.schema_source_hash_present")[] | undefined;
1411
1591
  }>;
1412
1592
  export type ComponentCapabilityCard = z.infer<typeof componentCapabilityCardSchema>;
1413
1593
  export declare function parseComponentManifest(input: unknown): ComponentManifest;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import { z } from 'zod';
2
+ import { createPromptFramePublicSecurityPolicyDigest } from './security-policy-fingerprint.js';
3
+ export { COMPONENT_SECURITY_POLICY_DIGEST_VERSION, canonicalizePromptFramePolicy, createPromptFramePublicSecurityPolicyDigest, } from './security-policy-fingerprint.js';
2
4
  export const PROMPTFRAME_CONTRACTS_VERSION = 'promptframe-contracts.v0.1.0';
3
5
  export const COMPONENT_MANIFEST_SCHEMA_VERSION = 'component-manifest.v0.1.0';
4
6
  export const COMPONENT_STANDARD_VERSION = 'component-standard.v0.1.0';
@@ -96,6 +98,9 @@ export const PROMPTFRAME_PUBLIC_SECURITY_POLICY = {
96
98
  id: 'code.eval',
97
99
  label: 'Dynamic code execution',
98
100
  patterns: ['\\beval\\s*\\('],
101
+ astMatchers: {
102
+ globals: ['eval'],
103
+ },
99
104
  action: 'reject',
100
105
  category: 'dynamic_code_execution',
101
106
  severity: 'high',
@@ -106,6 +111,9 @@ export const PROMPTFRAME_PUBLIC_SECURITY_POLICY = {
106
111
  id: 'code.new_function',
107
112
  label: 'new Function dynamic execution',
108
113
  patterns: ['\\bnew\\s+Function\\s*\\('],
114
+ astMatchers: {
115
+ globals: ['Function'],
116
+ },
109
117
  action: 'reject',
110
118
  category: 'dynamic_code_execution',
111
119
  severity: 'high',
@@ -116,28 +124,197 @@ export const PROMPTFRAME_PUBLIC_SECURITY_POLICY = {
116
124
  id: 'code.string_timer',
117
125
  label: 'String timer execution',
118
126
  patterns: ['\\bset(?:Timeout|Interval)\\s*\\(\\s*[\'"`]'],
127
+ astMatchers: {
128
+ stringTimer: true,
129
+ },
119
130
  action: 'reject',
120
131
  category: 'dynamic_code_execution',
121
132
  severity: 'high',
122
133
  reason: 'String timers are equivalent to dynamic code execution.',
123
134
  recommendation: 'Do not pass strings to setTimeout or setInterval.',
124
135
  },
136
+ {
137
+ id: 'code.dynamic_import',
138
+ label: 'Dynamic import loading',
139
+ patterns: ['\\bimport\\s*\\('],
140
+ astMatchers: {
141
+ dynamicImport: true,
142
+ },
143
+ action: 'reject',
144
+ category: 'dynamic_code_execution',
145
+ severity: 'high',
146
+ reason: 'Third-party components cannot dynamically load code at preview or render time.',
147
+ recommendation: 'Use static imports that are visible to the authoring build and security checks.',
148
+ docsPath: '/docs/component-authoring/security#code-dynamic-import',
149
+ },
125
150
  {
126
151
  id: 'host.fs_process_env',
127
152
  label: 'Host filesystem, process, or env access',
128
153
  patterns: ['\\b(node:fs|fs\\/promises|child_process|process\\.env|Bun\\.|Deno\\.)\\b'],
154
+ astMatchers: {
155
+ globals: ['Bun', 'Deno'],
156
+ memberPaths: ['process.env', 'Bun', 'Deno'],
157
+ },
129
158
  action: 'reject',
130
159
  category: 'filesystem_process_env_access',
131
160
  severity: 'critical',
132
161
  reason: 'Components must not read host files, spawn processes, or access environment variables.',
133
162
  recommendation: 'Use only platform-provided props and trusted artifacts.',
134
163
  },
164
+ {
165
+ id: 'browser.broadcast_channel',
166
+ label: 'BroadcastChannel cross-context messaging',
167
+ patterns: ['\\bnew\\s+BroadcastChannel\\b|\\bBroadcastChannel\\s*\\('],
168
+ astMatchers: {
169
+ globals: ['BroadcastChannel'],
170
+ memberPaths: ['window.BroadcastChannel', 'globalThis.BroadcastChannel'],
171
+ },
172
+ action: 'reject',
173
+ category: 'browser_capability',
174
+ severity: 'high',
175
+ reason: 'Third-party components cannot open cross-tab or cross-context messaging channels.',
176
+ recommendation: 'Remove BroadcastChannel. Use explicit component props or platform-provided data instead.',
177
+ docsPath: '/docs/component-authoring/security#browser-broadcast-channel',
178
+ },
179
+ {
180
+ id: 'browser.webrtc',
181
+ label: 'WebRTC / RTCPeerConnection access',
182
+ patterns: ['\\bnew\\s+RTCPeerConnection\\b|\\bRTCPeerConnection\\s*\\(|navigator\\.mediaDevices\\.getUserMedia\\s*\\('],
183
+ astMatchers: {
184
+ globals: ['RTCPeerConnection'],
185
+ memberPaths: ['navigator.mediaDevices.getUserMedia'],
186
+ },
187
+ action: 'reject',
188
+ category: 'browser_capability',
189
+ severity: 'high',
190
+ reason: 'Third-party components cannot open peer connections or capture local media devices.',
191
+ recommendation: 'Remove WebRTC and media device access. Use platform-provided assets or props.',
192
+ docsPath: '/docs/component-authoring/security#browser-webrtc',
193
+ },
194
+ {
195
+ id: 'browser.notification',
196
+ label: 'Notification permission or display',
197
+ patterns: ['\\bnew\\s+Notification\\b|\\bNotification\\s*\\(|Notification\\.requestPermission\\s*\\('],
198
+ astMatchers: {
199
+ globals: ['Notification'],
200
+ memberPaths: ['Notification.requestPermission', 'window.Notification', 'globalThis.Notification'],
201
+ },
202
+ action: 'reject',
203
+ category: 'browser_capability',
204
+ severity: 'high',
205
+ reason: 'Third-party components cannot request browser notification permissions or show notifications.',
206
+ recommendation: 'Remove Notification usage and express state inside the rendered component.',
207
+ docsPath: '/docs/component-authoring/security#browser-notification',
208
+ },
209
+ {
210
+ id: 'browser.service_worker',
211
+ label: 'Service Worker registration',
212
+ patterns: ['navigator\\.serviceWorker\\b|\\bServiceWorker(?:Registration|Container)?\\b'],
213
+ astMatchers: {
214
+ memberPaths: ['navigator.serviceWorker'],
215
+ },
216
+ action: 'reject',
217
+ category: 'browser_capability',
218
+ severity: 'high',
219
+ reason: 'Third-party components cannot register or control Service Worker lifecycle.',
220
+ recommendation: 'Remove Service Worker usage. Component code must stay inside the platform render boundary.',
221
+ docsPath: '/docs/component-authoring/security#browser-service-worker',
222
+ },
223
+ {
224
+ id: 'browser.clipboard',
225
+ label: 'Clipboard access',
226
+ patterns: ['navigator\\.clipboard\\b|document\\.execCommand\\s*\\(\\s*[\'"`](?:copy|cut|paste)[\'"`]'],
227
+ astMatchers: {
228
+ memberPaths: ['navigator.clipboard', 'document.execCommand'],
229
+ },
230
+ action: 'reject',
231
+ category: 'browser_capability',
232
+ severity: 'high',
233
+ reason: 'Third-party components cannot read from or write to the user clipboard.',
234
+ recommendation: 'Remove clipboard calls and use explicit props or platform actions outside the component.',
235
+ docsPath: '/docs/component-authoring/security#browser-clipboard',
236
+ },
237
+ {
238
+ id: 'browser.navigator_locks',
239
+ label: 'Navigator locks API',
240
+ patterns: ['navigator\\.locks\\b'],
241
+ astMatchers: {
242
+ memberPaths: ['navigator.locks'],
243
+ },
244
+ action: 'reject',
245
+ category: 'browser_capability',
246
+ severity: 'high',
247
+ reason: 'Third-party components cannot acquire browser-level execution locks.',
248
+ recommendation: 'Remove navigator.locks usage and keep component logic frame-driven and deterministic.',
249
+ docsPath: '/docs/component-authoring/security#browser-navigator-locks',
250
+ },
251
+ {
252
+ id: 'browser.audio_context',
253
+ label: 'AudioContext / AudioWorklet access',
254
+ patterns: ['\\bnew\\s+(?:AudioContext|webkitAudioContext)\\b|\\b(?:AudioContext|webkitAudioContext)\\s*\\(|\\bAudioWorklet\\b|\\.audioWorklet\\b'],
255
+ astMatchers: {
256
+ globals: ['AudioContext', 'webkitAudioContext', 'AudioWorklet'],
257
+ memberPaths: ['window.AudioContext', 'window.webkitAudioContext', 'globalThis.AudioContext', 'globalThis.webkitAudioContext'],
258
+ },
259
+ action: 'reject',
260
+ category: 'browser_capability',
261
+ severity: 'high',
262
+ reason: 'Third-party components cannot create browser audio processing contexts or AudioWorklet code.',
263
+ recommendation: 'Use platform-provided audio assets and frame-driven visualizers instead.',
264
+ docsPath: '/docs/component-authoring/security#browser-audio-context',
265
+ },
266
+ {
267
+ id: 'browser.css_register_property',
268
+ label: 'CSS.registerProperty / CSS Houdini access',
269
+ patterns: ['CSS\\.registerProperty\\s*\\('],
270
+ astMatchers: {
271
+ memberPaths: ['CSS.registerProperty'],
272
+ },
273
+ action: 'reject',
274
+ category: 'browser_capability',
275
+ severity: 'high',
276
+ reason: 'Third-party components cannot register global CSS Houdini properties.',
277
+ recommendation: 'Use component-local style props and ordinary frame-driven React styles.',
278
+ docsPath: '/docs/component-authoring/security#browser-css-register-property',
279
+ },
280
+ {
281
+ id: 'browser.observer_abuse',
282
+ label: 'DOM Observer capability',
283
+ patterns: ['\\bnew\\s+(?:MutationObserver|ResizeObserver|IntersectionObserver)\\b|\\b(?:MutationObserver|ResizeObserver|IntersectionObserver)\\s*\\('],
284
+ astMatchers: {
285
+ globals: ['MutationObserver', 'ResizeObserver', 'IntersectionObserver'],
286
+ },
287
+ action: 'reject',
288
+ category: 'browser_capability',
289
+ severity: 'high',
290
+ reason: 'Third-party components cannot observe host DOM or runtime boundaries.',
291
+ recommendation: 'Use explicit props, layout inputs, and deterministic frame data instead of Observer APIs.',
292
+ docsPath: '/docs/component-authoring/security#browser-observer-abuse',
293
+ },
294
+ {
295
+ id: 'remotion.delay_render',
296
+ label: 'Remotion delayRender lifecycle control',
297
+ patterns: ['\\bdelayRender\\s*\\('],
298
+ astMatchers: {
299
+ globals: ['delayRender'],
300
+ },
301
+ action: 'reject',
302
+ category: 'remotion_lifecycle',
303
+ severity: 'high',
304
+ reason: 'Third-party components cannot delay platform preview or render lifecycle from component code.',
305
+ recommendation: 'Resolve assets before rendering and pass ready data through component props.',
306
+ docsPath: '/docs/component-authoring/security#remotion-delay-render',
307
+ },
135
308
  ],
136
309
  mediatedApis: [
137
310
  {
138
311
  id: 'network.raw_fetch',
139
312
  label: 'Raw network access',
140
313
  rawApis: ['fetch', 'XMLHttpRequest', 'WebSocket', 'EventSource', 'navigator.sendBeacon'],
314
+ astMatchers: {
315
+ globals: ['fetch', 'XMLHttpRequest', 'WebSocket', 'EventSource'],
316
+ memberPaths: ['navigator.sendBeacon', 'window.fetch', 'globalThis.fetch'],
317
+ },
141
318
  defaultAction: 'manual_review',
142
319
  category: 'network_exfiltration',
143
320
  severity: 'high',
@@ -226,8 +403,24 @@ export const PROMPTFRAME_PUBLIC_SECURITY_POLICY = {
226
403
  reason: 'Remote assets must go through platform asset management and authorization.',
227
404
  recommendation: 'Do not hardcode remote URLs in component source.',
228
405
  },
406
+ {
407
+ id: 'runtime.deterministic.fps_hardcoded_timing',
408
+ label: 'Hardcoded frame timing',
409
+ patterns: [],
410
+ astMatchers: {
411
+ fpsHardcodedTiming: true,
412
+ },
413
+ action: 'warn',
414
+ category: 'remotion_lifecycle',
415
+ severity: 'medium',
416
+ reason: 'Hardcoded frame counts can drift when a component is previewed or rendered at a different fps.',
417
+ recommendation: 'Use useVideoConfig().fps with secondsToFrames(seconds, fps), createDurationTimeline(), or timeline.at() from @promptframe/component-kit/timing.',
418
+ repairHint: 'Replace hardcoded frame counts with secondsToFrames(seconds, fps) or createDurationTimeline()/timeline.at() from @promptframe/component-kit/timing.',
419
+ docsPath: '/docs/component-authoring/security#runtime-deterministic-fps-hardcoded-timing',
420
+ },
229
421
  ],
230
422
  };
423
+ export const PROMPTFRAME_PUBLIC_SECURITY_POLICY_DIGEST = createPromptFramePublicSecurityPolicyDigest(PROMPTFRAME_PUBLIC_SECURITY_POLICY);
231
424
  export const PROMPTFRAME_PUBLIC_DEPENDENCY_POLICY = {
232
425
  policyVersion: COMPONENT_DEPENDENCY_POLICY_VERSION,
233
426
  lanes: [
@@ -752,6 +945,7 @@ export const publicPolicyRuleIdSchema = z.enum([
752
945
  'manifest.component_type.supported',
753
946
  'schema.props.explicit',
754
947
  'runtime.deterministic.remotion',
948
+ 'runtime.deterministic.fps_hardcoded_timing',
755
949
  'runtime.no_global_scripts',
756
950
  'security.forbidden.browser_apis',
757
951
  'security.no_raw_remote_url_import',
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { COMPONENT_SECURITY_POLICY_VERSION, PROMPTFRAME_PUBLIC_SECURITY_POLICY, PROMPTFRAME_PUBLIC_SECURITY_POLICY_DIGEST } from './index.js';
2
+ export { PROMPTFRAME_PUBLIC_SECURITY_POLICY_DIGEST } from './index.js';
3
+ export type PromptFrameSecurityPolicyAction = 'reject' | 'manual_review' | 'warn';
4
+ export type PromptFrameSecurityPolicyDetectionKind = 'ast' | 'pattern';
5
+ export type PromptFrameSecurityPolicyConfidence = 'high' | 'medium' | 'low';
6
+ export interface PromptFrameSecurityPolicyFinding {
7
+ ruleId: string;
8
+ policyVersion: string;
9
+ policyDigest: string;
10
+ category: string;
11
+ severity: string;
12
+ action: PromptFrameSecurityPolicyAction;
13
+ message: string;
14
+ file: string;
15
+ line?: number;
16
+ column?: number;
17
+ evidence?: string;
18
+ recommendation?: string;
19
+ repairHint?: string;
20
+ detectionKind: PromptFrameSecurityPolicyDetectionKind;
21
+ confidence: PromptFrameSecurityPolicyConfidence;
22
+ trace?: string[];
23
+ }
24
+ export interface EvaluatePromptFrameSecurityPolicySourceInput {
25
+ file: string;
26
+ source: string;
27
+ policy?: typeof PROMPTFRAME_PUBLIC_SECURITY_POLICY;
28
+ mode?: 'ast' | 'pattern_fallback';
29
+ }
30
+ export interface PromptFrameSecurityPolicyEvaluationReceipt {
31
+ policyVersion: typeof COMPONENT_SECURITY_POLICY_VERSION;
32
+ policyDigest: typeof PROMPTFRAME_PUBLIC_SECURITY_POLICY_DIGEST;
33
+ evaluatorMode: 'ast' | 'pattern_fallback';
34
+ findings: PromptFrameSecurityPolicyFinding[];
35
+ }
36
+ export declare function evaluatePromptFrameSecurityPolicySource(input: EvaluatePromptFrameSecurityPolicySourceInput): PromptFrameSecurityPolicyEvaluationReceipt;
37
+ //# sourceMappingURL=security-policy-evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-policy-evaluator.d.ts","sourceRoot":"","sources":["../src/security-policy-evaluator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,yCAAyC,EAC1C,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,yCAAyC,EAAE,MAAM,YAAY,CAAC;AAEvE,MAAM,MAAM,+BAA+B,GAAG,QAAQ,GAAG,eAAe,GAAG,MAAM,CAAC;AAClF,MAAM,MAAM,sCAAsC,GAAG,KAAK,GAAG,SAAS,CAAC;AACvE,MAAM,MAAM,mCAAmC,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE5E,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,+BAA+B,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,sCAAsC,CAAC;IACtD,UAAU,EAAE,mCAAmC,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,4CAA4C;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,kCAAkC,CAAC;IACnD,IAAI,CAAC,EAAE,KAAK,GAAG,kBAAkB,CAAC;CACnC;AAED,MAAM,WAAW,0CAA0C;IACzD,aAAa,EAAE,OAAO,iCAAiC,CAAC;IACxD,YAAY,EAAE,OAAO,yCAAyC,CAAC;IAC/D,aAAa,EAAE,KAAK,GAAG,kBAAkB,CAAC;IAC1C,QAAQ,EAAE,gCAAgC,EAAE,CAAC;CAC9C;AAyBD,wBAAgB,uCAAuC,CACrD,KAAK,EAAE,4CAA4C,GAClD,0CAA0C,CAa5C"}
@@ -0,0 +1,360 @@
1
+ import ts from 'typescript';
2
+ import { COMPONENT_SECURITY_POLICY_VERSION, PROMPTFRAME_PUBLIC_SECURITY_POLICY, PROMPTFRAME_PUBLIC_SECURITY_POLICY_DIGEST, } from './index.js';
3
+ export { PROMPTFRAME_PUBLIC_SECURITY_POLICY_DIGEST } from './index.js';
4
+ export function evaluatePromptFrameSecurityPolicySource(input) {
5
+ const policy = input.policy ?? PROMPTFRAME_PUBLIC_SECURITY_POLICY;
6
+ const evaluatorMode = input.mode ?? (isAstScannableSourceFile(input.file) ? 'ast' : 'pattern_fallback');
7
+ const findings = evaluatorMode === 'ast'
8
+ ? evaluateAstSource(input.file, input.source, collectPublicSecurityRules(policy))
9
+ : evaluatePatternSource(input.file, input.source, collectPublicSecurityRules(policy));
10
+ return {
11
+ policyVersion: COMPONENT_SECURITY_POLICY_VERSION,
12
+ policyDigest: PROMPTFRAME_PUBLIC_SECURITY_POLICY_DIGEST,
13
+ evaluatorMode,
14
+ findings: dedupeFindings(findings),
15
+ };
16
+ }
17
+ function evaluateAstSource(file, source, rules) {
18
+ const sourceFile = ts.createSourceFile(file, source, ts.ScriptTarget.Latest, true, scriptKindForFile(file));
19
+ const localDeclarations = new Set();
20
+ const aliases = new Map();
21
+ const findings = [];
22
+ collectLocalDeclarations(sourceFile, localDeclarations);
23
+ collectAliases(sourceFile, localDeclarations, aliases);
24
+ const visit = (node) => {
25
+ for (const rule of rules) {
26
+ const match = matchAstRule(rule, node, sourceFile, localDeclarations, aliases);
27
+ if (!match)
28
+ continue;
29
+ findings.push(buildFinding({
30
+ file,
31
+ sourceFile,
32
+ node: match.node,
33
+ rule,
34
+ evidence: match.node.getText(sourceFile).slice(0, 160),
35
+ detectionKind: 'ast',
36
+ confidence: match.confidence,
37
+ trace: match.trace,
38
+ }));
39
+ }
40
+ ts.forEachChild(node, visit);
41
+ };
42
+ visit(sourceFile);
43
+ return findings;
44
+ }
45
+ function evaluatePatternSource(file, source, rules) {
46
+ const findings = [];
47
+ const sourceFile = ts.createSourceFile(file, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.Unknown);
48
+ for (const rule of rules) {
49
+ const patterns = rule.patterns ?? rule.rawApis?.map(apiToPattern) ?? [];
50
+ for (const patternSource of patterns) {
51
+ const pattern = new RegExp(patternSource, 'i');
52
+ const match = source.match(pattern);
53
+ if (!match || match.index === undefined)
54
+ continue;
55
+ findings.push(buildFinding({
56
+ file,
57
+ sourceFile,
58
+ position: match.index,
59
+ rule,
60
+ evidence: match[0].slice(0, 160),
61
+ detectionKind: 'pattern',
62
+ confidence: 'medium',
63
+ trace: [`pattern:${patternSource}`],
64
+ }));
65
+ }
66
+ }
67
+ return findings;
68
+ }
69
+ function matchAstRule(rule, node, sourceFile, localDeclarations, aliases) {
70
+ const matcher = rule.astMatchers;
71
+ if (!matcher)
72
+ return undefined;
73
+ if (matcher.dynamicImport && ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.ImportKeyword) {
74
+ return { node, confidence: 'high', trace: ['dynamicImport'] };
75
+ }
76
+ if (matcher.stringTimer && ts.isCallExpression(node)) {
77
+ const name = expressionName(node.expression, sourceFile);
78
+ if ((name === 'setTimeout' || name === 'setInterval') && isStringLikeExpression(node.arguments[0])) {
79
+ return { node, confidence: 'high', trace: [`stringTimer:${name}`] };
80
+ }
81
+ }
82
+ if (matcher.fpsHardcodedTiming) {
83
+ const match = matchFpsHardcodedTiming(node, sourceFile);
84
+ if (match)
85
+ return match;
86
+ }
87
+ const globals = new Set(matcher.globals ?? []);
88
+ if (globals.size > 0 && (ts.isCallExpression(node) || ts.isNewExpression(node))) {
89
+ const name = expressionName(node.expression, sourceFile);
90
+ const resolved = name ? aliases.get(name) ?? name : undefined;
91
+ if (resolved && globals.has(resolved) && !localDeclarations.has(resolved)) {
92
+ return { node, confidence: 'high', trace: [`global:${resolved}`] };
93
+ }
94
+ }
95
+ const memberPaths = matcher.memberPaths ?? [];
96
+ if (memberPaths.length > 0 && (ts.isCallExpression(node) || ts.isNewExpression(node) || ts.isPropertyAccessExpression(node) || ts.isElementAccessExpression(node))) {
97
+ const expression = ts.isCallExpression(node) || ts.isNewExpression(node) ? node.expression : node;
98
+ const path = memberPath(expression, sourceFile);
99
+ const matchedPath = memberPaths.find((candidate) => path === candidate || path.startsWith(`${candidate}.`));
100
+ if (matchedPath)
101
+ return { node, confidence: 'high', trace: [`member:${matchedPath}`] };
102
+ }
103
+ return undefined;
104
+ }
105
+ function collectLocalDeclarations(sourceFile, localDeclarations) {
106
+ const visit = (node) => {
107
+ if ((ts.isVariableDeclaration(node) || ts.isFunctionDeclaration(node) || ts.isClassDeclaration(node) || ts.isParameter(node))
108
+ && node.name) {
109
+ collectBindingNames(node.name, localDeclarations);
110
+ }
111
+ ts.forEachChild(node, visit);
112
+ };
113
+ visit(sourceFile);
114
+ }
115
+ function collectAliases(sourceFile, localDeclarations, aliases) {
116
+ const visit = (node) => {
117
+ if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name) && node.initializer) {
118
+ const initializerName = expressionName(node.initializer, sourceFile);
119
+ if (initializerName && !localDeclarations.has(initializerName))
120
+ aliases.set(node.name.text, initializerName);
121
+ const initializerPath = memberPath(node.initializer, sourceFile);
122
+ if ((initializerPath === 'globalThis' || initializerPath === 'window') && ts.isObjectBindingPattern(node.name)) {
123
+ collectDestructureAliases(node.name, aliases);
124
+ }
125
+ }
126
+ if (ts.isVariableDeclaration(node) && ts.isObjectBindingPattern(node.name) && node.initializer) {
127
+ const initializerPath = memberPath(node.initializer, sourceFile);
128
+ if (initializerPath === 'globalThis' || initializerPath === 'window') {
129
+ collectDestructureAliases(node.name, aliases);
130
+ }
131
+ }
132
+ ts.forEachChild(node, visit);
133
+ };
134
+ visit(sourceFile);
135
+ }
136
+ function collectDestructureAliases(binding, aliases) {
137
+ for (const element of binding.elements) {
138
+ const propertyName = element.propertyName && ts.isIdentifier(element.propertyName)
139
+ ? element.propertyName.text
140
+ : ts.isIdentifier(element.name)
141
+ ? element.name.text
142
+ : undefined;
143
+ if (!propertyName || !ts.isIdentifier(element.name))
144
+ continue;
145
+ aliases.set(element.name.text, propertyName);
146
+ }
147
+ }
148
+ function collectBindingNames(name, output) {
149
+ if (ts.isIdentifier(name)) {
150
+ output.add(name.text);
151
+ return;
152
+ }
153
+ for (const element of name.elements) {
154
+ if (ts.isBindingElement(element))
155
+ collectBindingNames(element.name, output);
156
+ }
157
+ }
158
+ function expressionName(expression, sourceFile) {
159
+ if (ts.isIdentifier(expression))
160
+ return expression.text;
161
+ const path = memberPath(expression, sourceFile);
162
+ return path.includes('.') ? undefined : path || undefined;
163
+ }
164
+ function memberPath(node, sourceFile) {
165
+ if (ts.isIdentifier(node))
166
+ return node.text;
167
+ if (node.kind === ts.SyntaxKind.ThisKeyword)
168
+ return 'this';
169
+ if (ts.isPropertyAccessExpression(node)) {
170
+ const parent = memberPath(node.expression, sourceFile);
171
+ return parent ? `${parent}.${node.name.text}` : node.name.text;
172
+ }
173
+ if (ts.isElementAccessExpression(node)) {
174
+ const parent = memberPath(node.expression, sourceFile);
175
+ const key = stringLiteralValue(node.argumentExpression);
176
+ return parent && key ? `${parent}.${key}` : '';
177
+ }
178
+ return '';
179
+ }
180
+ function stringLiteralValue(node) {
181
+ if (!node)
182
+ return undefined;
183
+ if (ts.isStringLiteral(node) || ts.isNoSubstitutionTemplateLiteral(node))
184
+ return node.text;
185
+ return undefined;
186
+ }
187
+ function isStringLikeExpression(node) {
188
+ return Boolean(node && (ts.isStringLiteral(node) || ts.isNoSubstitutionTemplateLiteral(node)));
189
+ }
190
+ function buildFinding(input) {
191
+ const position = input.position ?? input.node?.getStart(input.sourceFile) ?? 0;
192
+ const location = input.sourceFile.getLineAndCharacterOfPosition(position);
193
+ return {
194
+ ruleId: input.rule.id,
195
+ policyVersion: COMPONENT_SECURITY_POLICY_VERSION,
196
+ policyDigest: PROMPTFRAME_PUBLIC_SECURITY_POLICY_DIGEST,
197
+ category: input.rule.category ?? 'dynamic_code_execution',
198
+ severity: input.rule.severity ?? 'high',
199
+ action: input.rule.action ?? input.rule.defaultAction ?? 'manual_review',
200
+ message: `${input.rule.label}: ${input.rule.reason}`,
201
+ file: input.file,
202
+ line: location.line + 1,
203
+ column: location.character + 1,
204
+ evidence: input.evidence,
205
+ recommendation: input.rule.recommendation,
206
+ repairHint: input.rule.repairHint ?? input.rule.recommendation,
207
+ detectionKind: input.detectionKind,
208
+ confidence: input.confidence,
209
+ trace: input.trace,
210
+ };
211
+ }
212
+ function matchFpsHardcodedTiming(node, sourceFile) {
213
+ if (ts.isJsxAttribute(node)) {
214
+ const name = jsxAttributeName(node.name);
215
+ if (name && isTimingPropertyName(name) && jsxAttributeHasHardcodedTimingNumber(node)) {
216
+ return { node, confidence: 'medium', trace: [`fpsHardcodedTiming:jsx:${name}`] };
217
+ }
218
+ }
219
+ if (ts.isPropertyAssignment(node)) {
220
+ const name = propertyNameText(node.name);
221
+ if (name && isTimingPropertyName(name) && expressionHasHardcodedTimingNumber(node.initializer)) {
222
+ return { node, confidence: 'medium', trace: [`fpsHardcodedTiming:property:${name}`] };
223
+ }
224
+ }
225
+ if (ts.isCallExpression(node)) {
226
+ const name = callExpressionName(node.expression, sourceFile);
227
+ if (name === 'interpolate' && arrayLiteralHasHardcodedTimingNumber(node.arguments[1])) {
228
+ return { node, confidence: 'medium', trace: ['fpsHardcodedTiming:interpolate:inputRange'] };
229
+ }
230
+ }
231
+ if (ts.isBinaryExpression(node) && isTimingBinaryOperator(node.operatorToken.kind)) {
232
+ if ((isFrameLikeExpression(node.left, sourceFile) && expressionHasHardcodedTimingNumber(node.right))
233
+ || (isFrameLikeExpression(node.right, sourceFile) && expressionHasHardcodedTimingNumber(node.left))) {
234
+ return { node, confidence: 'medium', trace: [`fpsHardcodedTiming:frameMath:${ts.tokenToString(node.operatorToken.kind) ?? 'operator'}`] };
235
+ }
236
+ }
237
+ return undefined;
238
+ }
239
+ function isTimingPropertyName(name) {
240
+ return name === 'from'
241
+ || name === 'durationInFrames'
242
+ || name === 'durationFrames'
243
+ || name === 'delayFrames'
244
+ || name === 'fps';
245
+ }
246
+ function propertyNameText(name) {
247
+ if (ts.isIdentifier(name) || ts.isStringLiteral(name) || ts.isNumericLiteral(name))
248
+ return name.text;
249
+ return undefined;
250
+ }
251
+ function jsxAttributeName(name) {
252
+ if (ts.isIdentifier(name))
253
+ return name.text;
254
+ return undefined;
255
+ }
256
+ function jsxAttributeHasHardcodedTimingNumber(node) {
257
+ const initializer = node.initializer;
258
+ if (!initializer)
259
+ return false;
260
+ if (ts.isStringLiteral(initializer))
261
+ return isHardcodedTimingText(initializer.text);
262
+ if (ts.isJsxExpression(initializer) && initializer.expression) {
263
+ return expressionHasHardcodedTimingNumber(initializer.expression);
264
+ }
265
+ return false;
266
+ }
267
+ function arrayLiteralHasHardcodedTimingNumber(node) {
268
+ if (!node || !ts.isArrayLiteralExpression(node))
269
+ return false;
270
+ return node.elements.some((element) => expressionHasHardcodedTimingNumber(element));
271
+ }
272
+ function expressionHasHardcodedTimingNumber(node) {
273
+ if (!node)
274
+ return false;
275
+ if (ts.isNumericLiteral(node))
276
+ return isHardcodedTimingText(node.text);
277
+ if (ts.isPrefixUnaryExpression(node) && node.operator === ts.SyntaxKind.PlusToken) {
278
+ return expressionHasHardcodedTimingNumber(node.operand);
279
+ }
280
+ return false;
281
+ }
282
+ function isHardcodedTimingText(text) {
283
+ const value = Number(text);
284
+ return Number.isInteger(value) && value > 0 && HARDCODED_TIMING_FRAME_COUNTS.has(value);
285
+ }
286
+ function callExpressionName(expression, sourceFile) {
287
+ const path = memberPath(expression, sourceFile);
288
+ if (!path)
289
+ return expressionName(expression, sourceFile);
290
+ const parts = path.split('.');
291
+ return parts[parts.length - 1];
292
+ }
293
+ function isFrameLikeExpression(node, sourceFile) {
294
+ const name = expressionName(node, sourceFile) ?? memberPath(node, sourceFile).split('.').pop();
295
+ return name === 'frame' || name === 'currentFrame';
296
+ }
297
+ function isTimingBinaryOperator(kind) {
298
+ return kind === ts.SyntaxKind.LessThanToken
299
+ || kind === ts.SyntaxKind.LessThanEqualsToken
300
+ || kind === ts.SyntaxKind.GreaterThanToken
301
+ || kind === ts.SyntaxKind.GreaterThanEqualsToken
302
+ || kind === ts.SyntaxKind.EqualsEqualsToken
303
+ || kind === ts.SyntaxKind.EqualsEqualsEqualsToken
304
+ || kind === ts.SyntaxKind.ExclamationEqualsToken
305
+ || kind === ts.SyntaxKind.ExclamationEqualsEqualsToken
306
+ || kind === ts.SyntaxKind.PlusToken
307
+ || kind === ts.SyntaxKind.MinusToken
308
+ || kind === ts.SyntaxKind.AsteriskToken
309
+ || kind === ts.SyntaxKind.SlashToken
310
+ || kind === ts.SyntaxKind.PercentToken;
311
+ }
312
+ const HARDCODED_TIMING_FRAME_COUNTS = new Set([15, 24, 25, 30, 48, 50, 60, 90, 120]);
313
+ function collectPublicSecurityRules(policy) {
314
+ return [
315
+ ...policy.forbiddenApis,
316
+ ...policy.mediatedApis,
317
+ ...policy.warningApis,
318
+ ];
319
+ }
320
+ function dedupeFindings(findings) {
321
+ const seen = new Set();
322
+ return findings.filter((finding) => {
323
+ const key = `${finding.ruleId}:${finding.file}:${finding.line ?? ''}:${finding.column ?? ''}:${finding.evidence ?? ''}`;
324
+ if (seen.has(key))
325
+ return false;
326
+ seen.add(key);
327
+ return true;
328
+ });
329
+ }
330
+ function isAstScannableSourceFile(file) {
331
+ return /\.(tsx?|jsx?|mjs|cjs)$/i.test(file);
332
+ }
333
+ function scriptKindForFile(file) {
334
+ if (/\.tsx$/i.test(file))
335
+ return ts.ScriptKind.TSX;
336
+ if (/\.ts$/i.test(file) || /\.mts$/i.test(file) || /\.cts$/i.test(file))
337
+ return ts.ScriptKind.TS;
338
+ if (/\.jsx$/i.test(file))
339
+ return ts.ScriptKind.JSX;
340
+ if (/\.js$/i.test(file) || /\.mjs$/i.test(file) || /\.cjs$/i.test(file))
341
+ return ts.ScriptKind.JS;
342
+ return ts.ScriptKind.Unknown;
343
+ }
344
+ function apiToPattern(api) {
345
+ const escaped = api.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
346
+ if (api === 'fetch')
347
+ return '\\bfetch\\s*\\(';
348
+ if (api === 'XMLHttpRequest')
349
+ return '\\bnew\\s+XMLHttpRequest\\b|\\bXMLHttpRequest\\s*\\(';
350
+ if (api === 'WebSocket')
351
+ return '\\bnew\\s+WebSocket\\b|\\bWebSocket\\s*\\(';
352
+ if (api === 'EventSource')
353
+ return '\\bnew\\s+EventSource\\b|\\bEventSource\\s*\\(';
354
+ if (api === 'navigator.sendBeacon')
355
+ return 'navigator\\.sendBeacon\\s*\\(';
356
+ return api.includes('.')
357
+ ? `${escaped}\\s*\\(`
358
+ : `\\b${escaped}\\b`;
359
+ }
360
+ //# sourceMappingURL=security-policy-evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-policy-evaluator.js","sourceRoot":"","sources":["../src/security-policy-evaluator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const COMPONENT_SECURITY_POLICY_DIGEST_VERSION: "component-security-policy-digest.v0.1";
2
+ export declare function canonicalizePromptFramePolicy(value: unknown): string;
3
+ export declare function createPromptFramePublicSecurityPolicyDigest(policy: unknown): `${typeof COMPONENT_SECURITY_POLICY_DIGEST_VERSION}:${string}`;
4
+ //# sourceMappingURL=security-policy-fingerprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-policy-fingerprint.d.ts","sourceRoot":"","sources":["../src/security-policy-fingerprint.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wCAAwC,EAAG,uCAAgD,CAAC;AAEzG,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAgBpE;AAED,wBAAgB,2CAA2C,CACzD,MAAM,EAAE,OAAO,GACd,GAAG,OAAO,wCAAwC,IAAI,MAAM,EAAE,CAIhE"}
@@ -0,0 +1,37 @@
1
+ export const COMPONENT_SECURITY_POLICY_DIGEST_VERSION = 'component-security-policy-digest.v0.1';
2
+ export function canonicalizePromptFramePolicy(value) {
3
+ if (value === null)
4
+ return 'null';
5
+ if (typeof value === 'string')
6
+ return JSON.stringify(value);
7
+ if (typeof value === 'number' || typeof value === 'boolean')
8
+ return JSON.stringify(value);
9
+ if (Array.isArray(value)) {
10
+ return `[${value.map((item) => canonicalizePromptFramePolicy(item)).join(',')}]`;
11
+ }
12
+ if (typeof value === 'object') {
13
+ const record = value;
14
+ const entries = Object.keys(record)
15
+ .filter((key) => record[key] !== undefined)
16
+ .sort()
17
+ .map((key) => `${JSON.stringify(key)}:${canonicalizePromptFramePolicy(record[key])}`);
18
+ return `{${entries.join(',')}}`;
19
+ }
20
+ return JSON.stringify(null);
21
+ }
22
+ export function createPromptFramePublicSecurityPolicyDigest(policy) {
23
+ const canonicalPolicy = canonicalizePromptFramePolicy(policy);
24
+ const hash = fnv1a64(canonicalPolicy);
25
+ return `${COMPONENT_SECURITY_POLICY_DIGEST_VERSION}:${hash}`;
26
+ }
27
+ function fnv1a64(input) {
28
+ let hash = 0xcbf29ce484222325n;
29
+ const prime = 0x100000001b3n;
30
+ const mask = 0xffffffffffffffffn;
31
+ for (let index = 0; index < input.length; index += 1) {
32
+ hash ^= BigInt(input.charCodeAt(index));
33
+ hash = (hash * prime) & mask;
34
+ }
35
+ return hash.toString(16).padStart(16, '0');
36
+ }
37
+ //# sourceMappingURL=security-policy-fingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-policy-fingerprint.js","sourceRoot":"","sources":["../src/security-policy-fingerprint.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wCAAwC,GAAG,uCAAgD,CAAC;AAEzG,MAAM,UAAU,6BAA6B,CAAC,KAAc;IAC1D,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1F,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACnF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAChC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;aAC1C,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,6BAA6B,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QACxF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,2CAA2C,CACzD,MAAe;IAEf,MAAM,eAAe,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACtC,OAAO,GAAG,wCAAwC,IAAI,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,IAAI,IAAI,GAAG,mBAAmB,CAAC;IAC/B,MAAM,KAAK,GAAG,cAAc,CAAC;IAC7B,MAAM,IAAI,GAAG,mBAAmB,CAAC;IACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptframe/contracts",
3
- "version": "0.1.8",
3
+ "version": "0.1.11",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -15,6 +15,10 @@
15
15
  "import": "./dist/index.js",
16
16
  "types": "./dist/index.d.ts"
17
17
  },
18
+ "./security-evaluator": {
19
+ "import": "./dist/security-policy-evaluator.js",
20
+ "types": "./dist/security-policy-evaluator.d.ts"
21
+ },
18
22
  "./package.json": {
19
23
  "default": "./package.json"
20
24
  }
@@ -41,9 +45,7 @@
41
45
  "clean": "rm -rf dist"
42
46
  },
43
47
  "dependencies": {
48
+ "typescript": "~5.7.0",
44
49
  "zod": "^3.24.0"
45
- },
46
- "devDependencies": {
47
- "typescript": "~5.7.0"
48
50
  }
49
51
  }