@worktile/planet 12.1.0
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/application/planet-application-loader.d.ts +70 -0
- package/application/planet-application-loader.d.ts.map +1 -0
- package/application/planet-application-loader.ngfactory.d.ts.map +1 -0
- package/application/planet-application-ref.d.ts +36 -0
- package/application/planet-application-ref.d.ts.map +1 -0
- package/application/planet-application.service.d.ts +19 -0
- package/application/planet-application.service.d.ts.map +1 -0
- package/application/planet-application.service.ngfactory.d.ts.map +1 -0
- package/application/portal-application.d.ts +15 -0
- package/application/portal-application.d.ts.map +1 -0
- package/assets-loader.d.ts +33 -0
- package/assets-loader.d.ts.map +1 -0
- package/assets-loader.ngfactory.d.ts.map +1 -0
- package/bundles/worktile-planet.umd.js +2552 -0
- package/bundles/worktile-planet.umd.js.map +1 -0
- package/component/planet-component-loader.d.ts +28 -0
- package/component/planet-component-loader.d.ts.map +1 -0
- package/component/planet-component-loader.ngfactory.d.ts.map +1 -0
- package/component/planet-component-ref.d.ts +8 -0
- package/component/planet-component-ref.d.ts.map +1 -0
- package/component/plant-component.config.d.ts +10 -0
- package/component/plant-component.config.d.ts.map +1 -0
- package/debug.d.ts +22 -0
- package/debug.d.ts.map +1 -0
- package/empty/empty.component.d.ts +3 -0
- package/empty/empty.component.d.ts.map +1 -0
- package/empty/empty.component.ngfactory.d.ts.map +1 -0
- package/esm2015/application/planet-application-loader.js +452 -0
- package/esm2015/application/planet-application-ref.js +94 -0
- package/esm2015/application/planet-application.service.js +87 -0
- package/esm2015/application/portal-application.js +16 -0
- package/esm2015/assets-loader.js +217 -0
- package/esm2015/component/planet-component-loader.js +155 -0
- package/esm2015/component/planet-component-ref.js +3 -0
- package/esm2015/component/plant-component.config.js +7 -0
- package/esm2015/debug.js +33 -0
- package/esm2015/empty/empty.component.js +10 -0
- package/esm2015/global-event-dispatcher.js +71 -0
- package/esm2015/global-planet.js +51 -0
- package/esm2015/helpers.js +119 -0
- package/esm2015/module.js +27 -0
- package/esm2015/planet.class.js +9 -0
- package/esm2015/planet.js +90 -0
- package/esm2015/public-api.js +18 -0
- package/esm2015/sandbox/constants.js +7 -0
- package/esm2015/sandbox/exec.js +15 -0
- package/esm2015/sandbox/index.js +20 -0
- package/esm2015/sandbox/proxy/patches/document.js +12 -0
- package/esm2015/sandbox/proxy/patches/eventListener.js +41 -0
- package/esm2015/sandbox/proxy/patches/index.js +11 -0
- package/esm2015/sandbox/proxy/patches/storage.js +40 -0
- package/esm2015/sandbox/proxy/patches/timer.js +43 -0
- package/esm2015/sandbox/proxy/proxies/common.js +132 -0
- package/esm2015/sandbox/proxy/proxies/document.js +126 -0
- package/esm2015/sandbox/proxy/proxies/window.js +155 -0
- package/esm2015/sandbox/proxy/proxy-sandbox.js +49 -0
- package/esm2015/sandbox/proxy/types.js +2 -0
- package/esm2015/sandbox/sandbox.js +7 -0
- package/esm2015/sandbox/snapshot/snapshot-sandbox.js +12 -0
- package/esm2015/sandbox/types.js +2 -0
- package/esm2015/worktile-planet.js +6 -0
- package/fesm2015/worktile-planet.js +2036 -0
- package/fesm2015/worktile-planet.js.map +1 -0
- package/global-event-dispatcher.d.ts +20 -0
- package/global-event-dispatcher.d.ts.map +1 -0
- package/global-event-dispatcher.ngfactory.d.ts.map +1 -0
- package/global-planet.d.ts +23 -0
- package/global-planet.d.ts.map +1 -0
- package/helpers.d.ts +39 -0
- package/helpers.d.ts.map +1 -0
- package/module.d.ts +6 -0
- package/module.d.ts.map +1 -0
- package/module.ngfactory.d.ts.map +1 -0
- package/package.json +21 -0
- package/planet.class.d.ts +38 -0
- package/planet.class.d.ts.map +1 -0
- package/planet.d.ts +25 -0
- package/planet.d.ts.map +1 -0
- package/planet.ngfactory.d.ts.map +1 -0
- package/public-api.d.ts +15 -0
- package/public-api.d.ts.map +1 -0
- package/sandbox/constants.d.ts +7 -0
- package/sandbox/constants.d.ts.map +1 -0
- package/sandbox/exec.d.ts +3 -0
- package/sandbox/exec.d.ts.map +1 -0
- package/sandbox/index.d.ts +7 -0
- package/sandbox/index.d.ts.map +1 -0
- package/sandbox/proxy/patches/document.d.ts +3 -0
- package/sandbox/proxy/patches/document.d.ts.map +1 -0
- package/sandbox/proxy/patches/eventListener.d.ts +3 -0
- package/sandbox/proxy/patches/eventListener.d.ts.map +1 -0
- package/sandbox/proxy/patches/index.d.ts +3 -0
- package/sandbox/proxy/patches/index.d.ts.map +1 -0
- package/sandbox/proxy/patches/storage.d.ts +15 -0
- package/sandbox/proxy/patches/storage.d.ts.map +1 -0
- package/sandbox/proxy/patches/timer.d.ts +3 -0
- package/sandbox/proxy/patches/timer.d.ts.map +1 -0
- package/sandbox/proxy/proxies/common.d.ts +13 -0
- package/sandbox/proxy/proxies/common.d.ts.map +1 -0
- package/sandbox/proxy/proxies/document.d.ts +14 -0
- package/sandbox/proxy/proxies/document.d.ts.map +1 -0
- package/sandbox/proxy/proxies/window.d.ts +13 -0
- package/sandbox/proxy/proxies/window.d.ts.map +1 -0
- package/sandbox/proxy/proxy-sandbox.d.ts +16 -0
- package/sandbox/proxy/proxy-sandbox.d.ts.map +1 -0
- package/sandbox/proxy/types.d.ts +14 -0
- package/sandbox/proxy/types.d.ts.map +1 -0
- package/sandbox/sandbox.d.ts +12 -0
- package/sandbox/sandbox.d.ts.map +1 -0
- package/sandbox/snapshot/snapshot-sandbox.d.ts +9 -0
- package/sandbox/snapshot/snapshot-sandbox.d.ts.map +1 -0
- package/sandbox/types.d.ts +2 -0
- package/sandbox/types.d.ts.map +1 -0
- package/worktile-planet.d.ts +6 -0
- package/worktile-planet.d.ts.map +1 -0
- package/worktile-planet.metadata.json +1 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Injectable, Inject, Optional, Injector } from '@angular/core';
|
|
2
|
+
import { NavigationEnd, Router } from '@angular/router';
|
|
3
|
+
import { PLANET_APPLICATIONS } from './planet.class';
|
|
4
|
+
import { PlanetApplicationService } from './application/planet-application.service';
|
|
5
|
+
import { PlanetApplicationLoader } from './application/planet-application-loader';
|
|
6
|
+
import { filter, startWith, distinctUntilChanged, map } from 'rxjs/operators';
|
|
7
|
+
import { setPortalApplicationData, setApplicationLoader, setApplicationService, getApplicationLoader, getApplicationService } from './global-planet';
|
|
8
|
+
import { setDebugFactory } from './debug';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/router";
|
|
11
|
+
import * as i2 from "./planet.class";
|
|
12
|
+
export class Planet {
|
|
13
|
+
constructor(injector, router, planetApplications) {
|
|
14
|
+
this.injector = injector;
|
|
15
|
+
this.router = router;
|
|
16
|
+
if (!this.planetApplicationLoader) {
|
|
17
|
+
setApplicationLoader(this.injector.get(PlanetApplicationLoader));
|
|
18
|
+
}
|
|
19
|
+
if (!this.planetApplicationService) {
|
|
20
|
+
setApplicationService(this.injector.get(PlanetApplicationService));
|
|
21
|
+
}
|
|
22
|
+
if (planetApplications) {
|
|
23
|
+
this.registerApps(planetApplications);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
get planetApplicationLoader() {
|
|
27
|
+
return getApplicationLoader();
|
|
28
|
+
}
|
|
29
|
+
get planetApplicationService() {
|
|
30
|
+
return getApplicationService();
|
|
31
|
+
}
|
|
32
|
+
get loadingDone() {
|
|
33
|
+
return this.planetApplicationLoader.loadingDone;
|
|
34
|
+
}
|
|
35
|
+
get appStatusChange() {
|
|
36
|
+
return this.planetApplicationLoader.appStatusChange;
|
|
37
|
+
}
|
|
38
|
+
get appsLoadingStart() {
|
|
39
|
+
return this.planetApplicationLoader.appsLoadingStart;
|
|
40
|
+
}
|
|
41
|
+
setOptions(options) {
|
|
42
|
+
this.planetApplicationLoader.setOptions(options);
|
|
43
|
+
if (options.debugFactory) {
|
|
44
|
+
setDebugFactory(options.debugFactory);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
setPortalAppData(data) {
|
|
48
|
+
setPortalApplicationData(data);
|
|
49
|
+
}
|
|
50
|
+
registerApp(app) {
|
|
51
|
+
this.planetApplicationService.register(app);
|
|
52
|
+
}
|
|
53
|
+
registerApps(apps) {
|
|
54
|
+
this.planetApplicationService.register(apps);
|
|
55
|
+
}
|
|
56
|
+
unregisterApp(name) {
|
|
57
|
+
this.planetApplicationService.unregister(name);
|
|
58
|
+
}
|
|
59
|
+
getApps() {
|
|
60
|
+
return this.planetApplicationService.getApps();
|
|
61
|
+
}
|
|
62
|
+
start() {
|
|
63
|
+
this.subscription = this.router.events
|
|
64
|
+
.pipe(filter(event => {
|
|
65
|
+
return event instanceof NavigationEnd;
|
|
66
|
+
}), map((event) => {
|
|
67
|
+
return event.urlAfterRedirects || event.url;
|
|
68
|
+
}), startWith(location.pathname), distinctUntilChanged())
|
|
69
|
+
.subscribe((url) => {
|
|
70
|
+
this.planetApplicationLoader.reroute({
|
|
71
|
+
url: url
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
stop() {
|
|
76
|
+
this.subscription.unsubscribe();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
Planet.ɵprov = i0.ɵɵdefineInjectable({ factory: function Planet_Factory() { return new Planet(i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.PLANET_APPLICATIONS, 8)); }, token: Planet, providedIn: "root" });
|
|
80
|
+
Planet.decorators = [
|
|
81
|
+
{ type: Injectable, args: [{
|
|
82
|
+
providedIn: 'root'
|
|
83
|
+
},] }
|
|
84
|
+
];
|
|
85
|
+
Planet.ctorParameters = () => [
|
|
86
|
+
{ type: Injector },
|
|
87
|
+
{ type: Router },
|
|
88
|
+
{ type: Array, decorators: [{ type: Inject, args: [PLANET_APPLICATIONS,] }, { type: Optional }] }
|
|
89
|
+
];
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0L3NyYy9wbGFuZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBb0MsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEVBQ0gsdUJBQXVCLEVBRzFCLE1BQU0seUNBQXlDLENBQUM7QUFFakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUNILHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7O0FBSzFDLE1BQU0sT0FBTyxNQUFNO0lBdUJmLFlBQ1ksUUFBa0IsRUFDbEIsTUFBYyxFQUNtQixrQkFBdUM7UUFGeEUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBR3RCLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDL0Isb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNoQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7U0FDdEU7UUFFRCxJQUFJLGtCQUFrQixFQUFFO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFyQ0QsSUFBWSx1QkFBdUI7UUFDL0IsT0FBTyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFZLHdCQUF3QjtRQUNoQyxPQUFPLHFCQUFxQixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDO0lBQ3pELENBQUM7SUFxQkQsVUFBVSxDQUFDLE9BQStCO1FBQ3RDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3RCLGVBQWUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDekM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUksSUFBTztRQUN2Qix3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFTLEdBQThCO1FBQzlDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFlBQVksQ0FBUyxJQUFpQztRQUNsRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxhQUFhLENBQUMsSUFBWTtRQUN0QixJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPO1FBQ0gsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUNqQyxJQUFJLENBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1gsT0FBTyxLQUFLLFlBQVksYUFBYSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUN6QixPQUFPLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQzVCLG9CQUFvQixFQUFFLENBQ3pCO2FBQ0EsU0FBUyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQztnQkFDakMsR0FBRyxFQUFFLEdBQUc7YUFDWCxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs7O1lBM0ZKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBdEJzQyxRQUFRO1lBQ1YsTUFBTTt3Q0FnRGxDLE1BQU0sU0FBQyxtQkFBbUIsY0FBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPcHRpb25hbCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlckV2ZW50LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUGxhbmV0T3B0aW9ucywgUGxhbmV0QXBwbGljYXRpb24sIFBMQU5FVF9BUFBMSUNBVElPTlMgfSBmcm9tICcuL3BsYW5ldC5jbGFzcyc7XG5pbXBvcnQgeyBQbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL2FwcGxpY2F0aW9uL3BsYW5ldC1hcHBsaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgUGxhbmV0QXBwbGljYXRpb25Mb2FkZXIsXG4gICAgQXBwc0xvYWRpbmdTdGFydEV2ZW50LFxuICAgIEFwcFN0YXR1c0NoYW5nZUV2ZW50XG59IGZyb20gJy4vYXBwbGljYXRpb24vcGxhbmV0LWFwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3RhcnRXaXRoLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgICBzZXRQb3J0YWxBcHBsaWNhdGlvbkRhdGEsXG4gICAgc2V0QXBwbGljYXRpb25Mb2FkZXIsXG4gICAgc2V0QXBwbGljYXRpb25TZXJ2aWNlLFxuICAgIGdldEFwcGxpY2F0aW9uTG9hZGVyLFxuICAgIGdldEFwcGxpY2F0aW9uU2VydmljZVxufSBmcm9tICcuL2dsb2JhbC1wbGFuZXQnO1xuaW1wb3J0IHsgc2V0RGVidWdGYWN0b3J5IH0gZnJvbSAnLi9kZWJ1Zyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGxhbmV0IHtcbiAgICBwcml2YXRlIGdldCBwbGFuZXRBcHBsaWNhdGlvbkxvYWRlcigpIHtcbiAgICAgICAgcmV0dXJuIGdldEFwcGxpY2F0aW9uTG9hZGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgcGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlKCkge1xuICAgICAgICByZXR1cm4gZ2V0QXBwbGljYXRpb25TZXJ2aWNlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2FkaW5nRG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhbmV0QXBwbGljYXRpb25Mb2FkZXIubG9hZGluZ0RvbmU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhcHBTdGF0dXNDaGFuZ2UoKTogT2JzZXJ2YWJsZTxBcHBTdGF0dXNDaGFuZ2VFdmVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFuZXRBcHBsaWNhdGlvbkxvYWRlci5hcHBTdGF0dXNDaGFuZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhcHBzTG9hZGluZ1N0YXJ0KCk6IE9ic2VydmFibGU8QXBwc0xvYWRpbmdTdGFydEV2ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyLmFwcHNMb2FkaW5nU3RhcnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChQTEFORVRfQVBQTElDQVRJT05TKSBAT3B0aW9uYWwoKSBwbGFuZXRBcHBsaWNhdGlvbnM6IFBsYW5ldEFwcGxpY2F0aW9uW11cbiAgICApIHtcbiAgICAgICAgaWYgKCF0aGlzLnBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyKSB7XG4gICAgICAgICAgICBzZXRBcHBsaWNhdGlvbkxvYWRlcih0aGlzLmluamVjdG9yLmdldChQbGFuZXRBcHBsaWNhdGlvbkxvYWRlcikpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5wbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgICAgIHNldEFwcGxpY2F0aW9uU2VydmljZSh0aGlzLmluamVjdG9yLmdldChQbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwbGFuZXRBcHBsaWNhdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJBcHBzKHBsYW5ldEFwcGxpY2F0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRPcHRpb25zKG9wdGlvbnM6IFBhcnRpYWw8UGxhbmV0T3B0aW9ucz4pIHtcbiAgICAgICAgdGhpcy5wbGFuZXRBcHBsaWNhdGlvbkxvYWRlci5zZXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICBpZiAob3B0aW9ucy5kZWJ1Z0ZhY3RvcnkpIHtcbiAgICAgICAgICAgIHNldERlYnVnRmFjdG9yeShvcHRpb25zLmRlYnVnRmFjdG9yeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRQb3J0YWxBcHBEYXRhPFQ+KGRhdGE6IFQpIHtcbiAgICAgICAgc2V0UG9ydGFsQXBwbGljYXRpb25EYXRhKGRhdGEpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyQXBwPFRFeHRyYT4oYXBwOiBQbGFuZXRBcHBsaWNhdGlvbjxURXh0cmE+KSB7XG4gICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLnJlZ2lzdGVyKGFwcCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJBcHBzPFRFeHRyYT4oYXBwczogUGxhbmV0QXBwbGljYXRpb248VEV4dHJhPltdKSB7XG4gICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLnJlZ2lzdGVyKGFwcHMpO1xuICAgIH1cblxuICAgIHVucmVnaXN0ZXJBcHAobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLnVucmVnaXN0ZXIobmFtZSk7XG4gICAgfVxuXG4gICAgZ2V0QXBwcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLmdldEFwcHMoKTtcbiAgICB9XG5cbiAgICBzdGFydCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQ7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMgfHwgZXZlbnQudXJsO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChsb2NhdGlvbi5wYXRobmFtZSksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodXJsOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyLnJlcm91dGUoe1xuICAgICAgICAgICAgICAgICAgICB1cmw6IHVybFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RvcCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of core
|
|
3
|
+
*/
|
|
4
|
+
export * from './planet';
|
|
5
|
+
export * from './global-event-dispatcher';
|
|
6
|
+
export * from './application/portal-application';
|
|
7
|
+
export * from './planet.class';
|
|
8
|
+
export * from './module';
|
|
9
|
+
export { PlanetApplicationRef } from './application/planet-application-ref';
|
|
10
|
+
export { defineApplication, getPortalApplicationData, getPlanetApplicationRef } from './global-planet';
|
|
11
|
+
export { PlanetApplicationService } from './application/planet-application.service';
|
|
12
|
+
export * from './application/planet-application-loader';
|
|
13
|
+
export * from './assets-loader';
|
|
14
|
+
export { PlanetComponentLoader } from './component/planet-component-loader';
|
|
15
|
+
export { PlanetComponentRef } from './component/planet-component-ref';
|
|
16
|
+
export { PlantComponentConfig } from './component/plant-component.config';
|
|
17
|
+
export * from './empty/empty.component';
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BGLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxPQUFPLEVBQW1CLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29yZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcGxhbmV0JztcbmV4cG9ydCAqIGZyb20gJy4vZ2xvYmFsLWV2ZW50LWRpc3BhdGNoZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbi9wb3J0YWwtYXBwbGljYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9wbGFuZXQuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGUnO1xuZXhwb3J0IHsgUGxhbmV0QXBwbGljYXRpb25SZWYgfSBmcm9tICcuL2FwcGxpY2F0aW9uL3BsYW5ldC1hcHBsaWNhdGlvbi1yZWYnO1xuZXhwb3J0IHsgZGVmaW5lQXBwbGljYXRpb24sIGdldFBvcnRhbEFwcGxpY2F0aW9uRGF0YSwgZ2V0UGxhbmV0QXBwbGljYXRpb25SZWYgfSBmcm9tICcuL2dsb2JhbC1wbGFuZXQnO1xuZXhwb3J0IHsgUGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi9wbGFuZXQtYXBwbGljYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uL3BsYW5ldC1hcHBsaWNhdGlvbi1sb2FkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hc3NldHMtbG9hZGVyJztcbmV4cG9ydCB7IFBsYW5ldENvbXBvbmVudCwgUGxhbmV0Q29tcG9uZW50TG9hZGVyIH0gZnJvbSAnLi9jb21wb25lbnQvcGxhbmV0LWNvbXBvbmVudC1sb2FkZXInO1xuZXhwb3J0IHsgUGxhbmV0Q29tcG9uZW50UmVmIH0gZnJvbSAnLi9jb21wb25lbnQvcGxhbmV0LWNvbXBvbmVudC1yZWYnO1xuZXhwb3J0IHsgUGxhbnRDb21wb25lbnRDb25maWcgfSBmcm9tICcuL2NvbXBvbmVudC9wbGFudC1jb21wb25lbnQuY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vZW1wdHkvZW1wdHkuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const PLANET_SANDBOX_WINDOW_WHITELIST = window['___PLANET_SANDBOX_WINDOW_WHITELIST___'];
|
|
2
|
+
export const PLANET_SANDBOX_DOCUMENT_WHITELIST = window['___PLANET_SANDBOX_DOCUMENT_WHITELIST___'];
|
|
3
|
+
export const SANDBOX_INSTANCE = Symbol.for('PLANET_SANDBOX_INSTANCE');
|
|
4
|
+
export const RAW_NODE = Symbol.for('PLANET_RAW_NODE');
|
|
5
|
+
export const WINDOW_BIND_FN = Symbol.for('PLANET_WINDOW_BIND_FN');
|
|
6
|
+
export const DOCUMENT_BIND_FN = Symbol.for('PLANET_DOCUMENT_BIND_FN');
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0L3NyYy9zYW5kYm94L2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQztBQUMvRixNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQztBQUNuRyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFDdEUsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBQTEFORVRfU0FOREJPWF9XSU5ET1dfV0hJVEVMSVNUID0gd2luZG93WydfX19QTEFORVRfU0FOREJPWF9XSU5ET1dfV0hJVEVMSVNUX19fJ107XG5leHBvcnQgY29uc3QgUExBTkVUX1NBTkRCT1hfRE9DVU1FTlRfV0hJVEVMSVNUID0gd2luZG93WydfX19QTEFORVRfU0FOREJPWF9ET0NVTUVOVF9XSElURUxJU1RfX18nXTtcbmV4cG9ydCBjb25zdCBTQU5EQk9YX0lOU1RBTkNFID0gU3ltYm9sLmZvcignUExBTkVUX1NBTkRCT1hfSU5TVEFOQ0UnKTtcbmV4cG9ydCBjb25zdCBSQVdfTk9ERSA9IFN5bWJvbC5mb3IoJ1BMQU5FVF9SQVdfTk9ERScpO1xuZXhwb3J0IGNvbnN0IFdJTkRPV19CSU5EX0ZOID0gU3ltYm9sLmZvcignUExBTkVUX1dJTkRPV19CSU5EX0ZOJyk7XG5leHBvcnQgY29uc3QgRE9DVU1FTlRfQklORF9GTiA9IFN5bWJvbC5mb3IoJ1BMQU5FVF9ET0NVTUVOVF9CSU5EX0ZOJyk7XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function execScript(code, url, global, strictGlobal) {
|
|
2
|
+
const sourceUrl = '//# sourceURL='.concat(url, '\n');
|
|
3
|
+
const window = (0, eval)('window');
|
|
4
|
+
window.tempGlobal = global;
|
|
5
|
+
code = strictGlobal
|
|
6
|
+
? ';(function(window, self, globalThis){with(window){;'
|
|
7
|
+
.concat(code, '\n')
|
|
8
|
+
.concat(sourceUrl, '}}).bind(window.tempGlobal)(window.tempGlobal, window.tempGlobal, window.tempGlobal);')
|
|
9
|
+
: ';(function(window, self, globalThis){;'
|
|
10
|
+
.concat(code, '\n')
|
|
11
|
+
.concat(sourceUrl, '}).bind(window.tempGlobal)(window.tempGlobal, window.tempGlobal, window.tempGlobal);');
|
|
12
|
+
(0, eval)(code);
|
|
13
|
+
delete window.tempGlobal;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldC9zcmMvc2FuZGJveC9leGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBWSxFQUFFLEdBQVcsRUFBRSxNQUFjLEVBQUUsWUFBcUI7SUFDdkYsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztJQUMzQixJQUFJLEdBQUcsWUFBWTtRQUNmLENBQUMsQ0FBQyxxREFBcUQ7YUFDaEQsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7YUFDbEIsTUFBTSxDQUNILFNBQVMsRUFDVCx1RkFBdUYsQ0FDMUY7UUFDUCxDQUFDLENBQUMsd0NBQXdDO2FBQ25DLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO2FBQ2xCLE1BQU0sQ0FDSCxTQUFTLEVBQ1Qsc0ZBQXNGLENBQ3pGLENBQUM7SUFDWixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdsb2JhbCB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZXhlY1NjcmlwdChjb2RlOiBzdHJpbmcsIHVybDogc3RyaW5nLCBnbG9iYWw6IEdsb2JhbCwgc3RyaWN0R2xvYmFsOiBib29sZWFuKSB7XG4gICAgY29uc3Qgc291cmNlVXJsID0gJy8vIyBzb3VyY2VVUkw9Jy5jb25jYXQodXJsLCAnXFxuJyk7XG4gICAgY29uc3Qgd2luZG93ID0gKDAsIGV2YWwpKCd3aW5kb3cnKTtcbiAgICB3aW5kb3cudGVtcEdsb2JhbCA9IGdsb2JhbDtcbiAgICBjb2RlID0gc3RyaWN0R2xvYmFsXG4gICAgICAgID8gJzsoZnVuY3Rpb24od2luZG93LCBzZWxmLCBnbG9iYWxUaGlzKXt3aXRoKHdpbmRvdyl7OydcbiAgICAgICAgICAgICAgLmNvbmNhdChjb2RlLCAnXFxuJylcbiAgICAgICAgICAgICAgLmNvbmNhdChcbiAgICAgICAgICAgICAgICAgIHNvdXJjZVVybCxcbiAgICAgICAgICAgICAgICAgICd9fSkuYmluZCh3aW5kb3cudGVtcEdsb2JhbCkod2luZG93LnRlbXBHbG9iYWwsIHdpbmRvdy50ZW1wR2xvYmFsLCB3aW5kb3cudGVtcEdsb2JhbCk7J1xuICAgICAgICAgICAgICApXG4gICAgICAgIDogJzsoZnVuY3Rpb24od2luZG93LCBzZWxmLCBnbG9iYWxUaGlzKXs7J1xuICAgICAgICAgICAgICAuY29uY2F0KGNvZGUsICdcXG4nKVxuICAgICAgICAgICAgICAuY29uY2F0KFxuICAgICAgICAgICAgICAgICAgc291cmNlVXJsLFxuICAgICAgICAgICAgICAgICAgJ30pLmJpbmQod2luZG93LnRlbXBHbG9iYWwpKHdpbmRvdy50ZW1wR2xvYmFsLCB3aW5kb3cudGVtcEdsb2JhbCwgd2luZG93LnRlbXBHbG9iYWwpOydcbiAgICAgICAgICAgICAgKTtcbiAgICAoMCwgZXZhbCkoY29kZSk7XG4gICAgZGVsZXRlIHdpbmRvdy50ZW1wR2xvYmFsO1xufVxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ProxySandbox } from './proxy/proxy-sandbox';
|
|
2
|
+
import { SnapshotSandbox } from './snapshot/snapshot-sandbox';
|
|
3
|
+
import { SANDBOX_INSTANCE } from './constants';
|
|
4
|
+
export { Sandbox } from './sandbox';
|
|
5
|
+
const defaultOptions = {
|
|
6
|
+
strictGlobal: false
|
|
7
|
+
};
|
|
8
|
+
export function createSandbox(app, options) {
|
|
9
|
+
options = Object.assign({}, defaultOptions, options || {});
|
|
10
|
+
if (window.Proxy) {
|
|
11
|
+
return new ProxySandbox(app, options);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
return new SnapshotSandbox(app, options);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function getSandboxInstance() {
|
|
18
|
+
return window[SANDBOX_INSTANCE];
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL3NhbmRib3gvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxNQUFNLGNBQWMsR0FBNEI7SUFDNUMsWUFBWSxFQUFFLEtBQUs7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sVUFBVSxhQUFhLENBQUMsR0FBVyxFQUFFLE9BQXdCO0lBQy9ELE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTNELElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtRQUNkLE9BQU8sSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3pDO1NBQU07UUFDSCxPQUFPLElBQUksZUFBZSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztLQUM1QztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCO0lBQzlCLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhbmRib3hPcHRpb25zIH0gZnJvbSAnLi9zYW5kYm94JztcbmltcG9ydCB7IFByb3h5U2FuZGJveCB9IGZyb20gJy4vcHJveHkvcHJveHktc2FuZGJveCc7XG5pbXBvcnQgeyBTbmFwc2hvdFNhbmRib3ggfSBmcm9tICcuL3NuYXBzaG90L3NuYXBzaG90LXNhbmRib3gnO1xuaW1wb3J0IHsgU0FOREJPWF9JTlNUQU5DRSB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IHsgU2FuZGJveCB9IGZyb20gJy4vc2FuZGJveCc7XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBQYXJ0aWFsPFNhbmRib3hPcHRpb25zPiA9IHtcbiAgICBzdHJpY3RHbG9iYWw6IGZhbHNlXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2FuZGJveChhcHA6IHN0cmluZywgb3B0aW9ucz86IFNhbmRib3hPcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRPcHRpb25zLCBvcHRpb25zIHx8IHt9KTtcblxuICAgIGlmICh3aW5kb3cuUHJveHkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm94eVNhbmRib3goYXBwLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IFNuYXBzaG90U2FuZGJveChhcHAsIG9wdGlvbnMpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNhbmRib3hJbnN0YW5jZSgpIHtcbiAgICByZXR1cm4gd2luZG93W1NBTkRCT1hfSU5TVEFOQ0VdO1xufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ProxyDocument } from '../proxies/document';
|
|
2
|
+
export function documentPatch() {
|
|
3
|
+
const proxyDocument = new ProxyDocument();
|
|
4
|
+
const { document, Document } = proxyDocument.create();
|
|
5
|
+
return {
|
|
6
|
+
rewrite: {
|
|
7
|
+
document,
|
|
8
|
+
Document
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL3NhbmRib3gvcHJveHkvcGF0Y2hlcy9kb2N1bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHcEQsTUFBTSxVQUFVLGFBQWE7SUFDekIsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUMxQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0RCxPQUFPO1FBQ0gsT0FBTyxFQUFFO1lBQ0wsUUFBUTtZQUNSLFFBQVE7U0FDWDtLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJveHlEb2N1bWVudCB9IGZyb20gJy4uL3Byb3hpZXMvZG9jdW1lbnQnO1xuaW1wb3J0IHsgU2FuZGJveFBhdGNoSGFuZGxlciB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRvY3VtZW50UGF0Y2goKTogU2FuZGJveFBhdGNoSGFuZGxlciB7XG4gICAgY29uc3QgcHJveHlEb2N1bWVudCA9IG5ldyBQcm94eURvY3VtZW50KCk7XG4gICAgY29uc3QgeyBkb2N1bWVudCwgRG9jdW1lbnQgfSA9IHByb3h5RG9jdW1lbnQuY3JlYXRlKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmV3cml0ZToge1xuICAgICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgICBEb2N1bWVudFxuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
export function eventListenerPatch(sandbox) {
|
|
3
|
+
const rawAddEventListener = window.addEventListener;
|
|
4
|
+
const rawRemoveEventListener = window.removeEventListener;
|
|
5
|
+
const listenerSubscriptions = new Map();
|
|
6
|
+
function addEventListener(type, listener, options) {
|
|
7
|
+
const observable = new Observable(() => {
|
|
8
|
+
rawAddEventListener.call(this, type, listener, options);
|
|
9
|
+
return () => {
|
|
10
|
+
rawRemoveEventListener.call(this, type, listener, options);
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
const subscription = observable.subscribe(() => { });
|
|
14
|
+
listenerSubscriptions.set(listener, subscription);
|
|
15
|
+
}
|
|
16
|
+
function removeEventListener(type, listener) {
|
|
17
|
+
const subscription = listenerSubscriptions.get(listener);
|
|
18
|
+
if (subscription) {
|
|
19
|
+
subscription.unsubscribe();
|
|
20
|
+
listenerSubscriptions.delete(listener);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
rewrite: {
|
|
25
|
+
addEventListener: addEventListener.bind(window),
|
|
26
|
+
removeEventListener: removeEventListener.bind(window)
|
|
27
|
+
},
|
|
28
|
+
init() {
|
|
29
|
+
const fakeDocument = sandbox.global.document;
|
|
30
|
+
if (fakeDocument) {
|
|
31
|
+
fakeDocument.addEventListener = addEventListener.bind(document);
|
|
32
|
+
fakeDocument.removeEventListener = removeEventListener.bind(document);
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
destroy() {
|
|
36
|
+
listenerSubscriptions.forEach(subscription => subscription.unsubscribe());
|
|
37
|
+
listenerSubscriptions.clear();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRMaXN0ZW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldC9zcmMvc2FuZGJveC9wcm94eS9wYXRjaGVzL2V2ZW50TGlzdGVuZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFaEQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQTZCO0lBQzVELE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO0lBQ3BELE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO0lBQzFELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxHQUFHLEVBQW9ELENBQUM7SUFFMUYsU0FBUyxnQkFBZ0IsQ0FDckIsSUFBWSxFQUNaLFFBQTRDLEVBQzVDLE9BQTJDO1FBRTNDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNuQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDeEQsT0FBTyxHQUFHLEVBQUU7Z0JBQ1Isc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9ELENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztRQUNwRCxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxTQUFTLG1CQUFtQixDQUFDLElBQVksRUFBRSxRQUE0QztRQUNuRixNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekQsSUFBSSxZQUFZLEVBQUU7WUFDZCxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0IscUJBQXFCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLEVBQUU7WUFDTCxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQy9DLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDeEQ7UUFDRCxJQUFJO1lBQ0EsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDN0MsSUFBSSxZQUFZLEVBQUU7Z0JBQ2QsWUFBWSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDaEUsWUFBWSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN6RTtRQUNMLENBQUM7UUFDRCxPQUFPO1lBQ0gscUJBQXFCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDMUUscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEMsQ0FBQztLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FuZGJveFBhdGNoSGFuZGxlciwgUHJveHlTYW5kYm94SW5zdGFuY2UgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZW50TGlzdGVuZXJQYXRjaChzYW5kYm94OiBQcm94eVNhbmRib3hJbnN0YW5jZSk6IFNhbmRib3hQYXRjaEhhbmRsZXIge1xuICAgIGNvbnN0IHJhd0FkZEV2ZW50TGlzdGVuZXIgPSB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcjtcbiAgICBjb25zdCByYXdSZW1vdmVFdmVudExpc3RlbmVyID0gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXI7XG4gICAgY29uc3QgbGlzdGVuZXJTdWJzY3JpcHRpb25zID0gbmV3IE1hcDxFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0LCBTdWJzY3JpcHRpb24+KCk7XG5cbiAgICBmdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyKFxuICAgICAgICB0eXBlOiBzdHJpbmcsXG4gICAgICAgIGxpc3RlbmVyOiBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0LFxuICAgICAgICBvcHRpb25zPzogYm9vbGVhbiB8IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZSgoKSA9PiB7XG4gICAgICAgICAgICByYXdBZGRFdmVudExpc3RlbmVyLmNhbGwodGhpcywgdHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICByYXdSZW1vdmVFdmVudExpc3RlbmVyLmNhbGwodGhpcywgdHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IG9ic2VydmFibGUuc3Vic2NyaWJlKCgpID0+IHt9KTtcbiAgICAgICAgbGlzdGVuZXJTdWJzY3JpcHRpb25zLnNldChsaXN0ZW5lciwgc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW1vdmVFdmVudExpc3RlbmVyKHR5cGU6IHN0cmluZywgbGlzdGVuZXI6IEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3QpIHtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gbGlzdGVuZXJTdWJzY3JpcHRpb25zLmdldChsaXN0ZW5lcik7XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgbGlzdGVuZXJTdWJzY3JpcHRpb25zLmRlbGV0ZShsaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICByZXdyaXRlOiB7XG4gICAgICAgICAgICBhZGRFdmVudExpc3RlbmVyOiBhZGRFdmVudExpc3RlbmVyLmJpbmQod2luZG93KSxcbiAgICAgICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IHJlbW92ZUV2ZW50TGlzdGVuZXIuYmluZCh3aW5kb3cpXG4gICAgICAgIH0sXG4gICAgICAgIGluaXQoKSB7XG4gICAgICAgICAgICBjb25zdCBmYWtlRG9jdW1lbnQgPSBzYW5kYm94Lmdsb2JhbC5kb2N1bWVudDtcbiAgICAgICAgICAgIGlmIChmYWtlRG9jdW1lbnQpIHtcbiAgICAgICAgICAgICAgICBmYWtlRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciA9IGFkZEV2ZW50TGlzdGVuZXIuYmluZChkb2N1bWVudCk7XG4gICAgICAgICAgICAgICAgZmFrZURvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIgPSByZW1vdmVFdmVudExpc3RlbmVyLmJpbmQoZG9jdW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkZXN0cm95KCkge1xuICAgICAgICAgICAgbGlzdGVuZXJTdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgICAgIGxpc3RlbmVyU3Vic2NyaXB0aW9ucy5jbGVhcigpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { eventListenerPatch } from './eventListener';
|
|
2
|
+
import { documentPatch } from './document';
|
|
3
|
+
import { timerPatch } from './timer';
|
|
4
|
+
import { storagePatch } from './storage';
|
|
5
|
+
const sandboxPatches = [documentPatch, eventListenerPatch, timerPatch, storagePatch];
|
|
6
|
+
export function getSandboxPatchHandlers(sandbox) {
|
|
7
|
+
return sandboxPatches.map(patch => {
|
|
8
|
+
return patch(sandbox);
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL3NhbmRib3gvcHJveHkvcGF0Y2hlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6QyxNQUFNLGNBQWMsR0FBbUIsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBRXJHLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxPQUE2QjtJQUNqRSxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDOUIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJveHlTYW5kYm94SW5zdGFuY2UsIFNhbmRib3hQYXRjaCwgU2FuZGJveFBhdGNoSGFuZGxlciB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGV2ZW50TGlzdGVuZXJQYXRjaCB9IGZyb20gJy4vZXZlbnRMaXN0ZW5lcic7XG5pbXBvcnQgeyBkb2N1bWVudFBhdGNoIH0gZnJvbSAnLi9kb2N1bWVudCc7XG5pbXBvcnQgeyB0aW1lclBhdGNoIH0gZnJvbSAnLi90aW1lcic7XG5pbXBvcnQgeyBzdG9yYWdlUGF0Y2ggfSBmcm9tICcuL3N0b3JhZ2UnO1xuXG5jb25zdCBzYW5kYm94UGF0Y2hlczogU2FuZGJveFBhdGNoW10gPSBbZG9jdW1lbnRQYXRjaCwgZXZlbnRMaXN0ZW5lclBhdGNoLCB0aW1lclBhdGNoLCBzdG9yYWdlUGF0Y2hdO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2FuZGJveFBhdGNoSGFuZGxlcnMoc2FuZGJveDogUHJveHlTYW5kYm94SW5zdGFuY2UpOiBTYW5kYm94UGF0Y2hIYW5kbGVyW10ge1xuICAgIHJldHVybiBzYW5kYm94UGF0Y2hlcy5tYXAocGF0Y2ggPT4ge1xuICAgICAgICByZXR1cm4gcGF0Y2goc2FuZGJveCk7XG4gICAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const PLANET_STORAGE_PREFIX = '__planet-storage-';
|
|
2
|
+
export class RewriteStorage {
|
|
3
|
+
constructor(app, rawStorage) {
|
|
4
|
+
this.rawStorage = rawStorage;
|
|
5
|
+
this.prefix = `${PLANET_STORAGE_PREFIX}${app}__:`;
|
|
6
|
+
}
|
|
7
|
+
get length() {
|
|
8
|
+
return this.getKeys().length;
|
|
9
|
+
}
|
|
10
|
+
getKeys() {
|
|
11
|
+
return Object.keys(this.rawStorage).filter(key => key.startsWith(this.prefix));
|
|
12
|
+
}
|
|
13
|
+
key(n) {
|
|
14
|
+
const key = this.getKeys()[n];
|
|
15
|
+
return key ? key.substring(this.prefix.length) : null;
|
|
16
|
+
}
|
|
17
|
+
getItem(key) {
|
|
18
|
+
return this.rawStorage.getItem(`${this.prefix + key}`);
|
|
19
|
+
}
|
|
20
|
+
setItem(key, value) {
|
|
21
|
+
this.rawStorage.setItem(`${this.prefix + key}`, value);
|
|
22
|
+
}
|
|
23
|
+
removeItem(key) {
|
|
24
|
+
this.rawStorage.removeItem(`${this.prefix + key}`);
|
|
25
|
+
}
|
|
26
|
+
clear() {
|
|
27
|
+
this.getKeys().forEach(key => {
|
|
28
|
+
this.rawStorage.removeItem(key);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function storagePatch(sandbox) {
|
|
33
|
+
return {
|
|
34
|
+
rewrite: {
|
|
35
|
+
localStorage: new RewriteStorage(sandbox.app, localStorage),
|
|
36
|
+
sessionStorage: new RewriteStorage(sandbox.app, sessionStorage)
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldC9zcmMvc2FuZGJveC9wcm94eS9wYXRjaGVzL3N0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FBQztBQUVsRCxNQUFNLE9BQU8sY0FBYztJQUl2QixZQUFZLEdBQVcsRUFBRSxVQUFtQjtRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcscUJBQXFCLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRU8sT0FBTztRQUNYLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsR0FBRyxDQUFDLENBQVM7UUFDVCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFELENBQUM7SUFFRCxPQUFPLENBQUMsR0FBVztRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBNkI7SUFDdEQsT0FBTztRQUNILE9BQU8sRUFBRTtZQUNMLFlBQVksRUFBRSxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQztZQUMzRCxjQUFjLEVBQUUsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUM7U0FDbEU7S0FDSixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3h5U2FuZGJveEluc3RhbmNlLCBTYW5kYm94UGF0Y2hIYW5kbGVyIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5jb25zdCBQTEFORVRfU1RPUkFHRV9QUkVGSVggPSAnX19wbGFuZXQtc3RvcmFnZS0nO1xuXG5leHBvcnQgY2xhc3MgUmV3cml0ZVN0b3JhZ2Uge1xuICAgIHByZWZpeDogc3RyaW5nO1xuICAgIHJhd1N0b3JhZ2U6IFN0b3JhZ2U7XG5cbiAgICBjb25zdHJ1Y3RvcihhcHA6IHN0cmluZywgcmF3U3RvcmFnZTogU3RvcmFnZSkge1xuICAgICAgICB0aGlzLnJhd1N0b3JhZ2UgPSByYXdTdG9yYWdlO1xuICAgICAgICB0aGlzLnByZWZpeCA9IGAke1BMQU5FVF9TVE9SQUdFX1BSRUZJWH0ke2FwcH1fXzpgO1xuICAgIH1cblxuICAgIGdldCBsZW5ndGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEtleXMoKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRLZXlzKCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5yYXdTdG9yYWdlKS5maWx0ZXIoa2V5ID0+IGtleS5zdGFydHNXaXRoKHRoaXMucHJlZml4KSk7XG4gICAgfVxuXG4gICAga2V5KG46IG51bWJlcikge1xuICAgICAgICBjb25zdCBrZXkgPSB0aGlzLmdldEtleXMoKVtuXTtcbiAgICAgICAgcmV0dXJuIGtleSA/IGtleS5zdWJzdHJpbmcodGhpcy5wcmVmaXgubGVuZ3RoKSA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0SXRlbShrZXk6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5yYXdTdG9yYWdlLmdldEl0ZW0oYCR7dGhpcy5wcmVmaXggKyBrZXl9YCk7XG4gICAgfVxuXG4gICAgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnJhd1N0b3JhZ2Uuc2V0SXRlbShgJHt0aGlzLnByZWZpeCArIGtleX1gLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZykge1xuICAgICAgICB0aGlzLnJhd1N0b3JhZ2UucmVtb3ZlSXRlbShgJHt0aGlzLnByZWZpeCArIGtleX1gKTtcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5nZXRLZXlzKCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yYXdTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RvcmFnZVBhdGNoKHNhbmRib3g6IFByb3h5U2FuZGJveEluc3RhbmNlKTogU2FuZGJveFBhdGNoSGFuZGxlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmV3cml0ZToge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlOiBuZXcgUmV3cml0ZVN0b3JhZ2Uoc2FuZGJveC5hcHAsIGxvY2FsU3RvcmFnZSksXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZTogbmV3IFJld3JpdGVTdG9yYWdlKHNhbmRib3guYXBwLCBzZXNzaW9uU3RvcmFnZSlcbiAgICAgICAgfVxuICAgIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
const rawSetTimeout = window.setTimeout;
|
|
2
|
+
const rawClearTimeout = window.clearTimeout;
|
|
3
|
+
const rawSetInterval = window.setInterval;
|
|
4
|
+
const rawClearInterval = window.clearInterval;
|
|
5
|
+
export function timerPatch() {
|
|
6
|
+
const timeout = new Set();
|
|
7
|
+
const interval = new Set();
|
|
8
|
+
function rewriteSetTimeout(handler, ms, ...args) {
|
|
9
|
+
const timeoutId = rawSetTimeout(handler, ms, ...args);
|
|
10
|
+
timeout.add(timeoutId);
|
|
11
|
+
return timeoutId;
|
|
12
|
+
}
|
|
13
|
+
function rewriteClearTimeout(timeoutId) {
|
|
14
|
+
timeout.delete(timeoutId);
|
|
15
|
+
rawClearTimeout(timeoutId);
|
|
16
|
+
}
|
|
17
|
+
function rewriteSetInterval(handler, ms, ...args) {
|
|
18
|
+
const intervalId = rawSetInterval(handler, ms, ...args);
|
|
19
|
+
interval.add(intervalId);
|
|
20
|
+
return intervalId;
|
|
21
|
+
}
|
|
22
|
+
function rewriteClearInterval(intervalId) {
|
|
23
|
+
interval.delete(intervalId);
|
|
24
|
+
rawClearInterval(intervalId);
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
rewrite: {
|
|
28
|
+
setTimeout: rewriteSetTimeout,
|
|
29
|
+
clearTimeout: rewriteClearTimeout,
|
|
30
|
+
setInterval: rewriteSetInterval,
|
|
31
|
+
clearInterval: rewriteClearInterval
|
|
32
|
+
},
|
|
33
|
+
destroy: () => {
|
|
34
|
+
timeout.forEach(timeoutId => {
|
|
35
|
+
rawClearTimeout(timeoutId);
|
|
36
|
+
});
|
|
37
|
+
interval.forEach(intervalId => {
|
|
38
|
+
rawClearInterval(intervalId);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL3NhbmRib3gvcHJveHkvcGF0Y2hlcy90aW1lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0FBQ3hDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7QUFDNUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztBQUMxQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7QUFFOUMsTUFBTSxVQUFVLFVBQVU7SUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUNsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBRW5DLFNBQVMsaUJBQWlCLENBQUMsT0FBcUIsRUFBRSxFQUFXLEVBQUUsR0FBRyxJQUFXO1FBQ3pFLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsU0FBUyxtQkFBbUIsQ0FBQyxTQUFpQjtRQUMxQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFCLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsU0FBUyxrQkFBa0IsQ0FBQyxPQUFxQixFQUFFLEVBQVUsRUFBRSxHQUFHLElBQVc7UUFDekUsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN4RCxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxTQUFTLG9CQUFvQixDQUFDLFVBQWtCO1FBQzVDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUIsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLEVBQUU7WUFDTCxVQUFVLEVBQUUsaUJBQWlCO1lBQzdCLFlBQVksRUFBRSxtQkFBbUI7WUFDakMsV0FBVyxFQUFFLGtCQUFrQjtZQUMvQixhQUFhLEVBQUUsb0JBQW9CO1NBQ3RDO1FBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRTtZQUNWLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3hCLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztZQUNILFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQzFCLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FuZGJveFBhdGNoSGFuZGxlciB9IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgcmF3U2V0VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0O1xuY29uc3QgcmF3Q2xlYXJUaW1lb3V0ID0gd2luZG93LmNsZWFyVGltZW91dDtcbmNvbnN0IHJhd1NldEludGVydmFsID0gd2luZG93LnNldEludGVydmFsO1xuY29uc3QgcmF3Q2xlYXJJbnRlcnZhbCA9IHdpbmRvdy5jbGVhckludGVydmFsO1xuXG5leHBvcnQgZnVuY3Rpb24gdGltZXJQYXRjaCgpOiBTYW5kYm94UGF0Y2hIYW5kbGVyIHtcbiAgICBjb25zdCB0aW1lb3V0ID0gbmV3IFNldDxudW1iZXI+KCk7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBuZXcgU2V0PG51bWJlcj4oKTtcblxuICAgIGZ1bmN0aW9uIHJld3JpdGVTZXRUaW1lb3V0KGhhbmRsZXI6IFRpbWVySGFuZGxlciwgbXM/OiBudW1iZXIsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHJhd1NldFRpbWVvdXQoaGFuZGxlciwgbXMsIC4uLmFyZ3MpO1xuICAgICAgICB0aW1lb3V0LmFkZCh0aW1lb3V0SWQpO1xuICAgICAgICByZXR1cm4gdGltZW91dElkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJld3JpdGVDbGVhclRpbWVvdXQodGltZW91dElkOiBudW1iZXIpIHtcbiAgICAgICAgdGltZW91dC5kZWxldGUodGltZW91dElkKTtcbiAgICAgICAgcmF3Q2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmV3cml0ZVNldEludGVydmFsKGhhbmRsZXI6IFRpbWVySGFuZGxlciwgbXM6IG51bWJlciwgLi4uYXJnczogYW55W10pIHtcbiAgICAgICAgY29uc3QgaW50ZXJ2YWxJZCA9IHJhd1NldEludGVydmFsKGhhbmRsZXIsIG1zLCAuLi5hcmdzKTtcbiAgICAgICAgaW50ZXJ2YWwuYWRkKGludGVydmFsSWQpO1xuICAgICAgICByZXR1cm4gaW50ZXJ2YWxJZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZXdyaXRlQ2xlYXJJbnRlcnZhbChpbnRlcnZhbElkOiBudW1iZXIpIHtcbiAgICAgICAgaW50ZXJ2YWwuZGVsZXRlKGludGVydmFsSWQpO1xuICAgICAgICByYXdDbGVhckludGVydmFsKGludGVydmFsSWQpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIHJld3JpdGU6IHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQ6IHJld3JpdGVTZXRUaW1lb3V0LFxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0OiByZXdyaXRlQ2xlYXJUaW1lb3V0LFxuICAgICAgICAgICAgc2V0SW50ZXJ2YWw6IHJld3JpdGVTZXRJbnRlcnZhbCxcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWw6IHJld3JpdGVDbGVhckludGVydmFsXG4gICAgICAgIH0sXG4gICAgICAgIGRlc3Ryb3k6ICgpID0+IHtcbiAgICAgICAgICAgIHRpbWVvdXQuZm9yRWFjaCh0aW1lb3V0SWQgPT4ge1xuICAgICAgICAgICAgICAgIHJhd0NsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpbnRlcnZhbC5mb3JFYWNoKGludGVydmFsSWQgPT4ge1xuICAgICAgICAgICAgICAgIHJhd0NsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { isObject } from '../../../helpers';
|
|
2
|
+
import { RAW_NODE } from '../../constants';
|
|
3
|
+
const rawHasOwnProperty = Object.prototype.hasOwnProperty;
|
|
4
|
+
export function hasOwnProp(obj, key) {
|
|
5
|
+
return rawHasOwnProperty.call(obj, key);
|
|
6
|
+
}
|
|
7
|
+
export function isValueDescriptor(desc) {
|
|
8
|
+
if (desc === undefined) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
return 'value' in desc || 'writable' in desc;
|
|
12
|
+
}
|
|
13
|
+
export function isAccessorDescriptor(desc) {
|
|
14
|
+
if (desc === undefined) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return 'get' in desc || 'set' in desc;
|
|
18
|
+
}
|
|
19
|
+
export function isNonWriteableValue(desc) {
|
|
20
|
+
return desc && desc.configurable === false && 'value' in desc && desc.writable === false;
|
|
21
|
+
}
|
|
22
|
+
export function isInvalidSetAccessor(desc) {
|
|
23
|
+
if (desc && desc.configurable === false && 'set' in desc && desc.set === undefined) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function isInvalidGetAccessor(desc) {
|
|
31
|
+
if (desc && desc.configurable === false && 'get' in desc && desc.get === undefined) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function transferParams(args) {
|
|
39
|
+
args = Array.isArray(args) ? args : Array.from(args);
|
|
40
|
+
return args.map(arg => {
|
|
41
|
+
return arg[RAW_NODE] ? arg[RAW_NODE] : arg;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const buildInProps = ['length', 'caller', 'callee', 'arguments', 'prototype', Symbol.hasInstance];
|
|
45
|
+
function transferProps(o, n) {
|
|
46
|
+
for (const key of Reflect.ownKeys(o)) {
|
|
47
|
+
if (buildInProps.includes(key)) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
const desc = Object.getOwnPropertyDescriptor(n, key);
|
|
51
|
+
if (desc && desc.writable) {
|
|
52
|
+
n[key] = o[key];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export function bind(fn, context) {
|
|
57
|
+
const fNOP = function () { };
|
|
58
|
+
function bound() {
|
|
59
|
+
const args = transferParams(arguments);
|
|
60
|
+
if (this instanceof bound) {
|
|
61
|
+
const obj = new fn(...args);
|
|
62
|
+
Object.setPrototypeOf(obj, bound.prototype);
|
|
63
|
+
return obj;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return fn.apply(context, args);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
bound.$native = fn;
|
|
70
|
+
transferProps(fn, bound);
|
|
71
|
+
if (fn.prototype) {
|
|
72
|
+
fNOP.prototype = fn.prototype;
|
|
73
|
+
}
|
|
74
|
+
bound.prototype = new fNOP();
|
|
75
|
+
if (Symbol.hasInstance) {
|
|
76
|
+
Object.defineProperty(bound, Symbol.hasInstance, {
|
|
77
|
+
configurable: true,
|
|
78
|
+
value(instance) {
|
|
79
|
+
const op = fn.prototype;
|
|
80
|
+
return isObject(op) || typeof op === 'function' ? instance instanceof fn : false;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
return bound;
|
|
85
|
+
}
|
|
86
|
+
export function createFakeObject(target, writableKeys) {
|
|
87
|
+
const fakeObject = {};
|
|
88
|
+
const propertyMap = {};
|
|
89
|
+
const storageBox = Object.create(null);
|
|
90
|
+
const propertyNames = Object.getOwnPropertyNames(target);
|
|
91
|
+
const def = (p) => {
|
|
92
|
+
const descriptor = Object.getOwnPropertyDescriptor(target, p);
|
|
93
|
+
if (descriptor === null || descriptor === void 0 ? void 0 : descriptor.configurable) {
|
|
94
|
+
const hasGetter = hasOwnProp(descriptor, 'get');
|
|
95
|
+
const hasSetter = hasOwnProp(descriptor, 'set');
|
|
96
|
+
const canWritable = writableKeys && writableKeys.length > 0 && writableKeys.includes(p);
|
|
97
|
+
if (hasGetter) {
|
|
98
|
+
descriptor.get = () => (hasOwnProp(storageBox, p) ? storageBox[p] : target[p]);
|
|
99
|
+
}
|
|
100
|
+
if (hasSetter) {
|
|
101
|
+
descriptor.set = val => {
|
|
102
|
+
storageBox[p] = val;
|
|
103
|
+
return true;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
if (canWritable) {
|
|
107
|
+
if (descriptor.writable === false) {
|
|
108
|
+
descriptor.writable = true;
|
|
109
|
+
}
|
|
110
|
+
else if (hasGetter) {
|
|
111
|
+
descriptor.set = val => {
|
|
112
|
+
storageBox[p] = val;
|
|
113
|
+
return true;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
Object.defineProperty(fakeObject, p, Object.freeze(descriptor));
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
propertyNames.forEach(p => {
|
|
121
|
+
propertyMap[p] = true;
|
|
122
|
+
def(p);
|
|
123
|
+
});
|
|
124
|
+
// 再次循环是为了处理原型链中的属性
|
|
125
|
+
for (const prop in target) {
|
|
126
|
+
if (!propertyMap[prop]) {
|
|
127
|
+
def(prop);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return fakeObject;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0L3NyYy9zYW5kYm94L3Byb3h5L3Byb3hpZXMvY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztBQUMxRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQVEsRUFBRSxHQUFnQjtJQUNqRCxPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUF5QjtJQUN2RCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDcEIsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCxPQUFPLE9BQU8sSUFBSSxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQztBQUNqRCxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQXlCO0lBQzFELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUNwQixPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUNELE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDO0FBQzFDLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBeUI7SUFDekQsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQztBQUM3RixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQXlCO0lBQzFELElBQUksSUFB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LFVBQWlCLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycyc7XG5pbXBvcnQgeyBSQVdfTk9ERSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IHJhd0hhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbmV4cG9ydCBmdW5jdGlvbiBoYXNPd25Qcm9wKG9iajogYW55LCBrZXk6IFByb3BlcnR5S2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJhd0hhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNWYWx1ZURlc2NyaXB0b3IoZGVzYz86IFByb3BlcnR5RGVzY3JpcHRvcikge1xuICAgIGlmIChkZXNjID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gJ3ZhbHVlJyBpbiBkZXNjIHx8ICd3cml0YWJsZScgaW4gZGVzYztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWNjZXNzb3JEZXNjcmlwdG9yKGRlc2M/OiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcbiAgICBpZiAoZGVzYyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICdnZXQnIGluIGRlc2MgfHwgJ3NldCcgaW4gZGVzYztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTm9uV3JpdGVhYmxlVmFsdWUoZGVzYz86IFByb3BlcnR5RGVzY3JpcHRvcikge1xuICAgIHJldHVybiBkZXNjICYmIGRlc2MuY29uZmlndXJhYmxlID09PSBmYWxzZSAmJiAndmFsdWUnIGluIGRlc2MgJiYgZGVzYy53cml0YWJsZSA9PT0gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ludmFsaWRTZXRBY2Nlc3NvcihkZXNjPzogUHJvcGVydHlEZXNjcmlwdG9yKSB7XG4gICAgaWYgKGRlc2MgJiYgZGVzYy5jb25maWd1cmFibGUgPT09IGZhbHNlICYmICdzZXQnIGluIGRlc2MgJiYgZGVzYy5zZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJbnZhbGlkR2V0QWNjZXNzb3IoZGVzYz86IFByb3BlcnR5RGVzY3JpcHRvcikge1xuICAgIGlmIChkZXNjICYmIGRlc2MuY29uZmlndXJhYmxlID09PSBmYWxzZSAmJiAnZ2V0JyBpbiBkZXNjICYmIGRlc2MuZ2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNmZXJQYXJhbXMoYXJnczogSUFyZ3VtZW50cyB8IEFycmF5PGFueT4pIHtcbiAgICBhcmdzID0gQXJyYXkuaXNBcnJheShhcmdzKSA/IGFyZ3MgOiBBcnJheS5mcm9tKGFyZ3MpO1xuICAgIHJldHVybiBhcmdzLm1hcChhcmcgPT4ge1xuICAgICAgICByZXR1cm4gYXJnW1JBV19OT0RFXSA/IGFyZ1tSQVdfTk9ERV0gOiBhcmc7XG4gICAgfSk7XG59XG5cbmNvbnN0IGJ1aWxkSW5Qcm9wczogUHJvcGVydHlLZXlbXSA9IFsnbGVuZ3RoJywgJ2NhbGxlcicsICdjYWxsZWUnLCAnYXJndW1lbnRzJywgJ3Byb3RvdHlwZScsIFN5bWJvbC5oYXNJbnN0YW5jZV07XG5mdW5jdGlvbiB0cmFuc2ZlclByb3BzKG86IEZ1bmN0aW9uLCBuOiBGdW5jdGlvbikge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIFJlZmxlY3Qub3duS2V5cyhvKSkge1xuICAgICAgICBpZiAoYnVpbGRJblByb3BzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sIGtleSk7XG4gICAgICAgIGlmIChkZXNjICYmIGRlc2Mud3JpdGFibGUpIHtcbiAgICAgICAgICAgIG5ba2V5XSA9IG9ba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJpbmQoZm46IGFueSwgY29udGV4dDogYW55KSB7XG4gICAgY29uc3QgZk5PUCA9IGZ1bmN0aW9uKCkge307XG4gICAgZnVuY3Rpb24gYm91bmQoKSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSB0cmFuc2ZlclBhcmFtcyhhcmd1bWVudHMpO1xuICAgICAgICBpZiAodGhpcyBpbnN0YW5jZW9mIGJvdW5kKSB7XG4gICAgICAgICAgICBjb25zdCBvYmogPSBuZXcgZm4oLi4uYXJncyk7XG4gICAgICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2Yob2JqLCBib3VuZC5wcm90b3R5cGUpO1xuICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBib3VuZC4kbmF0aXZlID0gZm47XG4gICAgdHJhbnNmZXJQcm9wcyhmbiwgYm91bmQpO1xuICAgIGlmIChmbi5wcm90b3R5cGUpIHtcbiAgICAgICAgZk5PUC5wcm90b3R5cGUgPSBmbi5wcm90b3R5cGU7XG4gICAgfVxuICAgIGJvdW5kLnByb3RvdHlwZSA9IG5ldyBmTk9QKCk7XG4gICAgaWYgKFN5bWJvbC5oYXNJbnN0YW5jZSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYm91bmQsIFN5bWJvbC5oYXNJbnN0YW5jZSwge1xuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgdmFsdWUoaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvcCA9IGZuLnByb3RvdHlwZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNPYmplY3Qob3ApIHx8IHR5cGVvZiBvcCA9PT0gJ2Z1bmN0aW9uJyA/IGluc3RhbmNlIGluc3RhbmNlb2YgZm4gOiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBib3VuZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZha2VPYmplY3QodGFyZ2V0OiBSZWNvcmQ8UHJvcGVydHlLZXksIGFueT4sIHdyaXRhYmxlS2V5cz86IFByb3BlcnR5S2V5W10pIHtcbiAgICBjb25zdCBmYWtlT2JqZWN0ID0ge307XG4gICAgY29uc3QgcHJvcGVydHlNYXAgPSB7fTtcbiAgICBjb25zdCBzdG9yYWdlQm94ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgICBjb25zdCBkZWYgPSAocDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgcCk7XG4gICAgICAgIGlmIChkZXNjcmlwdG9yPy5jb25maWd1cmFibGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc0dldHRlciA9IGhhc093blByb3AoZGVzY3JpcHRvciwgJ2dldCcpO1xuICAgICAgICAgICAgY29uc3QgaGFzU2V0dGVyID0gaGFzT3duUHJvcChkZXNjcmlwdG9yLCAnc2V0Jyk7XG4gICAgICAgICAgICBjb25zdCBjYW5Xcml0YWJsZSA9IHdyaXRhYmxlS2V5cyAmJiB3cml0YWJsZUtleXMubGVuZ3RoID4gMCAmJiB3cml0YWJsZUtleXMuaW5jbHVkZXMocCk7XG4gICAgICAgICAgICBpZiAoaGFzR2V0dGVyKSB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvci5nZXQgPSAoKSA9PiAoaGFzT3duUHJvcChzdG9yYWdlQm94LCBwKSA/IHN0b3JhZ2VCb3hbcF0gOiB0YXJnZXRbcF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhhc1NldHRlcikge1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0ID0gdmFsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmFnZUJveFtwXSA9IHZhbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYW5Xcml0YWJsZSkge1xuICAgICAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLndyaXRhYmxlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhhc0dldHRlcikge1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLnNldCA9IHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlQm94W3BdID0gdmFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZha2VPYmplY3QsIHAsIE9iamVjdC5mcmVlemUoZGVzY3JpcHRvcikpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBwcm9wZXJ0eU5hbWVzLmZvckVhY2gocCA9PiB7XG4gICAgICAgIHByb3BlcnR5TWFwW3BdID0gdHJ1ZTtcbiAgICAgICAgZGVmKHApO1xuICAgIH0pO1xuICAgIC8vIOWGjeasoeW+queOr+aYr+S4uuS6huWkhOeQhuWOn+Wei+mTvuS4reeahOWxnuaAp1xuICAgIGZvciAoY29uc3QgcHJvcCBpbiB0YXJnZXQpIHtcbiAgICAgICAgaWYgKCFwcm9wZXJ0eU1hcFtwcm9wXSkge1xuICAgICAgICAgICAgZGVmKHByb3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWtlT2JqZWN0IGFzIGFueTtcbn1cbiJdfQ==
|