@memberjunction/video-studio-render-worker 0.0.1-seed.1 → 6.2.0-edge.8
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/LICENSE +183 -0
- package/README.md +139 -4
- package/assets/fonts/Inter-OFL.txt +93 -0
- package/assets/fonts/Inter-Regular.ttf +0 -0
- package/assets/fonts/JetBrainsMono-OFL.txt +93 -0
- package/assets/fonts/JetBrainsMono-Regular.ttf +0 -0
- package/dist/backend.d.ts +201 -0
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js +205 -0
- package/dist/backend.js.map +1 -0
- package/dist/bundle.d.ts +112 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +433 -0
- package/dist/bundle.js.map +1 -0
- package/dist/checks/dom-rules.d.ts +57 -0
- package/dist/checks/dom-rules.d.ts.map +1 -0
- package/dist/checks/dom-rules.js +205 -0
- package/dist/checks/dom-rules.js.map +1 -0
- package/dist/checks/hyperframes-check.d.ts +37 -0
- package/dist/checks/hyperframes-check.d.ts.map +1 -0
- package/dist/checks/hyperframes-check.js +161 -0
- package/dist/checks/hyperframes-check.js.map +1 -0
- package/dist/checks/static-checks.d.ts +46 -0
- package/dist/checks/static-checks.d.ts.map +1 -0
- package/dist/checks/static-checks.js +681 -0
- package/dist/checks/static-checks.js.map +1 -0
- package/dist/hyperframes-backend.d.ts +53 -0
- package/dist/hyperframes-backend.d.ts.map +1 -0
- package/dist/hyperframes-backend.js +733 -0
- package/dist/hyperframes-backend.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs.d.ts +88 -0
- package/dist/jobs.d.ts.map +1 -0
- package/dist/jobs.js +650 -0
- package/dist/jobs.js.map +1 -0
- package/dist/lint-gate.d.ts +21 -0
- package/dist/lint-gate.d.ts.map +1 -0
- package/dist/lint-gate.js +528 -0
- package/dist/lint-gate.js.map +1 -0
- package/dist/main.d.ts +47 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +195 -0
- package/dist/main.js.map +1 -0
- package/dist/one-shot.d.ts +37 -0
- package/dist/one-shot.d.ts.map +1 -0
- package/dist/one-shot.js +228 -0
- package/dist/one-shot.js.map +1 -0
- package/dist/preamble.d.ts +69 -0
- package/dist/preamble.d.ts.map +1 -0
- package/dist/preamble.js +331 -0
- package/dist/preamble.js.map +1 -0
- package/dist/server.d.ts +75 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +526 -0
- package/dist/server.js.map +1 -0
- package/package.json +43 -5
package/dist/jobs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CheckIssue, CheckResult, RenderProjectBundle } from '@memberjunction/video-studio-core';
|
|
2
|
+
import type { RenderBackend } from './backend.js';
|
|
3
|
+
/** Issue code emitted when a composition references a non-bundle URL or path escaping the bundle. */
|
|
4
|
+
export declare const MJ_NON_BUNDLE_URL_CODE = "MJ_NON_BUNDLE_URL";
|
|
5
|
+
/** Issue code emitted when a composition invokes a forbidden browser network or navigation API. */
|
|
6
|
+
export declare const MJ_NETWORK_API_CODE = "MJ_NETWORK_API";
|
|
7
|
+
/**
|
|
8
|
+
* Runs the static authored-file lint gate (`MJ_NON_BUNDLE_URL`, `MJ_NETWORK_API`) plus `backend.Lint`,
|
|
9
|
+
* returning a deterministically sorted `CheckResult`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function RunLintGate(bundle: RenderProjectBundle, stagedDir: string, backend: RenderBackend): Promise<CheckResult>;
|
|
12
|
+
/**
|
|
13
|
+
* Scans authored files in `bundle.Files` (prior to preamble injection) for `MJ_NON_BUNDLE_URL`
|
|
14
|
+
* and `MJ_NETWORK_API` violations.
|
|
15
|
+
*/
|
|
16
|
+
export declare function ScanAuthoredFilesForLintIssues(bundle: RenderProjectBundle): CheckIssue[];
|
|
17
|
+
/**
|
|
18
|
+
* Deterministically sorts `CheckIssue` items by `Category`, `File`, `Line`, `Code`, then `Selector` / `TimestampSeconds`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function SortCheckIssues(issues: readonly CheckIssue[]): CheckIssue[];
|
|
21
|
+
//# sourceMappingURL=lint-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint-gate.d.ts","sourceRoot":"","sources":["../src/lint-gate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,UAAU,EACV,WAAW,EAEX,mBAAmB,EACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,qGAAqG;AACrG,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D,mGAAmG;AACnG,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AAoDpD;;;GAGG;AACH,wBAAsB,WAAW,CAC7B,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,GACvB,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,mBAAmB,GAAG,UAAU,EAAE,CAexF;AAaD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,CAwB3E"}
|
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
2
|
+
/** Issue code emitted when a composition references a non-bundle URL or path escaping the bundle. */
|
|
3
|
+
export const MJ_NON_BUNDLE_URL_CODE = 'MJ_NON_BUNDLE_URL';
|
|
4
|
+
/** Issue code emitted when a composition invokes a forbidden browser network or navigation API. */
|
|
5
|
+
export const MJ_NETWORK_API_CODE = 'MJ_NETWORK_API';
|
|
6
|
+
const HTML_URL_ATTR_REGEX = /\b(src|href|poster|data|xlink:href|action|formaction|background|ping)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>"']+))/gi;
|
|
7
|
+
const HTML_SRCSET_ATTR_REGEX = /\bsrcset\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>"']+))/gi;
|
|
8
|
+
const HTML_STYLE_ATTR_REGEX = /\bstyle\s*=\s*(?:"([^"]*)"|'([^']*)')/gi;
|
|
9
|
+
const HTML_EVENT_HANDLER_ATTR_REGEX = /\bon[a-z]+\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>"']+))/gi;
|
|
10
|
+
const CSS_URL_REGEX = /\burl\(\s*(?:"([^"]*)"|'([^']*)'|([^)\s"']+))\s*\)/gi;
|
|
11
|
+
const CSS_IMPORT_REGEX = /@import\s+(?:url\(\s*)?(?:"([^"]*)"|'([^']*)'|([^)\s"';]+))/gi;
|
|
12
|
+
const JS_IMPORT_FROM_REGEX = /\b(?:import|export)\b[\s\S]*?\bfrom\s*(?:"([^"]*)"|'([^']*)')/g;
|
|
13
|
+
const JS_SIDE_EFFECT_IMPORT_REGEX = /\bimport\s*(?:"([^"]*)"|'([^']*)')/g;
|
|
14
|
+
const JS_DYNAMIC_IMPORT_REGEX = /\bimport\s*\(\s*(?:"([^"]*)"|'([^']*)'|`([^`$]*)`)\s*\)/g;
|
|
15
|
+
const HTML_NETWORK_TAG_RULES = [
|
|
16
|
+
{
|
|
17
|
+
Regex: /<meta\b[^>]*\bhttp-equiv\s*=\s*(?:"\s*refresh\s*"|'\s*refresh\s*'|refresh\b)[^>]*>/gi,
|
|
18
|
+
Label: '<meta http-equiv="refresh">',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
Regex: /<base\b[^>]*>/gi,
|
|
22
|
+
Label: '<base>',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
Regex: /<link\b[^>]*\brel\s*=\s*(?:"[^"]*\b(?:prefetch|preconnect|dns-prefetch|prerender)\b[^"]*"|'[^']*\b(?:prefetch|preconnect|dns-prefetch|prerender)\b[^']*'|\b(?:prefetch|preconnect|dns-prefetch|prerender)\b)[^>]*>/gi,
|
|
26
|
+
Label: '<link rel="prefetch|preconnect|dns-prefetch|prerender">',
|
|
27
|
+
},
|
|
28
|
+
];
|
|
29
|
+
const JS_NETWORK_API_RULES = [
|
|
30
|
+
{ Regex: /\bfetch\s*\(/g, Label: 'fetch(' },
|
|
31
|
+
{ Regex: /\bXMLHttpRequest\b/g, Label: 'XMLHttpRequest' },
|
|
32
|
+
{ Regex: /\bWebSocket\b/g, Label: 'WebSocket' },
|
|
33
|
+
{ Regex: /\bEventSource\b/g, Label: 'EventSource' },
|
|
34
|
+
{ Regex: /\bsendBeacon\b/g, Label: 'sendBeacon' },
|
|
35
|
+
{ Regex: /\b(?:webkit|moz)?RTCPeerConnection\b/g, Label: 'RTCPeerConnection' },
|
|
36
|
+
{ Regex: /\bimportScripts\b/g, Label: 'importScripts' },
|
|
37
|
+
{ Regex: /\bserviceWorker\b/g, Label: 'serviceWorker' },
|
|
38
|
+
{ Regex: /\bwindow\s*\.\s*open\s*\(/g, Label: 'window.open' },
|
|
39
|
+
{
|
|
40
|
+
Regex: /\b(?:(?:window|document|self|top|parent|frames)\s*\.\s*)*location\s*(?:=[^=]|\.\s*(?:assign|replace|reload)\s*\(|\.\s*[a-zA-Z_$][a-zA-Z0-9_$]*\s*=|\[\s*["'`][^"'`]+["'`]\s*\]\s*=)/g,
|
|
41
|
+
Label: 'location navigation',
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* Runs the static authored-file lint gate (`MJ_NON_BUNDLE_URL`, `MJ_NETWORK_API`) plus `backend.Lint`,
|
|
46
|
+
* returning a deterministically sorted `CheckResult`.
|
|
47
|
+
*/
|
|
48
|
+
export async function RunLintGate(bundle, stagedDir, backend) {
|
|
49
|
+
const authoredIssues = ScanAuthoredFilesForLintIssues(bundle);
|
|
50
|
+
const backendLint = await backend.Lint(stagedDir, bundle.EntryFile);
|
|
51
|
+
const merged = SortCheckIssues(deduplicateIssues([...authoredIssues, ...backendLint.Issues]));
|
|
52
|
+
const hasError = merged.some((issue) => issue.Severity === 'Error');
|
|
53
|
+
const blockRender = backendLint.Block || hasError;
|
|
54
|
+
return {
|
|
55
|
+
Passed: !blockRender,
|
|
56
|
+
BlockRender: blockRender,
|
|
57
|
+
Issues: merged,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Scans authored files in `bundle.Files` (prior to preamble injection) for `MJ_NON_BUNDLE_URL`
|
|
62
|
+
* and `MJ_NETWORK_API` violations.
|
|
63
|
+
*/
|
|
64
|
+
export function ScanAuthoredFilesForLintIssues(bundle) {
|
|
65
|
+
const authoredFilePaths = buildAuthoredFilePathSet(bundle);
|
|
66
|
+
const issues = [];
|
|
67
|
+
for (const file of bundle.Files) {
|
|
68
|
+
const lower = file.Path.toLowerCase();
|
|
69
|
+
if (lower.endsWith('.html') || lower.endsWith('.htm') || lower.endsWith('.svg')) {
|
|
70
|
+
issues.push(...scanHtmlFile(file, authoredFilePaths));
|
|
71
|
+
}
|
|
72
|
+
else if (lower.endsWith('.css')) {
|
|
73
|
+
issues.push(...scanCssBlock(file.Content, file.Path, 1));
|
|
74
|
+
issues.push(...scanJsBlock(file.Content, file.Path, 1, authoredFilePaths));
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
issues.push(...scanJsBlock(file.Content, file.Path, 1, authoredFilePaths));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return SortCheckIssues(deduplicateIssues(issues));
|
|
81
|
+
}
|
|
82
|
+
function buildAuthoredFilePathSet(bundle) {
|
|
83
|
+
const paths = new Set();
|
|
84
|
+
for (const file of bundle.Files) {
|
|
85
|
+
const resolved = resolveBundleRelativePath('', file.Path);
|
|
86
|
+
if (resolved) {
|
|
87
|
+
paths.add(resolved);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return paths;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Deterministically sorts `CheckIssue` items by `Category`, `File`, `Line`, `Code`, then `Selector` / `TimestampSeconds`.
|
|
94
|
+
*/
|
|
95
|
+
export function SortCheckIssues(issues) {
|
|
96
|
+
return [...issues].sort((a, b) => {
|
|
97
|
+
const catCmp = a.Category.localeCompare(b.Category);
|
|
98
|
+
if (catCmp !== 0) {
|
|
99
|
+
return catCmp;
|
|
100
|
+
}
|
|
101
|
+
const fileCmp = (a.File ?? '').localeCompare(b.File ?? '');
|
|
102
|
+
if (fileCmp !== 0) {
|
|
103
|
+
return fileCmp;
|
|
104
|
+
}
|
|
105
|
+
const lineCmp = (a.Line ?? 0) - (b.Line ?? 0);
|
|
106
|
+
if (lineCmp !== 0) {
|
|
107
|
+
return lineCmp;
|
|
108
|
+
}
|
|
109
|
+
const codeCmp = a.Code.localeCompare(b.Code);
|
|
110
|
+
if (codeCmp !== 0) {
|
|
111
|
+
return codeCmp;
|
|
112
|
+
}
|
|
113
|
+
const selectorCmp = (a.Selector ?? '').localeCompare(b.Selector ?? '');
|
|
114
|
+
if (selectorCmp !== 0) {
|
|
115
|
+
return selectorCmp;
|
|
116
|
+
}
|
|
117
|
+
return (a.TimestampSeconds ?? 0) - (b.TimestampSeconds ?? 0);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
const HTML_SCRIPT_OPEN_TAG_REGEX = /<script\b([^>]*)>/gi;
|
|
121
|
+
const HTML_SCRIPT_TAG_ATTRS_SYNTAX_REGEX = /^(?:\s+[^\s"'<>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s"'=<>`]+))?)*\s*\/?$/;
|
|
122
|
+
const HTML_SCRIPT_TAG_ATTR_REGEX = /\b(src|href|xlink:href)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>"']+))/gi;
|
|
123
|
+
const SCRIPT_OR_IMPORT_RAW_ALLOWLIST_REGEX = /^[A-Za-z0-9._@/-]+$/;
|
|
124
|
+
function isWordBoundaryChar(ch) {
|
|
125
|
+
if (ch === undefined) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
return ((ch >= 'a' && ch <= 'z') ||
|
|
129
|
+
(ch >= 'A' && ch <= 'Z') ||
|
|
130
|
+
(ch >= '0' && ch <= '9') ||
|
|
131
|
+
ch === '_');
|
|
132
|
+
}
|
|
133
|
+
function toAsciiLowerCase(s) {
|
|
134
|
+
return s.replace(/[A-Z]/g, (c) => c.toLowerCase());
|
|
135
|
+
}
|
|
136
|
+
function isHtmlCloseTagDelimiter(ch) {
|
|
137
|
+
return (ch === ' ' ||
|
|
138
|
+
ch === '\t' ||
|
|
139
|
+
ch === '\n' ||
|
|
140
|
+
ch === '\f' ||
|
|
141
|
+
ch === '\r' ||
|
|
142
|
+
ch === '/' ||
|
|
143
|
+
ch === '>');
|
|
144
|
+
}
|
|
145
|
+
function findHtmlTagBlocks(html, tagLower) {
|
|
146
|
+
const blocks = [];
|
|
147
|
+
const lowerHtml = toAsciiLowerCase(html);
|
|
148
|
+
const openNeedle = `<${tagLower}`;
|
|
149
|
+
const closeNeedle = `</${tagLower}`;
|
|
150
|
+
let pos = 0;
|
|
151
|
+
while (pos < html.length) {
|
|
152
|
+
const openIdx = lowerHtml.indexOf(openNeedle, pos);
|
|
153
|
+
if (openIdx === -1) {
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
const afterOpenName = openIdx + openNeedle.length;
|
|
157
|
+
if (afterOpenName >= html.length || isWordBoundaryChar(html[afterOpenName])) {
|
|
158
|
+
pos = afterOpenName;
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
const openGt = html.indexOf('>', afterOpenName);
|
|
162
|
+
if (openGt === -1) {
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
const bodyStart = openGt + 1;
|
|
166
|
+
let closeSearch = bodyStart;
|
|
167
|
+
let matchedClose = false;
|
|
168
|
+
while (closeSearch < html.length) {
|
|
169
|
+
const closeIdx = lowerHtml.indexOf(closeNeedle, closeSearch);
|
|
170
|
+
if (closeIdx === -1) {
|
|
171
|
+
return blocks;
|
|
172
|
+
}
|
|
173
|
+
const afterCloseName = closeIdx + closeNeedle.length;
|
|
174
|
+
if (afterCloseName >= html.length || !isHtmlCloseTagDelimiter(html[afterCloseName])) {
|
|
175
|
+
closeSearch = afterCloseName;
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
const closeGt = html.indexOf('>', afterCloseName);
|
|
179
|
+
if (closeGt === -1) {
|
|
180
|
+
return blocks;
|
|
181
|
+
}
|
|
182
|
+
blocks.push({
|
|
183
|
+
fullStart: openIdx,
|
|
184
|
+
body: html.slice(bodyStart, closeIdx),
|
|
185
|
+
});
|
|
186
|
+
pos = closeGt + 1;
|
|
187
|
+
matchedClose = true;
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
if (!matchedClose) {
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return blocks;
|
|
195
|
+
}
|
|
196
|
+
function scanHtmlFile(file, authoredFilePaths) {
|
|
197
|
+
const issues = [];
|
|
198
|
+
const html = file.Content;
|
|
199
|
+
for (const rule of HTML_NETWORK_TAG_RULES) {
|
|
200
|
+
for (const match of html.matchAll(rule.Regex)) {
|
|
201
|
+
const line = computeLineNumber(html, match.index ?? 0);
|
|
202
|
+
issues.push(buildNetworkApiIssue(file.Path, line, rule.Label));
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
for (const match of html.matchAll(HTML_URL_ATTR_REGEX)) {
|
|
206
|
+
const attrName = match[1] ?? 'attr';
|
|
207
|
+
const rawUrl = decodeHtmlEntities((match[2] ?? match[3] ?? match[4] ?? '').trim());
|
|
208
|
+
const line = computeLineNumber(html, match.index ?? 0);
|
|
209
|
+
const issue = checkUrlReference(rawUrl, file.Path, line, `HTML attribute "${attrName}"`);
|
|
210
|
+
if (issue) {
|
|
211
|
+
issues.push(issue);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
for (const scriptTagMatch of html.matchAll(HTML_SCRIPT_OPEN_TAG_REGEX)) {
|
|
215
|
+
const attrs = scriptTagMatch[1] ?? '';
|
|
216
|
+
const tagLine = computeLineNumber(html, scriptTagMatch.index ?? 0);
|
|
217
|
+
if (!HTML_SCRIPT_TAG_ATTRS_SYNTAX_REGEX.test(attrs)) {
|
|
218
|
+
issues.push({
|
|
219
|
+
Code: MJ_NON_BUNDLE_URL_CODE,
|
|
220
|
+
Category: 'RemoteUrl',
|
|
221
|
+
Severity: 'Error',
|
|
222
|
+
Message: 'Malformed or ambiguous <script> opening tag attributes are forbidden.',
|
|
223
|
+
File: file.Path,
|
|
224
|
+
Line: tagLine,
|
|
225
|
+
});
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
for (const attrMatch of attrs.matchAll(HTML_SCRIPT_TAG_ATTR_REGEX)) {
|
|
229
|
+
const attrName = attrMatch[1] ?? 'src';
|
|
230
|
+
const rawAttr = attrMatch[2] ?? attrMatch[3] ?? attrMatch[4] ?? '';
|
|
231
|
+
const decodedUrl = decodeHtmlEntities(rawAttr.trim());
|
|
232
|
+
if (!checkUrlReference(decodedUrl, file.Path, tagLine, `HTML attribute "${attrName}"`)) {
|
|
233
|
+
const targetIssue = checkScriptOrImportTarget(rawAttr, file.Path, tagLine, `HTML <script ${attrName}>`, authoredFilePaths);
|
|
234
|
+
if (targetIssue) {
|
|
235
|
+
issues.push(targetIssue);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
for (const match of html.matchAll(HTML_SRCSET_ATTR_REGEX)) {
|
|
241
|
+
const rawSrcset = decodeHtmlEntities((match[1] ?? match[2] ?? match[3] ?? '').trim());
|
|
242
|
+
const line = computeLineNumber(html, match.index ?? 0);
|
|
243
|
+
for (const candidate of rawSrcset.split(',')) {
|
|
244
|
+
const urlPart = candidate.trim().split(/\s+/)[0] ?? '';
|
|
245
|
+
const issue = checkUrlReference(urlPart, file.Path, line, 'HTML attribute "srcset"');
|
|
246
|
+
if (issue) {
|
|
247
|
+
issues.push(issue);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
for (const match of html.matchAll(HTML_STYLE_ATTR_REGEX)) {
|
|
252
|
+
const styleContent = decodeHtmlEntities(match[1] ?? match[2] ?? '');
|
|
253
|
+
const line = computeLineNumber(html, match.index ?? 0);
|
|
254
|
+
issues.push(...scanCssBlock(styleContent, file.Path, line));
|
|
255
|
+
}
|
|
256
|
+
for (const match of html.matchAll(HTML_EVENT_HANDLER_ATTR_REGEX)) {
|
|
257
|
+
const handlerJs = decodeHtmlEntities(match[1] ?? match[2] ?? match[3] ?? '');
|
|
258
|
+
const line = computeLineNumber(html, match.index ?? 0);
|
|
259
|
+
issues.push(...scanJsBlock(handlerJs, file.Path, line, authoredFilePaths));
|
|
260
|
+
}
|
|
261
|
+
for (const styleBlock of findHtmlTagBlocks(html, 'style')) {
|
|
262
|
+
const line = computeLineNumber(html, styleBlock.fullStart);
|
|
263
|
+
issues.push(...scanCssBlock(styleBlock.body, file.Path, line));
|
|
264
|
+
}
|
|
265
|
+
for (const scriptBlock of findHtmlTagBlocks(html, 'script')) {
|
|
266
|
+
const line = computeLineNumber(html, scriptBlock.fullStart);
|
|
267
|
+
issues.push(...scanJsBlock(scriptBlock.body, file.Path, line, authoredFilePaths));
|
|
268
|
+
}
|
|
269
|
+
return issues;
|
|
270
|
+
}
|
|
271
|
+
function decodeHtmlEntities(value) {
|
|
272
|
+
return value
|
|
273
|
+
.replace(/&#x([0-9a-fA-F]+);?/g, (_, hex) => {
|
|
274
|
+
const code = Number.parseInt(hex, 16);
|
|
275
|
+
return Number.isFinite(code) && code > 0 && code <= 0x10ffff ? String.fromCodePoint(code) : '';
|
|
276
|
+
})
|
|
277
|
+
.replace(/&#([0-9]+);?/g, (_, dec) => {
|
|
278
|
+
const code = Number.parseInt(dec, 10);
|
|
279
|
+
return Number.isFinite(code) && code > 0 && code <= 0x10ffff ? String.fromCodePoint(code) : '';
|
|
280
|
+
})
|
|
281
|
+
.replace(/"/gi, '"')
|
|
282
|
+
.replace(/'/gi, "'")
|
|
283
|
+
.replace(/'/g, "'")
|
|
284
|
+
.replace(/</gi, '<')
|
|
285
|
+
.replace(/>/gi, '>')
|
|
286
|
+
.replace(/&/gi, '&');
|
|
287
|
+
}
|
|
288
|
+
function scanCssBlock(css, filePath, baseLine) {
|
|
289
|
+
const issues = [];
|
|
290
|
+
for (const match of css.matchAll(CSS_IMPORT_REGEX)) {
|
|
291
|
+
const rawUrl = (match[1] ?? match[2] ?? match[3] ?? '').trim();
|
|
292
|
+
const line = baseLine + computeLineNumber(css, match.index ?? 0) - 1;
|
|
293
|
+
const issue = checkUrlReference(rawUrl, filePath, line, 'CSS @import');
|
|
294
|
+
if (issue) {
|
|
295
|
+
issues.push(issue);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
for (const match of css.matchAll(CSS_URL_REGEX)) {
|
|
299
|
+
const rawUrl = (match[1] ?? match[2] ?? match[3] ?? '').trim();
|
|
300
|
+
const line = baseLine + computeLineNumber(css, match.index ?? 0) - 1;
|
|
301
|
+
const issue = checkUrlReference(rawUrl, filePath, line, 'CSS url()');
|
|
302
|
+
if (issue) {
|
|
303
|
+
issues.push(issue);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return issues;
|
|
307
|
+
}
|
|
308
|
+
function extractJsStringLiterals(js) {
|
|
309
|
+
const literals = [];
|
|
310
|
+
const failedUntil = { '"': -1, "'": -1, '`': -1 };
|
|
311
|
+
let i = 0;
|
|
312
|
+
while (i < js.length) {
|
|
313
|
+
const ch = js[i];
|
|
314
|
+
if ((ch === '"' || ch === "'" || ch === '`') && i >= failedUntil[ch]) {
|
|
315
|
+
const quote = ch;
|
|
316
|
+
const startIdx = i;
|
|
317
|
+
let j = i + 1;
|
|
318
|
+
let closed = false;
|
|
319
|
+
while (j < js.length) {
|
|
320
|
+
const c = js[j];
|
|
321
|
+
if (c === '\\') {
|
|
322
|
+
if (j + 1 >= js.length) {
|
|
323
|
+
break;
|
|
324
|
+
}
|
|
325
|
+
const nextCh = js[j + 1];
|
|
326
|
+
if (nextCh === '\n' || nextCh === '\r' || nextCh === '\u2028' || nextCh === '\u2029') {
|
|
327
|
+
break;
|
|
328
|
+
}
|
|
329
|
+
j += 2;
|
|
330
|
+
continue;
|
|
331
|
+
}
|
|
332
|
+
if (c === quote) {
|
|
333
|
+
literals.push({ value: js.slice(startIdx + 1, j), index: startIdx });
|
|
334
|
+
i = j + 1;
|
|
335
|
+
closed = true;
|
|
336
|
+
break;
|
|
337
|
+
}
|
|
338
|
+
if (quote !== '`' && (c === '\r' || c === '\n')) {
|
|
339
|
+
break;
|
|
340
|
+
}
|
|
341
|
+
j++;
|
|
342
|
+
}
|
|
343
|
+
if (!closed) {
|
|
344
|
+
failedUntil[quote] = j;
|
|
345
|
+
i++;
|
|
346
|
+
}
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
i++;
|
|
350
|
+
}
|
|
351
|
+
return literals;
|
|
352
|
+
}
|
|
353
|
+
function scanJsBlock(js, filePath, baseLine, authoredFilePaths) {
|
|
354
|
+
const issues = [];
|
|
355
|
+
for (const rule of JS_NETWORK_API_RULES) {
|
|
356
|
+
for (const match of js.matchAll(rule.Regex)) {
|
|
357
|
+
const line = baseLine + computeLineNumber(js, match.index ?? 0) - 1;
|
|
358
|
+
issues.push(buildNetworkApiIssue(filePath, line, rule.Label));
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
for (const regex of [JS_IMPORT_FROM_REGEX, JS_SIDE_EFFECT_IMPORT_REGEX, JS_DYNAMIC_IMPORT_REGEX]) {
|
|
362
|
+
for (const match of js.matchAll(regex)) {
|
|
363
|
+
const specifier = match[1] ?? match[2] ?? match[3] ?? '';
|
|
364
|
+
const line = baseLine + computeLineNumber(js, match.index ?? 0) - 1;
|
|
365
|
+
const issue = checkScriptOrImportTarget(specifier, filePath, line, 'JS import specifier', authoredFilePaths);
|
|
366
|
+
if (issue) {
|
|
367
|
+
issues.push(issue);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
for (const match of extractJsStringLiterals(js)) {
|
|
372
|
+
const literal = match.value.trim();
|
|
373
|
+
if (!looksLikeUrlOrTraversalInLiteral(literal)) {
|
|
374
|
+
continue;
|
|
375
|
+
}
|
|
376
|
+
const line = baseLine + computeLineNumber(js, match.index) - 1;
|
|
377
|
+
const issue = checkUrlReference(literal, filePath, line, 'JS string literal');
|
|
378
|
+
if (issue) {
|
|
379
|
+
issues.push(issue);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
return issues;
|
|
383
|
+
}
|
|
384
|
+
function checkScriptOrImportTarget(rawUrl, filePath, line, contextLabel, authoredFilePaths) {
|
|
385
|
+
const urlIssue = checkUrlReference(rawUrl, filePath, line, contextLabel);
|
|
386
|
+
if (urlIssue) {
|
|
387
|
+
return urlIssue;
|
|
388
|
+
}
|
|
389
|
+
if (!SCRIPT_OR_IMPORT_RAW_ALLOWLIST_REGEX.test(rawUrl) || rawUrl.startsWith('/')) {
|
|
390
|
+
return {
|
|
391
|
+
Code: MJ_NON_BUNDLE_URL_CODE,
|
|
392
|
+
Category: 'RemoteUrl',
|
|
393
|
+
Severity: 'Error',
|
|
394
|
+
Message: `Script or module reference "${rawUrl}" in ${contextLabel} must match ^[A-Za-z0-9._@/-]+$ with no leading "/" and resolve to an entry in bundle.Files.`,
|
|
395
|
+
File: filePath,
|
|
396
|
+
Line: line,
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
const resolved = resolveBundleRelativePath(filePath, rawUrl);
|
|
400
|
+
if (!resolved || !authoredFilePaths.has(resolved)) {
|
|
401
|
+
return {
|
|
402
|
+
Code: MJ_NON_BUNDLE_URL_CODE,
|
|
403
|
+
Category: 'RemoteUrl',
|
|
404
|
+
Severity: 'Error',
|
|
405
|
+
Message: `Script or module reference "${rawUrl}" in ${contextLabel} must resolve to an entry in bundle.Files.`,
|
|
406
|
+
File: filePath,
|
|
407
|
+
Line: line,
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
return null;
|
|
411
|
+
}
|
|
412
|
+
function looksLikeUrlOrTraversalInLiteral(literal) {
|
|
413
|
+
if (!literal || literal.includes(' ') || literal.includes('\n')) {
|
|
414
|
+
return false;
|
|
415
|
+
}
|
|
416
|
+
if (/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(literal)) {
|
|
417
|
+
return true;
|
|
418
|
+
}
|
|
419
|
+
if (/^\/\/[a-zA-Z0-9._-]+/.test(literal)) {
|
|
420
|
+
return true;
|
|
421
|
+
}
|
|
422
|
+
if (/(?:^|\/)\.\.(?:\/|$)/.test(literal)) {
|
|
423
|
+
return true;
|
|
424
|
+
}
|
|
425
|
+
return false;
|
|
426
|
+
}
|
|
427
|
+
function checkUrlReference(rawUrl, filePath, line, contextLabel) {
|
|
428
|
+
const trimmed = rawUrl.trim();
|
|
429
|
+
if (!trimmed || trimmed.startsWith('#')) {
|
|
430
|
+
return null;
|
|
431
|
+
}
|
|
432
|
+
if (/^(?:data|blob):/i.test(trimmed)) {
|
|
433
|
+
return null;
|
|
434
|
+
}
|
|
435
|
+
if (/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(trimmed) || trimmed.startsWith('//')) {
|
|
436
|
+
return {
|
|
437
|
+
Code: MJ_NON_BUNDLE_URL_CODE,
|
|
438
|
+
Category: 'RemoteUrl',
|
|
439
|
+
Severity: 'Error',
|
|
440
|
+
Message: `Forbidden non-bundle URL "${trimmed}" in ${contextLabel}; only bundle-relative paths, data:, and blob: are allowed.`,
|
|
441
|
+
File: filePath,
|
|
442
|
+
Line: line,
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
if (escapesBundleRoot(filePath, trimmed)) {
|
|
446
|
+
return {
|
|
447
|
+
Code: MJ_NON_BUNDLE_URL_CODE,
|
|
448
|
+
Category: 'RemoteUrl',
|
|
449
|
+
Severity: 'Error',
|
|
450
|
+
Message: `Relative path "${trimmed}" in ${contextLabel} resolves outside the bundle root.`,
|
|
451
|
+
File: filePath,
|
|
452
|
+
Line: line,
|
|
453
|
+
};
|
|
454
|
+
}
|
|
455
|
+
return null;
|
|
456
|
+
}
|
|
457
|
+
function escapesBundleRoot(fromFilePath, referenceUrl) {
|
|
458
|
+
const cleanRef = (referenceUrl.split(/[?#]/)[0] ?? '').replace(/\\/g, '/');
|
|
459
|
+
if (!cleanRef) {
|
|
460
|
+
return false;
|
|
461
|
+
}
|
|
462
|
+
return resolveBundleRelativePath(fromFilePath, referenceUrl) === null;
|
|
463
|
+
}
|
|
464
|
+
function resolveBundleRelativePath(fromFilePath, referenceUrl) {
|
|
465
|
+
const trimmed = referenceUrl.trim();
|
|
466
|
+
if (!trimmed ||
|
|
467
|
+
trimmed.startsWith('#') ||
|
|
468
|
+
/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(trimmed) ||
|
|
469
|
+
trimmed.startsWith('//')) {
|
|
470
|
+
return null;
|
|
471
|
+
}
|
|
472
|
+
const cleanRef = (trimmed.split(/[?#]/)[0] ?? '').replace(/\\/g, '/');
|
|
473
|
+
if (!cleanRef) {
|
|
474
|
+
return null;
|
|
475
|
+
}
|
|
476
|
+
const dirNormalized = path.posix.dirname(fromFilePath.replace(/\\/g, '/'));
|
|
477
|
+
const stack = cleanRef.startsWith('/') || dirNormalized === '.' || dirNormalized === ''
|
|
478
|
+
? []
|
|
479
|
+
: dirNormalized.split('/').filter((seg) => seg.length > 0 && seg !== '.');
|
|
480
|
+
const segments = (cleanRef.startsWith('/') ? cleanRef.slice(1) : cleanRef).split('/');
|
|
481
|
+
for (const seg of segments) {
|
|
482
|
+
if (seg === '' || seg === '.') {
|
|
483
|
+
continue;
|
|
484
|
+
}
|
|
485
|
+
if (seg === '..') {
|
|
486
|
+
if (stack.length === 0) {
|
|
487
|
+
return null;
|
|
488
|
+
}
|
|
489
|
+
stack.pop();
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
stack.push(seg);
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
return stack.length > 0 ? stack.join('/') : null;
|
|
496
|
+
}
|
|
497
|
+
function buildNetworkApiIssue(filePath, line, label) {
|
|
498
|
+
return {
|
|
499
|
+
Code: MJ_NETWORK_API_CODE,
|
|
500
|
+
Category: 'RemoteUrl',
|
|
501
|
+
Severity: 'Error',
|
|
502
|
+
Message: `Forbidden network or navigation API (${label}) detected in "${filePath}".`,
|
|
503
|
+
File: filePath,
|
|
504
|
+
Line: line,
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
function computeLineNumber(content, charIndex) {
|
|
508
|
+
let line = 1;
|
|
509
|
+
for (let i = 0; i < charIndex && i < content.length; i++) {
|
|
510
|
+
if (content.charCodeAt(i) === 10) {
|
|
511
|
+
line++;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
return line;
|
|
515
|
+
}
|
|
516
|
+
function deduplicateIssues(issues) {
|
|
517
|
+
const seen = new Set();
|
|
518
|
+
const result = [];
|
|
519
|
+
for (const issue of issues) {
|
|
520
|
+
const key = `${issue.Code}|${issue.Category}|${issue.File ?? ''}|${issue.Line ?? 0}|${issue.Message}`;
|
|
521
|
+
if (!seen.has(key)) {
|
|
522
|
+
seen.add(key);
|
|
523
|
+
result.push(issue);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
return result;
|
|
527
|
+
}
|
|
528
|
+
//# sourceMappingURL=lint-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint-gate.js","sourceRoot":"","sources":["../src/lint-gate.ts"],"names":[],"mappings":"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"}
|