supplychain_security_sdk 1.1.5 → 1.1.7
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/dist/build.js +335 -26
- package/dist/buildIPC.js +3 -3
- package/dist/buildMultiProcess.js +3 -2
- package/dist/index.js +90 -24
- package/package.json +1 -1
package/dist/build.js
CHANGED
|
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.harden = exports.makeCompartment = void 0;
|
|
39
|
+
exports.scuttleOptionsPlaceholder = exports.scuttleGlobalThis = exports.loadScuttleOptions = exports.harden = exports.makeCompartment = void 0;
|
|
40
40
|
exports.protectModuleRef = protectModuleRef;
|
|
41
41
|
const t = __importStar(require("@babel/types"));
|
|
42
42
|
const traverse_1 = __importDefault(require("@babel/traverse"));
|
|
@@ -113,6 +113,7 @@ const makeCompartment = (__rules, __moduleID = 0, __dev = false) => {
|
|
|
113
113
|
const devResult = { allow: {}, disallow: {} };
|
|
114
114
|
// 执行时this指向globalThis/undefined的函数
|
|
115
115
|
const globalFuncs = [
|
|
116
|
+
"importScripts",
|
|
116
117
|
"alert",
|
|
117
118
|
"atob",
|
|
118
119
|
"blur",
|
|
@@ -257,6 +258,9 @@ const harden = () => {
|
|
|
257
258
|
"Promise",
|
|
258
259
|
"String",
|
|
259
260
|
"JSON",
|
|
261
|
+
"RegExp",
|
|
262
|
+
"Response",
|
|
263
|
+
"Request",
|
|
260
264
|
];
|
|
261
265
|
const skipProps = new Set(["size", "length"]);
|
|
262
266
|
for (const obj of objs) {
|
|
@@ -268,19 +272,44 @@ const harden = () => {
|
|
|
268
272
|
if (skipProps.has(prop)) {
|
|
269
273
|
return;
|
|
270
274
|
}
|
|
271
|
-
const
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
275
|
+
const desc = Object.getOwnPropertyDescriptor(o.prototype, prop);
|
|
276
|
+
if (desc == null || !desc.configurable) {
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
if (desc.value != null) {
|
|
280
|
+
const value = desc.value;
|
|
281
|
+
Object.defineProperty(o.prototype, prop, {
|
|
282
|
+
get() {
|
|
283
|
+
return value;
|
|
284
|
+
},
|
|
285
|
+
set(v) {
|
|
286
|
+
if (this !== o.prototype) {
|
|
287
|
+
Object.defineProperty(this, prop, {
|
|
288
|
+
value: v,
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
const oget = desc.get, oset = desc.set;
|
|
296
|
+
Object.defineProperty(o.prototype, prop, {
|
|
297
|
+
get() {
|
|
298
|
+
if (oget == null) {
|
|
299
|
+
return undefined;
|
|
300
|
+
}
|
|
301
|
+
return oget.call(this);
|
|
302
|
+
},
|
|
303
|
+
set(v) {
|
|
304
|
+
if (oset == null) {
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
if (this !== o.prototype) {
|
|
308
|
+
oset.call(this, v);
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
});
|
|
312
|
+
}
|
|
284
313
|
});
|
|
285
314
|
}
|
|
286
315
|
// 然后冻结对象本身
|
|
@@ -324,6 +353,266 @@ const harden = () => {
|
|
|
324
353
|
Object.freeze(Object);
|
|
325
354
|
};
|
|
326
355
|
exports.harden = harden;
|
|
356
|
+
const loadScuttleOptions = () => {
|
|
357
|
+
function deepFreeze(obj, seen = new WeakSet()) {
|
|
358
|
+
if (obj === null || typeof obj !== "object") {
|
|
359
|
+
return obj;
|
|
360
|
+
}
|
|
361
|
+
// 检测循环引用
|
|
362
|
+
if (seen.has(obj)) {
|
|
363
|
+
return obj;
|
|
364
|
+
}
|
|
365
|
+
seen.add(obj);
|
|
366
|
+
Object.freeze(obj);
|
|
367
|
+
for (const key of Reflect.ownKeys(obj)) {
|
|
368
|
+
const value = obj[key];
|
|
369
|
+
if (value && typeof value === "object") {
|
|
370
|
+
deepFreeze(value, seen);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
return obj;
|
|
374
|
+
}
|
|
375
|
+
if (globalThis.__ru1n_qiuwen_scuttle_options__ == null) {
|
|
376
|
+
//@ts-expect-error
|
|
377
|
+
const options = PLACEHOLDER_SCUTTLE_OPTIONS;
|
|
378
|
+
Object.defineProperty(globalThis, "__ru1n_qiuwen_scuttle_options__", {
|
|
379
|
+
configurable: false,
|
|
380
|
+
enumerable: false,
|
|
381
|
+
writable: false,
|
|
382
|
+
value: deepFreeze(options),
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
};
|
|
386
|
+
exports.loadScuttleOptions = loadScuttleOptions;
|
|
387
|
+
const scuttleGlobalThis = () => {
|
|
388
|
+
let getDesc;
|
|
389
|
+
try {
|
|
390
|
+
getDesc = Object.getOwnPropertyDescriptor;
|
|
391
|
+
}
|
|
392
|
+
catch (e) {
|
|
393
|
+
// 如果不能访问scuttle, 说明已经scuttle过了
|
|
394
|
+
return null;
|
|
395
|
+
}
|
|
396
|
+
const defineProp = Object.defineProperty;
|
|
397
|
+
const getOwnPropNames = Object.getOwnPropertyNames;
|
|
398
|
+
const error = Error;
|
|
399
|
+
const log = (s) => { };
|
|
400
|
+
const set = Set;
|
|
401
|
+
const stringify = JSON.stringify;
|
|
402
|
+
const int = parseInt;
|
|
403
|
+
const slice = Array.prototype.slice;
|
|
404
|
+
const globalFuncs = [
|
|
405
|
+
"importScripts",
|
|
406
|
+
"alert",
|
|
407
|
+
"atob",
|
|
408
|
+
"blur",
|
|
409
|
+
"btoa",
|
|
410
|
+
"cancelAnimationFrame",
|
|
411
|
+
"cancelIdleCallback",
|
|
412
|
+
"captureEvents",
|
|
413
|
+
"clearInterval",
|
|
414
|
+
"clearTimeout",
|
|
415
|
+
"close",
|
|
416
|
+
"confirm",
|
|
417
|
+
"find",
|
|
418
|
+
"focus",
|
|
419
|
+
"getComputedStyle",
|
|
420
|
+
"getSelection",
|
|
421
|
+
"matchMedia",
|
|
422
|
+
"moveBy",
|
|
423
|
+
"moveTo",
|
|
424
|
+
"open",
|
|
425
|
+
"postMessage",
|
|
426
|
+
"print",
|
|
427
|
+
"prompt",
|
|
428
|
+
"queueMicrotask",
|
|
429
|
+
"releaseEvents",
|
|
430
|
+
"reportError",
|
|
431
|
+
"requestAnimationFrame",
|
|
432
|
+
"requestIdleCallback",
|
|
433
|
+
"resizeBy",
|
|
434
|
+
"resizeTo",
|
|
435
|
+
"setInterval",
|
|
436
|
+
"setTimeout",
|
|
437
|
+
"stop",
|
|
438
|
+
"structuredClone",
|
|
439
|
+
"webkitCancelAnimationFrame",
|
|
440
|
+
"webkitRequestAnimationFrame",
|
|
441
|
+
"fetchLater",
|
|
442
|
+
"webkitRequestFileSystem",
|
|
443
|
+
"webkitResolveLocalFileSystemURL",
|
|
444
|
+
"addEventListener",
|
|
445
|
+
"dispatchEvent",
|
|
446
|
+
"removeEventListener",
|
|
447
|
+
"when",
|
|
448
|
+
"fetch",
|
|
449
|
+
"scroll",
|
|
450
|
+
"scrollBy",
|
|
451
|
+
"scrollTo",
|
|
452
|
+
"getScreenDetails",
|
|
453
|
+
"queryLocalFonts",
|
|
454
|
+
"showDirectoryPicker",
|
|
455
|
+
"showOpenFilePicker",
|
|
456
|
+
"showSaveFilePicker",
|
|
457
|
+
];
|
|
458
|
+
const myGlobal = {};
|
|
459
|
+
const og = globalThis;
|
|
460
|
+
const msgEvent = MessageEvent;
|
|
461
|
+
const oldSource = getDesc(msgEvent.prototype, "source").get;
|
|
462
|
+
defineProp(msgEvent.prototype, "source", {
|
|
463
|
+
get() {
|
|
464
|
+
const result = oldSource.call(this);
|
|
465
|
+
if (result === og) {
|
|
466
|
+
return myGlobal;
|
|
467
|
+
}
|
|
468
|
+
return result;
|
|
469
|
+
},
|
|
470
|
+
configurable: false,
|
|
471
|
+
enumerable: true,
|
|
472
|
+
});
|
|
473
|
+
const props = new set(getOwnPropNames(globalThis));
|
|
474
|
+
for (const k in globalThis) {
|
|
475
|
+
props.add(k);
|
|
476
|
+
}
|
|
477
|
+
const skipProps = [
|
|
478
|
+
"self",
|
|
479
|
+
"window",
|
|
480
|
+
"globalThis",
|
|
481
|
+
"__ru1n_qiuwen_myGlobal__",
|
|
482
|
+
"__proto__",
|
|
483
|
+
];
|
|
484
|
+
if (globalThis.__ru1n_qiuwen_scuttle_options__ == null) {
|
|
485
|
+
log("No scuttle options found!!!!!");
|
|
486
|
+
throw new error("No scuttle options found");
|
|
487
|
+
}
|
|
488
|
+
const options = globalThis.__ru1n_qiuwen_scuttle_options__;
|
|
489
|
+
for (const prop of props) {
|
|
490
|
+
if (skipProps.includes(prop)) {
|
|
491
|
+
continue;
|
|
492
|
+
}
|
|
493
|
+
// on系列函数是事件响应函数, 需要被正确的绑定到globalThis上
|
|
494
|
+
if (prop.startsWith("on")) {
|
|
495
|
+
defineProp(myGlobal, prop, {
|
|
496
|
+
[prop]: {
|
|
497
|
+
get() {
|
|
498
|
+
return globalThis[prop];
|
|
499
|
+
},
|
|
500
|
+
set(value) {
|
|
501
|
+
globalThis[prop] = value;
|
|
502
|
+
},
|
|
503
|
+
enumerable: true,
|
|
504
|
+
configurable: false,
|
|
505
|
+
},
|
|
506
|
+
});
|
|
507
|
+
continue;
|
|
508
|
+
}
|
|
509
|
+
if (globalFuncs.includes(prop)) {
|
|
510
|
+
const originalFunc = globalThis[prop];
|
|
511
|
+
myGlobal[prop] = function (...args) {
|
|
512
|
+
if (this === myGlobal) {
|
|
513
|
+
return originalFunc.apply(undefined, args);
|
|
514
|
+
}
|
|
515
|
+
else {
|
|
516
|
+
return originalFunc.apply(this, args);
|
|
517
|
+
}
|
|
518
|
+
};
|
|
519
|
+
}
|
|
520
|
+
else {
|
|
521
|
+
myGlobal[prop] = globalThis[prop];
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
defineProp(globalThis, "__ru1n_qiuwen_myGlobal__", {
|
|
525
|
+
get() {
|
|
526
|
+
const stack = new error().stack;
|
|
527
|
+
if (stack == null) {
|
|
528
|
+
log("No call stack available.");
|
|
529
|
+
return null;
|
|
530
|
+
}
|
|
531
|
+
// 2. 按换行符分割成数组
|
|
532
|
+
const stackLines = stack.split("\n");
|
|
533
|
+
// 3. 找到第二层调用信息
|
|
534
|
+
let targetLine = "", cc = 0;
|
|
535
|
+
for (let i = 1; i < stackLines.length; i++) {
|
|
536
|
+
const line = stackLines[i].trim();
|
|
537
|
+
if (line.startsWith("at ")) {
|
|
538
|
+
if (cc === 1) {
|
|
539
|
+
targetLine = line;
|
|
540
|
+
break;
|
|
541
|
+
}
|
|
542
|
+
cc++;
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
if (!targetLine) {
|
|
546
|
+
log(`No valid call stack information found. ${stack}`);
|
|
547
|
+
return null; // 没有找到有效的调用栈信息
|
|
548
|
+
}
|
|
549
|
+
// 4. 使用正则表达式解析目标行
|
|
550
|
+
// 匹配格式: "at [函数名] (文件名:行号:列号)" 或 "at 文件名:行号:列号"
|
|
551
|
+
const regex1 = /at\s+.+\s+\((.+):(\d+):(\d+)\)/; // 有函数名和括号的情况
|
|
552
|
+
const regex2 = /at\s+(.+):(\d+):(\d+)/; // 没有函数名和括号的情况
|
|
553
|
+
let match = targetLine.match(regex1) || targetLine.match(regex2);
|
|
554
|
+
if (match == null || match.length < 4) {
|
|
555
|
+
log(`Unable to parse call stack line: ${targetLine}`);
|
|
556
|
+
return null;
|
|
557
|
+
}
|
|
558
|
+
const callerInfo = {
|
|
559
|
+
fileName: match[1],
|
|
560
|
+
lineNumber: int(match[2], 10),
|
|
561
|
+
columnNumber: int(match[3], 10),
|
|
562
|
+
rawLine: targetLine,
|
|
563
|
+
};
|
|
564
|
+
// 校验取值来源是否合法
|
|
565
|
+
for (const option of options) {
|
|
566
|
+
if (callerInfo.fileName.endsWith(option.file) &&
|
|
567
|
+
callerInfo.lineNumber === option.line &&
|
|
568
|
+
callerInfo.columnNumber === option.col) {
|
|
569
|
+
log(`Authorized access to __ru1n_qiuwen_myGlobal__: ${stringify(callerInfo)}`);
|
|
570
|
+
return myGlobal;
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
log(`Unauthorized access to __ru1n_qiuwen_myGlobal__: ${stringify(callerInfo)}`);
|
|
574
|
+
return null;
|
|
575
|
+
},
|
|
576
|
+
set(value) {
|
|
577
|
+
throw new error(`Setting global property "__ru1n_qiuwen_myGlobal__" is restricted.`);
|
|
578
|
+
},
|
|
579
|
+
configurable: false,
|
|
580
|
+
enumerable: false,
|
|
581
|
+
});
|
|
582
|
+
myGlobal.window = myGlobal;
|
|
583
|
+
myGlobal.self = myGlobal;
|
|
584
|
+
myGlobal.globalThis = myGlobal;
|
|
585
|
+
for (const prop of props) {
|
|
586
|
+
if (skipProps.includes(prop) || prop.startsWith("on")) {
|
|
587
|
+
continue;
|
|
588
|
+
}
|
|
589
|
+
const desc = getDesc(globalThis, prop);
|
|
590
|
+
if (!desc ||
|
|
591
|
+
!desc.configurable ||
|
|
592
|
+
desc.get ||
|
|
593
|
+
desc.set ||
|
|
594
|
+
[
|
|
595
|
+
"OffscreenCanvas",
|
|
596
|
+
"Reflect",
|
|
597
|
+
"__ru1n_qiuwen_scuttle_options__",
|
|
598
|
+
].includes(prop)) {
|
|
599
|
+
continue;
|
|
600
|
+
}
|
|
601
|
+
defineProp(globalThis, prop, {
|
|
602
|
+
get() {
|
|
603
|
+
log(`Access to global property "${prop}" on globalThis is restricted.`);
|
|
604
|
+
throw new error(`Access to global property "${prop}" on globalThis is restricted.`);
|
|
605
|
+
},
|
|
606
|
+
set(value) {
|
|
607
|
+
log(`Setting global property "${prop}" on globalThis is restricted.`);
|
|
608
|
+
throw new error(`Setting global property "${prop}" on globalThis is restricted.`);
|
|
609
|
+
},
|
|
610
|
+
enumerable: true,
|
|
611
|
+
configurable: false,
|
|
612
|
+
});
|
|
613
|
+
}
|
|
614
|
+
};
|
|
615
|
+
exports.scuttleGlobalThis = scuttleGlobalThis;
|
|
327
616
|
const analyzeRule = (map) => {
|
|
328
617
|
//@ts-expect-error
|
|
329
618
|
const rule = globalThis.__ru1nSecSDK;
|
|
@@ -353,10 +642,23 @@ const analyzeRule = (map) => {
|
|
|
353
642
|
};
|
|
354
643
|
const makeCompartmentFn = (0, parser_1.parseExpression)(exports.makeCompartment.toString());
|
|
355
644
|
const hardenFn = (0, parser_1.parseExpression)(exports.harden.toString());
|
|
356
|
-
|
|
645
|
+
exports.scuttleOptionsPlaceholder = "PLACEHOLDER_SCUTTLE_OPTIONS".repeat(100);
|
|
646
|
+
const loadScuttleOptionsFn = (0, parser_1.parseExpression)(exports.loadScuttleOptions
|
|
647
|
+
.toString()
|
|
648
|
+
.replace("PLACEHOLDER_SCUTTLE_OPTIONS", exports.scuttleOptionsPlaceholder));
|
|
649
|
+
const scuttleGlobalThisFn = (0, parser_1.parseExpression)(exports.scuttleGlobalThis.toString());
|
|
650
|
+
function protectModuleRef(assetCode, moduleMap, policy, rootModuleIDs, dev, moduleDependencies, enableScuttle, enableProto = true) {
|
|
357
651
|
const ast = (0, parser_1.parse)(assetCode, {
|
|
358
652
|
sourceType: "unambiguous",
|
|
359
653
|
});
|
|
654
|
+
// 去除所有use strict
|
|
655
|
+
(0, traverse_1.default)(ast, {
|
|
656
|
+
Directive(path) {
|
|
657
|
+
if (path.node.value.value === "use strict") {
|
|
658
|
+
path.remove();
|
|
659
|
+
}
|
|
660
|
+
},
|
|
661
|
+
});
|
|
360
662
|
// 判断是否为webpack打包产物
|
|
361
663
|
let type = 0;
|
|
362
664
|
if (t.isExpressionStatement(ast.program.body[0]) &&
|
|
@@ -375,7 +677,10 @@ function protectModuleRef(assetCode, moduleMap, policy, rootModuleIDs, dev, modu
|
|
|
375
677
|
type = 2;
|
|
376
678
|
}
|
|
377
679
|
if (type === 0) {
|
|
378
|
-
|
|
680
|
+
addScuttle();
|
|
681
|
+
return new generator_1.CodeGenerator(ast, {
|
|
682
|
+
sourceMaps: true,
|
|
683
|
+
}).generate();
|
|
379
684
|
}
|
|
380
685
|
else if (type === 2) {
|
|
381
686
|
ast.program.body = [
|
|
@@ -486,7 +791,8 @@ function protectModuleRef(assetCode, moduleMap, policy, rootModuleIDs, dev, modu
|
|
|
486
791
|
: t.stringLiteral(mid),
|
|
487
792
|
t.booleanLiteral(dev),
|
|
488
793
|
])
|
|
489
|
-
: (console.log(`[*] disable global protection for ${file}`),
|
|
794
|
+
: (console.log(`[*] disable global protection for ${file}`),
|
|
795
|
+
t.identifier("globalThis"))),
|
|
490
796
|
]),
|
|
491
797
|
t.objectExpression([
|
|
492
798
|
t.objectMethod("method", t.identifier("has"), [], t.blockStatement([
|
|
@@ -528,17 +834,20 @@ function protectModuleRef(assetCode, moduleMap, policy, rootModuleIDs, dev, modu
|
|
|
528
834
|
}
|
|
529
835
|
},
|
|
530
836
|
});
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
837
|
+
function addScuttle() {
|
|
838
|
+
if (enableScuttle !== "disable") {
|
|
839
|
+
// 在首部添加scuttle模式代码
|
|
840
|
+
ast.program.body = [
|
|
841
|
+
t.withStatement((0, parser_1.parseExpression)(`globalThis.__ru1n_qiuwen_myGlobal__`), t.blockStatement(ast.program.body)),
|
|
842
|
+
];
|
|
843
|
+
ast.program.body.unshift(t.expressionStatement(t.callExpression(scuttleGlobalThisFn, [])));
|
|
844
|
+
ast.program.body.unshift(t.expressionStatement(t.callExpression(loadScuttleOptionsFn, [])));
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
addScuttle();
|
|
539
848
|
const generator = new generator_1.CodeGenerator(ast, {
|
|
540
849
|
sourceMaps: true,
|
|
541
850
|
});
|
|
542
851
|
return generator.generate();
|
|
543
852
|
}
|
|
544
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNlZBLDRDQXVZQztBQXB1QkQsZ0RBQWtDO0FBQ2xDLCtEQUF1QztBQUN2QywwQ0FBdUQ7QUFDdkQsZ0RBQWlEO0FBR2pELHNDQUE2QztBQUV0QyxNQUFNLGVBQWUsR0FBRyxDQUMzQixPQUFnQyxFQUNoQyxhQUE4QixDQUFDLEVBQy9CLFFBQWlCLEtBQUssRUFDaEIsRUFBRTtJQUNSLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDO1FBQ3hCLGdCQUFnQjtRQUNoQixPQUFPO1FBQ1AsYUFBYTtRQUNiLFNBQVM7UUFDVCxRQUFRO1FBQ1IsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixTQUFTO1FBQ1QsVUFBVTtRQUNWLE1BQU07UUFDTixPQUFPO1FBQ1AsV0FBVztRQUNYLHNCQUFzQjtRQUN0QixjQUFjO1FBQ2QsY0FBYztRQUNkLGNBQWM7UUFDZCxVQUFVO1FBQ1YsVUFBVTtRQUNWLFlBQVk7UUFDWixZQUFZO1FBQ1osV0FBVztRQUNYLE1BQU07UUFDTixVQUFVO1FBQ1YsTUFBTTtRQUNOLEtBQUs7UUFDTCxNQUFNO1FBQ04sS0FBSztRQUNMLFFBQVE7UUFDUixRQUFRO1FBQ1IsU0FBUztRQUNULE9BQU87UUFDUCxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLFNBQVM7UUFDVCxRQUFRO1FBQ1IsS0FBSztRQUNMLG1CQUFtQjtRQUNuQixRQUFRO1FBQ1IsUUFBUTtRQUNSLGFBQWE7UUFDYixXQUFXO1FBQ1gsYUFBYTtRQUNiLGFBQWE7UUFDYixZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLFVBQVU7UUFDVixTQUFTO1FBQ1QsU0FBUztRQUNULFNBQVM7UUFDVCxXQUFXO1FBQ1gsb0JBQW9CO1FBQ3BCLFdBQVc7UUFDWCxvQkFBb0I7UUFDcEIsUUFBUTtRQUNS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
|
|
853
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb3JCQSw0Q0FvYUM7QUF4bENELGdEQUFrQztBQUNsQywrREFBdUM7QUFDdkMsMENBQXVEO0FBQ3ZELGdEQUFpRDtBQUdqRCxzQ0FBNkM7QUFFdEMsTUFBTSxlQUFlLEdBQUcsQ0FDM0IsT0FBZ0MsRUFDaEMsYUFBOEIsQ0FBQyxFQUMvQixRQUFpQixLQUFLLEVBQ2hCLEVBQUU7SUFDUixNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FBQztRQUN4QixnQkFBZ0I7UUFDaEIsT0FBTztRQUNQLGFBQWE7UUFDYixTQUFTO1FBQ1QsUUFBUTtRQUNSLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsU0FBUztRQUNULFVBQVU7UUFDVixNQUFNO1FBQ04sT0FBTztRQUNQLFdBQVc7UUFDWCxzQkFBc0I7UUFDdEIsY0FBYztRQUNkLGNBQWM7UUFDZCxjQUFjO1FBQ2QsVUFBVTtRQUNWLFVBQVU7UUFDVixZQUFZO1FBQ1osWUFBWTtRQUNaLFdBQVc7UUFDWCxNQUFNO1FBQ04sVUFBVTtRQUNWLE1BQU07UUFDTixLQUFLO1FBQ0wsTUFBTTtRQUNOLEtBQUs7UUFDTCxRQUFRO1FBQ1IsUUFBUTtRQUNSLFNBQVM7UUFDVCxPQUFPO1FBQ1AsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixTQUFTO1FBQ1QsUUFBUTtRQUNSLEtBQUs7UUFDTCxtQkFBbUI7UUFDbkIsUUFBUTtRQUNSLFFBQVE7UUFDUixhQUFhO1FBQ2IsV0FBVztRQUNYLGFBQWE7UUFDYixhQUFhO1FBQ2IsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixVQUFVO1FBQ1YsU0FBUztRQUNULFNBQVM7UUFDVCxTQUFTO1FBQ1QsV0FBVztRQUNYLG9CQUFvQjtRQUNwQixXQUFXO1FBQ1gsb0JBQW9CO1FBQ3BCLFFBQVE7UUFD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
|
package/dist/buildIPC.js
CHANGED
|
@@ -7,7 +7,7 @@ if ((process === null || process === void 0 ? void 0 : process.send) != null) {
|
|
|
7
7
|
process.on("message", (msg) => {
|
|
8
8
|
var _a;
|
|
9
9
|
// 取msg中的参数, 调用protectModuleRef进行构建
|
|
10
|
-
const { id, params: { assetCode, moduleMap, config, rootModuleIDs, dev, moduleDependencyMap, enableProto, isModuleIDNumeric, }, } = msg;
|
|
10
|
+
const { id, params: { assetCode, moduleMap, config, rootModuleIDs, dev, moduleDependencyMap, enableScuttle, enableProto, isModuleIDNumeric, }, } = msg;
|
|
11
11
|
// 要对参数做类型转换
|
|
12
12
|
const newModuleMap = new bimap_1.BiMap();
|
|
13
13
|
for (const [k, v] of Object.entries(moduleMap)) {
|
|
@@ -25,7 +25,7 @@ if ((process === null || process === void 0 ? void 0 : process.send) != null) {
|
|
|
25
25
|
for (const [k, v] of Object.entries(moduleDependencyMap)) {
|
|
26
26
|
newModuleDependencyMap.set(isModuleIDNumeric ? parseInt(k) : k, new Set(v));
|
|
27
27
|
}
|
|
28
|
-
const result = (0, build_1.protectModuleRef)(assetCode, newModuleMap, newConfig, new Set(rootModuleIDs), dev, newModuleDependencyMap, enableProto);
|
|
28
|
+
const result = (0, build_1.protectModuleRef)(assetCode, newModuleMap, newConfig, new Set(rootModuleIDs), dev, newModuleDependencyMap, enableScuttle, enableProto);
|
|
29
29
|
if (result == null) {
|
|
30
30
|
const errMsg = {
|
|
31
31
|
id,
|
|
@@ -60,4 +60,4 @@ if ((process === null || process === void 0 ? void 0 : process.send) != null) {
|
|
|
60
60
|
else {
|
|
61
61
|
throw new Error("this file should be run in a child process");
|
|
62
62
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRJUEMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGRJUEMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBMkM7QUFDM0Msd0NBQXFDO0FBQ3JDLDBDQUF1QztBQWtDdkMsSUFBSSxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxJQUFJLEtBQUksSUFBSSxFQUFFLENBQUM7SUFDeEIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFnQixFQUFFLEVBQUU7O1FBQ3ZDLG1DQUFtQztRQUNuQyxNQUFNLEVBQ0YsRUFBRSxFQUNGLE1BQU0sRUFBRSxFQUNKLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLGFBQWEsRUFDYixHQUFHLEVBQ0gsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixXQUFXLEVBQ1gsaUJBQWlCLEdBQ3BCLEdBQ0osR0FBRyxHQUFHLENBQUM7UUFFUixZQUFZO1FBQ1osTUFBTSxZQUFZLEdBQTRCLElBQUksYUFBSyxFQUFFLENBQUM7UUFDMUQsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxZQUFZLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQVcsSUFBSSxlQUFNLEVBQUUsQ0FBQztRQUN2QyxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDcEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO2dCQUN4QixNQUFNLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRSxNQUFBLENBQUMsQ0FBQyxNQUFNLG1DQUFJLElBQUk7YUFDM0IsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELE1BQU0sc0JBQXNCLEdBQWlDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdkUsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ3ZELHNCQUFzQixDQUFDLEdBQUcsQ0FDdEIsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNuQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDYixDQUFDO1FBQ04sQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLElBQUEsd0JBQWdCLEVBQzNCLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUN0QixHQUFHLEVBQ0gsc0JBQXNCLEVBQ3RCLGFBQWEsRUFDYixXQUFXLENBQ2QsQ0FBQztRQUVGLElBQUksTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sTUFBTSxHQUFtQjtnQkFDM0IsRUFBRTtnQkFDRixNQUFNLEVBQUUsSUFBSTtnQkFDWixHQUFHLEVBQUUsSUFBSTthQUNaLENBQUM7WUFDRixPQUFPLENBQUMsSUFBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sTUFBTSxHQUFtQjtvQkFDM0IsRUFBRTtvQkFDRixNQUFNLEVBQUUsSUFBSTtvQkFDWixHQUFHLEVBQUUsb0JBQW9CO2lCQUM1QixDQUFDO2dCQUNGLE9BQU8sQ0FBQyxJQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTSxNQUFNLEdBQW1CO29CQUMzQixFQUFFO29CQUNGLE1BQU0sRUFBRTt3QkFDSixJQUFJLEVBQUUsTUFBTyxDQUFDLElBQUs7d0JBQ25CLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU8sQ0FBQyxHQUFJLENBQUM7cUJBQ3BDO29CQUNELEdBQUcsRUFBRSxJQUFJO2lCQUNaLENBQUM7Z0JBQ0YsT0FBTyxDQUFDLElBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0tBQU0sQ0FBQztJQUNKLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztBQUNsRSxDQUFDIn0=
|
|
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.buildMultiProcess = buildMultiProcess;
|
|
13
13
|
const child_process_1 = require("child_process");
|
|
14
|
-
function buildMultiProcess(assetCode, moduleMap, config, rootModuleIDs, dev, moduleDependencyMap, enableProto) {
|
|
14
|
+
function buildMultiProcess(assetCode, moduleMap, config, rootModuleIDs, dev, moduleDependencyMap, enableScuttle, enableProto) {
|
|
15
15
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16
16
|
return new Promise((resolve, reject) => {
|
|
17
17
|
const child = (0, child_process_1.fork)(require.resolve("./buildIPC"));
|
|
@@ -59,6 +59,7 @@ function buildMultiProcess(assetCode, moduleMap, config, rootModuleIDs, dev, mod
|
|
|
59
59
|
Array.from(v),
|
|
60
60
|
])),
|
|
61
61
|
enableProto,
|
|
62
|
+
enableScuttle,
|
|
62
63
|
isModuleIDNumeric: Array.from(moduleDependencyMap.keys()).every((k) => typeof k === "number"),
|
|
63
64
|
},
|
|
64
65
|
};
|
|
@@ -66,4 +67,4 @@ function buildMultiProcess(assetCode, moduleMap, config, rootModuleIDs, dev, mod
|
|
|
66
67
|
});
|
|
67
68
|
});
|
|
68
69
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRNdWx0aVByb2Nlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGRNdWx0aVByb2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUErRVMsOENBQWlCO0FBL0UxQixpREFBcUM7QUFRckMsU0FBZSxpQkFBaUIsQ0FDNUIsU0FBaUIsRUFDakIsU0FBa0MsRUFDbEMsTUFBYyxFQUNkLGFBQTRCLEVBQzVCLEdBQVksRUFDWixtQkFBaUQsRUFDakQsYUFBa0QsRUFDbEQsV0FBb0I7O1FBS3BCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBSSxFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUVsRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUvQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQW1CLEVBQUUsRUFBRTtnQkFDeEMsSUFBSSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO29CQUNoQixJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDVixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQy9CLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7NEJBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDbEIsQ0FBQzs2QkFBTSxDQUFDOzRCQUNKLE9BQU8sQ0FBQztnQ0FDSixJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJO2dDQUNyQixHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHO29DQUNmLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFrQjtvQ0FDOUMsQ0FBQyxDQUFDLElBQUk7NkJBQ2IsQ0FBQyxDQUFDO3dCQUNQLENBQUM7b0JBQ0wsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLEdBQUcsR0FBZ0I7Z0JBQ3JCLEVBQUU7Z0JBQ0YsTUFBTSxFQUFFO29CQUNKLFNBQVM7b0JBQ1QsU0FBUyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNsRCxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FDdEIsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTs7d0JBQUMsT0FBQTs0QkFDaEQsQ0FBQzs0QkFDRDtnQ0FDSSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVU7Z0NBQ3hCLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7Z0NBQzlDLE1BQU0sRUFBRSxNQUFBLENBQUMsQ0FBQyxNQUFNLG1DQUFJLElBQUk7NkJBQzNCO3lCQUNKLENBQUE7cUJBQUEsQ0FBQyxDQUNMO29CQUNELGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztvQkFDeEMsR0FBRztvQkFDSCxtQkFBbUIsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUNuQyxLQUFLLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO3dCQUN0RCxDQUFDO3dCQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3FCQUNoQixDQUFDLENBQ0w7b0JBQ0QsV0FBVztvQkFDWCxhQUFhO29CQUNiLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQzNELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQy9CO2lCQUNKO2FBQ0osQ0FBQztZQUVGLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQUEifQ==
|
package/dist/index.js
CHANGED
|
@@ -50,6 +50,7 @@ const path = __importStar(require("node:path"));
|
|
|
50
50
|
const bimap_1 = require("./util/bimap");
|
|
51
51
|
const webpack_sources_1 = require("webpack-sources");
|
|
52
52
|
const buildMultiProcess_1 = require("./buildMultiProcess");
|
|
53
|
+
const build_1 = require("./build");
|
|
53
54
|
const PluginName = "RU1NSecuritySDKPlugin";
|
|
54
55
|
class RU1NSecuritySDKPlugin {
|
|
55
56
|
constructor(option) {
|
|
@@ -73,6 +74,9 @@ class RU1NSecuritySDKPlugin {
|
|
|
73
74
|
if (option.disableProtoAssets == null) {
|
|
74
75
|
option.disableProtoAssets = [];
|
|
75
76
|
}
|
|
77
|
+
if (option.scuttle == null) {
|
|
78
|
+
option.scuttle = false;
|
|
79
|
+
}
|
|
76
80
|
this.option = option;
|
|
77
81
|
}
|
|
78
82
|
apply(compiler) {
|
|
@@ -150,37 +154,99 @@ class RU1NSecuritySDKPlugin {
|
|
|
150
154
|
stage: compiler.webpack.Compilation
|
|
151
155
|
.PROCESS_ASSETS_STAGE_OPTIMIZE,
|
|
152
156
|
}, (assets) => __awaiter(this, void 0, void 0, function* () {
|
|
157
|
+
var _a, _b;
|
|
153
158
|
for (const item of Object.entries(assets)) {
|
|
154
159
|
const file = item[0], source = item[1];
|
|
155
|
-
if (
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
160
|
+
if (file.endsWith(".js")) {
|
|
161
|
+
console.log("[*] process", file);
|
|
162
|
+
if (file === "secsdk-scuttle-globalThis.js") {
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
const enableProto = !this.option.disableProtoAssets.includes(path.basename(file));
|
|
166
|
+
let enableScuttle = "disable";
|
|
167
|
+
if (this.option.scuttle) {
|
|
168
|
+
if ((_a = this.option.skipScuttleAssets) === null || _a === void 0 ? void 0 : _a.includes(path.basename(file))) {
|
|
169
|
+
enableScuttle = "disable";
|
|
170
|
+
}
|
|
171
|
+
else if ((_b = this.option.scuttleExtraEntrys) === null || _b === void 0 ? void 0 : _b.includes(path.basename(file))) {
|
|
172
|
+
enableScuttle = "extraEntry";
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
enableScuttle = "enable";
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (!enableProto) {
|
|
179
|
+
console.log(`[*] disable prototype protection for ${file}`);
|
|
180
|
+
}
|
|
181
|
+
const r = yield (0, buildMultiProcess_1.buildMultiProcess)(source.source().toString(), this.moduleId2File, this.policy, this.rootModules, this.option.dev, this.moduleDependencies, enableScuttle, enableProto);
|
|
182
|
+
if (r == null) {
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
const hasSourceMap = source.map() != null;
|
|
186
|
+
if (hasSourceMap) {
|
|
187
|
+
compilation.updateAsset(file, new webpack_sources_1.SourceMapSource(r.code, file, r.map, source.source(), source.map()));
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
compilation.updateAsset(file, new webpack_sources_1.RawSource(r.code));
|
|
191
|
+
}
|
|
172
192
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
193
|
+
}
|
|
194
|
+
}));
|
|
195
|
+
compilation.hooks.processAssets.tap({
|
|
196
|
+
name: PluginName,
|
|
197
|
+
stage: compiler.webpack.Compilation
|
|
198
|
+
.PROCESS_ASSETS_STAGE_SUMMARIZE,
|
|
199
|
+
}, (assets) => {
|
|
200
|
+
const scuttleOptions = [];
|
|
201
|
+
for (const item of Object.entries(assets)) {
|
|
202
|
+
const file = item[0], source = item[1];
|
|
203
|
+
if (file.endsWith(".js")) {
|
|
204
|
+
const sourceCode = source.source().toString();
|
|
205
|
+
let code = "globalThis.__ru1n_qiuwen_myGlobal__";
|
|
206
|
+
let index = sourceCode.indexOf(code);
|
|
207
|
+
if (index === -1) {
|
|
208
|
+
console.warn(`[!] ${file} missing scuttle options placeholder, skip!!!!!`);
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
index += "globalThis.".length;
|
|
212
|
+
const before = sourceCode
|
|
213
|
+
.slice(0, index)
|
|
214
|
+
.split("\n");
|
|
215
|
+
const line = before.length;
|
|
216
|
+
const col = before[before.length - 1].length + 1;
|
|
217
|
+
scuttleOptions.push({
|
|
218
|
+
file: util_1.Util.relative(this.rootDir, file),
|
|
219
|
+
line,
|
|
220
|
+
col,
|
|
221
|
+
});
|
|
222
|
+
if (sourceCode.indexOf(code, index + 1) !== -1) {
|
|
223
|
+
console.warn(`[!] ${file} has multiple scuttle options placeholder, it seems that contains malformed code!!!!!`);
|
|
224
|
+
throw new Error("malformed code");
|
|
225
|
+
}
|
|
176
226
|
}
|
|
177
|
-
|
|
178
|
-
|
|
227
|
+
}
|
|
228
|
+
const opts = JSON.stringify(scuttleOptions);
|
|
229
|
+
if (opts.length > build_1.scuttleOptionsPlaceholder.length) {
|
|
230
|
+
throw new Error("scuttle options too long");
|
|
231
|
+
}
|
|
232
|
+
for (const item of Object.entries(assets)) {
|
|
233
|
+
const file = item[0], source = item[1];
|
|
234
|
+
if (file.endsWith(".js")) {
|
|
235
|
+
const sourceCode = source.source().toString();
|
|
236
|
+
const newSourceCode = sourceCode.replace(build_1.scuttleOptionsPlaceholder, opts +
|
|
237
|
+
" ".repeat(build_1.scuttleOptionsPlaceholder.length -
|
|
238
|
+
opts.length));
|
|
239
|
+
if (source.map() == null) {
|
|
240
|
+
compilation.updateAsset(file, new webpack_sources_1.RawSource(newSourceCode));
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
compilation.updateAsset(file, new webpack_sources_1.SourceMapSource(newSourceCode, file, source.map(), source.source()));
|
|
244
|
+
}
|
|
179
245
|
}
|
|
180
246
|
}
|
|
181
|
-
})
|
|
247
|
+
});
|
|
182
248
|
});
|
|
183
249
|
}
|
|
184
250
|
}
|
|
185
251
|
exports.default = RU1NSecuritySDKPlugin;
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxzQ0FBNkM7QUFDN0MsMENBQXVFO0FBQ3ZFLDRDQUFnRDtBQUNoRCw0Q0FBOEI7QUFDOUIsZ0RBQWtDO0FBQ2xDLHdDQUFxQztBQUNyQyxxREFBNkQ7QUFDN0QsMkRBQXdEO0FBWXhELE1BQU0sVUFBVSxHQUFHLHVCQUF1QixDQUFDO0FBRTNDLE1BQXFCLHFCQUFxQjtJQWN0QyxZQUFZLE1BQWM7UUFiMUIsYUFBYTtRQUNMLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFFckIsZUFBVSxHQUF1QyxFQUFFLENBQUM7UUFDcEQsV0FBTSxHQUFXLElBQUksZUFBTSxFQUFFLENBQUM7UUFFOUIsZ0JBQVcsR0FBa0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUUvQyx5QkFBeUI7UUFDakIsa0JBQWEsR0FBRyxJQUFJLGFBQUssRUFBb0IsQ0FBQztRQUU5Qyx1QkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBMkIsQ0FBQztRQUc1RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdEIsTUFBTSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNwQyxNQUFNLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxD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
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxzQ0FBNkM7QUFDN0MsMENBQXVFO0FBQ3ZFLDRDQUFnRDtBQUNoRCw0Q0FBOEI7QUFDOUIsZ0RBQWtDO0FBQ2xDLHdDQUFxQztBQUNyQyxxREFBNkQ7QUFDN0QsMkRBQXdEO0FBQ3hELG1DQUVpQjtBQWtCakIsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUM7QUFFM0MsTUFBcUIscUJBQXFCO0lBY3RDLFlBQVksTUFBYztRQWIxQixhQUFhO1FBQ0wsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQixlQUFVLEdBQXVDLEVBQUUsQ0FBQztRQUNwRCxXQUFNLEdBQVcsSUFBSSxlQUFNLEVBQUUsQ0FBQztRQUU5QixnQkFBVyxHQUFrQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRS9DLHlCQUF5QjtRQUNqQixrQkFBYSxHQUFHLElBQUksYUFBSyxFQUFvQixDQUFDO1FBRTlDLHVCQUFrQixHQUFHLElBQUksR0FBRyxFQUEyQixDQUFDO1FBRzVELElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN0QixNQUFNLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckIsTUFBTSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLGtCQUFrQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxrQkFB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
|