@worktile/planet 16.0.0-next.0 → 17.0.0-next.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/CHANGELOG.md +14 -0
- package/application/ng-planet-application-ref.d.ts +48 -0
- package/application/ng-planet-application-ref.d.ts.map +1 -0
- package/application/planet-application-ref.d.ts +3 -27
- package/application/planet-application-ref.d.ts.map +1 -1
- package/component/planet-component-loader.d.ts.map +1 -1
- package/component/planet-component-outlet.d.ts +1 -1
- package/esm2022/application/ng-planet-application-ref.mjs +106 -0
- package/esm2022/application/planet-application-loader.mjs +454 -0
- package/esm2022/application/planet-application-ref.mjs +2 -0
- package/esm2022/application/planet-application.service.mjs +85 -0
- package/esm2022/assets-loader.mjs +216 -0
- package/esm2022/component/planet-component-loader.mjs +171 -0
- package/esm2022/component/planet-component-outlet.mjs +69 -0
- package/esm2022/debug.mjs +33 -0
- package/{esm2020 → esm2022}/empty/empty.component.mjs +4 -4
- package/esm2022/global-event-dispatcher.mjs +70 -0
- package/esm2022/global-planet.mjs +63 -0
- package/esm2022/helpers.mjs +119 -0
- package/esm2022/module.mjs +33 -0
- package/esm2022/planet.mjs +91 -0
- package/esm2022/public-api.mjs +19 -0
- package/esm2022/router/route-redirect.mjs +63 -0
- package/{esm2020 → esm2022}/sandbox/index.mjs +1 -1
- package/esm2022/sandbox/proxy/patches/eventListener.mjs +41 -0
- package/esm2022/sandbox/proxy/proxies/common.mjs +132 -0
- package/esm2022/sandbox/proxy/proxies/document.mjs +126 -0
- package/esm2022/sandbox/proxy/proxies/window.mjs +158 -0
- package/esm2022/sandbox/proxy/proxy-sandbox.mjs +49 -0
- package/esm2022/sandbox/snapshot/snapshot-sandbox.mjs +12 -0
- package/{fesm2020 → fesm2022}/worktile-planet.mjs +96 -73
- package/fesm2022/worktile-planet.mjs.map +1 -0
- package/global-planet.d.ts +4 -2
- package/global-planet.d.ts.map +1 -1
- package/package.json +7 -13
- package/sandbox/proxy/patches/eventListener.d.ts.map +1 -1
- package/sandbox/proxy/proxy-sandbox.d.ts.map +1 -1
- package/sandbox/snapshot/snapshot-sandbox.d.ts.map +1 -1
- package/esm2020/application/planet-application-loader.mjs +0 -454
- package/esm2020/application/planet-application-ref.mjs +0 -94
- package/esm2020/application/planet-application.service.mjs +0 -85
- package/esm2020/assets-loader.mjs +0 -216
- package/esm2020/component/planet-component-loader.mjs +0 -170
- package/esm2020/component/planet-component-outlet.mjs +0 -69
- package/esm2020/debug.mjs +0 -33
- package/esm2020/global-event-dispatcher.mjs +0 -70
- package/esm2020/global-planet.mjs +0 -53
- package/esm2020/helpers.mjs +0 -119
- package/esm2020/module.mjs +0 -33
- package/esm2020/planet.mjs +0 -91
- package/esm2020/public-api.mjs +0 -20
- package/esm2020/router/route-redirect.mjs +0 -63
- package/esm2020/sandbox/proxy/patches/eventListener.mjs +0 -41
- package/esm2020/sandbox/proxy/proxies/common.mjs +0 -132
- package/esm2020/sandbox/proxy/proxies/document.mjs +0 -126
- package/esm2020/sandbox/proxy/proxies/window.mjs +0 -158
- package/esm2020/sandbox/proxy/proxy-sandbox.mjs +0 -49
- package/esm2020/sandbox/snapshot/snapshot-sandbox.mjs +0 -12
- package/fesm2015/worktile-planet.mjs +0 -2193
- package/fesm2015/worktile-planet.mjs.map +0 -1
- package/fesm2020/worktile-planet.mjs.map +0 -1
- /package/{esm2020 → esm2022}/application/portal-application.mjs +0 -0
- /package/{esm2020 → esm2022}/component/planet-component-ref.mjs +0 -0
- /package/{esm2020 → esm2022}/component/plant-component.config.mjs +0 -0
- /package/{esm2020 → esm2022}/planet.class.mjs +0 -0
- /package/{esm2020 → esm2022}/sandbox/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/sandbox/exec.mjs +0 -0
- /package/{esm2020 → esm2022}/sandbox/proxy/patches/document.mjs +0 -0
- /package/{esm2020 → esm2022}/sandbox/proxy/patches/index.mjs +0 -0
- /package/{esm2020 → esm2022}/sandbox/proxy/patches/storage.mjs +0 -0
- /package/{esm2020 → esm2022}/sandbox/proxy/patches/timer.mjs +0 -0
- /package/{esm2020 → esm2022}/sandbox/proxy/types.mjs +0 -0
- /package/{esm2020 → esm2022}/sandbox/sandbox.mjs +0 -0
- /package/{esm2020 → esm2022}/sandbox/types.mjs +0 -0
- /package/{esm2020 → esm2022}/worktile-planet.mjs +0 -0
package/esm2020/planet.mjs
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
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
|
-
export class Planet {
|
|
12
|
-
get planetApplicationLoader() {
|
|
13
|
-
return getApplicationLoader();
|
|
14
|
-
}
|
|
15
|
-
get planetApplicationService() {
|
|
16
|
-
return getApplicationService();
|
|
17
|
-
}
|
|
18
|
-
get loadingDone() {
|
|
19
|
-
return this.planetApplicationLoader.loadingDone;
|
|
20
|
-
}
|
|
21
|
-
get appStatusChange() {
|
|
22
|
-
return this.planetApplicationLoader.appStatusChange;
|
|
23
|
-
}
|
|
24
|
-
get appsLoadingStart() {
|
|
25
|
-
return this.planetApplicationLoader.appsLoadingStart;
|
|
26
|
-
}
|
|
27
|
-
constructor(injector, router, planetApplications) {
|
|
28
|
-
this.injector = injector;
|
|
29
|
-
this.router = router;
|
|
30
|
-
if (!this.planetApplicationLoader) {
|
|
31
|
-
setApplicationLoader(this.injector.get(PlanetApplicationLoader));
|
|
32
|
-
}
|
|
33
|
-
if (!this.planetApplicationService) {
|
|
34
|
-
setApplicationService(this.injector.get(PlanetApplicationService));
|
|
35
|
-
}
|
|
36
|
-
if (planetApplications) {
|
|
37
|
-
this.registerApps(planetApplications);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
setOptions(options) {
|
|
41
|
-
this.planetApplicationLoader.setOptions(options);
|
|
42
|
-
if (options.debugFactory) {
|
|
43
|
-
setDebugFactory(options.debugFactory);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
setPortalAppData(data) {
|
|
47
|
-
setPortalApplicationData(data);
|
|
48
|
-
}
|
|
49
|
-
registerApp(app) {
|
|
50
|
-
this.planetApplicationService.register(app);
|
|
51
|
-
}
|
|
52
|
-
registerApps(apps) {
|
|
53
|
-
this.planetApplicationService.register(apps);
|
|
54
|
-
}
|
|
55
|
-
unregisterApp(name) {
|
|
56
|
-
this.planetApplicationService.unregister(name);
|
|
57
|
-
}
|
|
58
|
-
getApps() {
|
|
59
|
-
return this.planetApplicationService.getApps();
|
|
60
|
-
}
|
|
61
|
-
start() {
|
|
62
|
-
this.subscription = this.router.events
|
|
63
|
-
.pipe(filter(event => {
|
|
64
|
-
return event instanceof NavigationEnd;
|
|
65
|
-
}), map(event => {
|
|
66
|
-
return event.urlAfterRedirects || event.url;
|
|
67
|
-
}), startWith(location.pathname), distinctUntilChanged())
|
|
68
|
-
.subscribe((url) => {
|
|
69
|
-
this.planetApplicationLoader.reroute({
|
|
70
|
-
url: url
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
stop() {
|
|
75
|
-
this.subscription?.unsubscribe();
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
Planet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: Planet, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: PLANET_APPLICATIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
79
|
-
Planet.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: Planet, providedIn: 'root' });
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: Planet, decorators: [{
|
|
81
|
-
type: Injectable,
|
|
82
|
-
args: [{
|
|
83
|
-
providedIn: 'root'
|
|
84
|
-
}]
|
|
85
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: undefined, decorators: [{
|
|
86
|
-
type: Inject,
|
|
87
|
-
args: [PLANET_APPLICATIONS]
|
|
88
|
-
}, {
|
|
89
|
-
type: Optional
|
|
90
|
-
}] }]; } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0L3NyYy9wbGFuZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBb0MsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEVBQ0gsdUJBQXVCLEVBRzFCLE1BQU0seUNBQXlDLENBQUM7QUFFakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUNILHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFLMUMsTUFBTSxPQUFPLE1BQU07SUFDZixJQUFZLHVCQUF1QjtRQUMvQixPQUFPLG9CQUFvQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVksd0JBQXdCO1FBQ2hDLE9BQU8scUJBQXFCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUM7SUFDekQsQ0FBQztJQUlELFlBQ1ksUUFBa0IsRUFDbEIsTUFBYyxFQUNtQixrQkFBdUM7UUFGeEUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBR3RCLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDL0Isb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNoQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7U0FDdEU7UUFFRCxJQUFJLGtCQUFrQixFQUFFO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBK0I7UUFDdEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDdEIsZUFBZSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBSSxJQUFPO1FBQ3ZCLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxXQUFXLENBQVMsR0FBOEI7UUFDOUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWSxDQUFTLElBQWlDO1FBQ2xELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFZO1FBQ3RCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxZQUFZLEdBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFrQzthQUM5RCxJQUFJLENBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1gsT0FBTyxLQUFLLFlBQVksYUFBYSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNSLE9BQVEsS0FBdUIsQ0FBQyxpQkFBaUIsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQzVCLG9CQUFvQixFQUFFLENBQ3pCO2FBQ0EsU0FBUyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQztnQkFDakMsR0FBRyxFQUFFLEdBQUc7YUFDWCxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzttR0F4RlEsTUFBTSxnRUEwQkgsbUJBQW1CO3VHQTFCdEIsTUFBTSxjQUZILE1BQU07MkZBRVQsTUFBTTtrQkFIbEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQTJCUSxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXJFdmVudCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBsYW5ldE9wdGlvbnMsIFBsYW5ldEFwcGxpY2F0aW9uLCBQTEFORVRfQVBQTElDQVRJT05TIH0gZnJvbSAnLi9wbGFuZXQuY2xhc3MnO1xuaW1wb3J0IHsgUGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi9wbGFuZXQtYXBwbGljYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1xuICAgIFBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyLFxuICAgIEFwcHNMb2FkaW5nU3RhcnRFdmVudCxcbiAgICBBcHBTdGF0dXNDaGFuZ2VFdmVudFxufSBmcm9tICcuL2FwcGxpY2F0aW9uL3BsYW5ldC1hcHBsaWNhdGlvbi1sb2FkZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHN0YXJ0V2l0aCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgc2V0UG9ydGFsQXBwbGljYXRpb25EYXRhLFxuICAgIHNldEFwcGxpY2F0aW9uTG9hZGVyLFxuICAgIHNldEFwcGxpY2F0aW9uU2VydmljZSxcbiAgICBnZXRBcHBsaWNhdGlvbkxvYWRlcixcbiAgICBnZXRBcHBsaWNhdGlvblNlcnZpY2Vcbn0gZnJvbSAnLi9nbG9iYWwtcGxhbmV0JztcbmltcG9ydCB7IHNldERlYnVnRmFjdG9yeSB9IGZyb20gJy4vZGVidWcnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBsYW5ldCB7XG4gICAgcHJpdmF0ZSBnZXQgcGxhbmV0QXBwbGljYXRpb25Mb2FkZXIoKTogUGxhbmV0QXBwbGljYXRpb25Mb2FkZXIge1xuICAgICAgICByZXR1cm4gZ2V0QXBwbGljYXRpb25Mb2FkZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBwbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UoKSB7XG4gICAgICAgIHJldHVybiBnZXRBcHBsaWNhdGlvblNlcnZpY2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvYWRpbmdEb25lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFuZXRBcHBsaWNhdGlvbkxvYWRlci5sb2FkaW5nRG9uZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFwcFN0YXR1c0NoYW5nZSgpOiBPYnNlcnZhYmxlPEFwcFN0YXR1c0NoYW5nZUV2ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyLmFwcFN0YXR1c0NoYW5nZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFwcHNMb2FkaW5nU3RhcnQoKTogT2JzZXJ2YWJsZTxBcHBzTG9hZGluZ1N0YXJ0RXZlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhbmV0QXBwbGljYXRpb25Mb2FkZXIuYXBwc0xvYWRpbmdTdGFydDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChQTEFORVRfQVBQTElDQVRJT05TKSBAT3B0aW9uYWwoKSBwbGFuZXRBcHBsaWNhdGlvbnM6IFBsYW5ldEFwcGxpY2F0aW9uW11cbiAgICApIHtcbiAgICAgICAgaWYgKCF0aGlzLnBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyKSB7XG4gICAgICAgICAgICBzZXRBcHBsaWNhdGlvbkxvYWRlcih0aGlzLmluamVjdG9yLmdldChQbGFuZXRBcHBsaWNhdGlvbkxvYWRlcikpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5wbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgICAgIHNldEFwcGxpY2F0aW9uU2VydmljZSh0aGlzLmluamVjdG9yLmdldChQbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwbGFuZXRBcHBsaWNhdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJBcHBzKHBsYW5ldEFwcGxpY2F0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRPcHRpb25zKG9wdGlvbnM6IFBhcnRpYWw8UGxhbmV0T3B0aW9ucz4pIHtcbiAgICAgICAgdGhpcy5wbGFuZXRBcHBsaWNhdGlvbkxvYWRlci5zZXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICBpZiAob3B0aW9ucy5kZWJ1Z0ZhY3RvcnkpIHtcbiAgICAgICAgICAgIHNldERlYnVnRmFjdG9yeShvcHRpb25zLmRlYnVnRmFjdG9yeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRQb3J0YWxBcHBEYXRhPFQ+KGRhdGE6IFQpIHtcbiAgICAgICAgc2V0UG9ydGFsQXBwbGljYXRpb25EYXRhKGRhdGEpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyQXBwPFRFeHRyYT4oYXBwOiBQbGFuZXRBcHBsaWNhdGlvbjxURXh0cmE+KSB7XG4gICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLnJlZ2lzdGVyKGFwcCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJBcHBzPFRFeHRyYT4oYXBwczogUGxhbmV0QXBwbGljYXRpb248VEV4dHJhPltdKSB7XG4gICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLnJlZ2lzdGVyKGFwcHMpO1xuICAgIH1cblxuICAgIHVucmVnaXN0ZXJBcHAobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLnVucmVnaXN0ZXIobmFtZSk7XG4gICAgfVxuXG4gICAgZ2V0QXBwcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLmdldEFwcHMoKTtcbiAgICB9XG5cbiAgICBzdGFydCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSAodGhpcy5yb3V0ZXIuZXZlbnRzIGFzIE9ic2VydmFibGU8Um91dGVyRXZlbnQ+KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGV2ZW50IGFzIE5hdmlnYXRpb25FbmQpLnVybEFmdGVyUmVkaXJlY3RzIHx8IGV2ZW50LnVybDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgobG9jYXRpb24ucGF0aG5hbWUpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHVybDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wbGFuZXRBcHBsaWNhdGlvbkxvYWRlci5yZXJvdXRlKHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0b3AoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
|
package/esm2020/public-api.mjs
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
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 { PlanetComponentOutlet } from './component/planet-component-outlet';
|
|
17
|
-
export { PlantComponentConfig } from './component/plant-component.config';
|
|
18
|
-
export * from './empty/empty.component';
|
|
19
|
-
export * from './router/route-redirect';
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BGLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxPQUFPLEVBQW1CLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb3JlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wbGFuZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9nbG9iYWwtZXZlbnQtZGlzcGF0Y2hlcic7XG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uL3BvcnRhbC1hcHBsaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3BsYW5ldC5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZSc7XG5leHBvcnQgeyBQbGFuZXRBcHBsaWNhdGlvblJlZiB9IGZyb20gJy4vYXBwbGljYXRpb24vcGxhbmV0LWFwcGxpY2F0aW9uLXJlZic7XG5leHBvcnQgeyBkZWZpbmVBcHBsaWNhdGlvbiwgZ2V0UG9ydGFsQXBwbGljYXRpb25EYXRhLCBnZXRQbGFuZXRBcHBsaWNhdGlvblJlZiB9IGZyb20gJy4vZ2xvYmFsLXBsYW5ldCc7XG5leHBvcnQgeyBQbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL2FwcGxpY2F0aW9uL3BsYW5ldC1hcHBsaWNhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBwbGljYXRpb24vcGxhbmV0LWFwcGxpY2F0aW9uLWxvYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2Fzc2V0cy1sb2FkZXInO1xuZXhwb3J0IHsgUGxhbmV0Q29tcG9uZW50LCBQbGFuZXRDb21wb25lbnRMb2FkZXIgfSBmcm9tICcuL2NvbXBvbmVudC9wbGFuZXQtY29tcG9uZW50LWxvYWRlcic7XG5leHBvcnQgeyBQbGFuZXRDb21wb25lbnRSZWYgfSBmcm9tICcuL2NvbXBvbmVudC9wbGFuZXQtY29tcG9uZW50LXJlZic7XG5leHBvcnQgeyBQbGFuZXRDb21wb25lbnRPdXRsZXQgfSBmcm9tICcuL2NvbXBvbmVudC9wbGFuZXQtY29tcG9uZW50LW91dGxldCc7XG5leHBvcnQgeyBQbGFudENvbXBvbmVudENvbmZpZyB9IGZyb20gJy4vY29tcG9uZW50L3BsYW50LWNvbXBvbmVudC5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9lbXB0eS9lbXB0eS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXIvcm91dGUtcmVkaXJlY3QnO1xuIl19
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Component, inject } from '@angular/core';
|
|
2
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
class RouteRedirect {
|
|
5
|
-
constructor(redirectTo) {
|
|
6
|
-
this.activatedRoute = inject(ActivatedRoute);
|
|
7
|
-
this.router = inject(Router);
|
|
8
|
-
const finalRedirectTo = redirectTo || this.activatedRoute.snapshot.data.redirectTo;
|
|
9
|
-
if (finalRedirectTo) {
|
|
10
|
-
const activatedRouteUrl = this.activatedRoute.pathFromRoot
|
|
11
|
-
.filter(route => {
|
|
12
|
-
return route.snapshot.url?.length > 0;
|
|
13
|
-
})
|
|
14
|
-
.map(route => {
|
|
15
|
-
return route.snapshot.url.join('/');
|
|
16
|
-
})
|
|
17
|
-
.join('/');
|
|
18
|
-
if (this.router.isActive(activatedRouteUrl, {
|
|
19
|
-
matrixParams: 'exact',
|
|
20
|
-
paths: 'exact',
|
|
21
|
-
queryParams: 'exact',
|
|
22
|
-
fragment: 'exact'
|
|
23
|
-
})) {
|
|
24
|
-
this.router.navigate([`${finalRedirectTo}`],
|
|
25
|
-
// By replacing the current URL in the history, we keep the Browser's Back
|
|
26
|
-
// Button behavior in tact. This will allow the user to easily navigate back
|
|
27
|
-
// to the previous URL without getting caught in a redirect.
|
|
28
|
-
{
|
|
29
|
-
replaceUrl: true,
|
|
30
|
-
relativeTo: this.activatedRoute
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
export function routeRedirect(redirectTo) {
|
|
37
|
-
return new RouteRedirect(redirectTo);
|
|
38
|
-
}
|
|
39
|
-
export class RedirectToRouteComponent {
|
|
40
|
-
constructor() {
|
|
41
|
-
this.routeRedirect = routeRedirect();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
RedirectToRouteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: RedirectToRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
-
RedirectToRouteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: RedirectToRouteComponent, isStandalone: true, selector: "planet-redirect-to-route", ngImport: i0, template: '', isInline: true });
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: RedirectToRouteComponent, decorators: [{
|
|
47
|
-
type: Component,
|
|
48
|
-
args: [{
|
|
49
|
-
selector: 'planet-redirect-to-route',
|
|
50
|
-
template: '',
|
|
51
|
-
standalone: true
|
|
52
|
-
}]
|
|
53
|
-
}] });
|
|
54
|
-
export function redirectToRoute(redirectTo) {
|
|
55
|
-
return {
|
|
56
|
-
path: '',
|
|
57
|
-
component: RedirectToRouteComponent,
|
|
58
|
-
data: {
|
|
59
|
-
redirectTo: redirectTo
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcmVkaXJlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL3JvdXRlci9yb3V0ZS1yZWRpcmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFTLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDOztBQUV6RSxNQUFNLGFBQWE7SUFJZixZQUFZLFVBQWtCO1FBSDlCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFHcEIsTUFBTSxlQUFlLEdBQUcsVUFBVSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbkYsSUFBSSxlQUFlLEVBQUU7WUFDakIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVk7aUJBQ3JELE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDWixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDO2lCQUNELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDVCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QyxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsSUFDSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDcEMsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLEtBQUssRUFBRSxPQUFPO2dCQUNkLFdBQVcsRUFBRSxPQUFPO2dCQUNwQixRQUFRLEVBQUUsT0FBTzthQUNwQixDQUFDLEVBQ0o7Z0JBQ0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQ2hCLENBQUMsR0FBRyxlQUFlLEVBQUUsQ0FBQztnQkFDdEIsMEVBQTBFO2dCQUMxRSw0RUFBNEU7Z0JBQzVFLDREQUE0RDtnQkFDNUQ7b0JBQ0ksVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYztpQkFDbEMsQ0FDSixDQUFDO2FBQ0w7U0FDSjtJQUNMLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsVUFBbUI7SUFDN0MsT0FBTyxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBT0QsTUFBTSxPQUFPLHdCQUF3QjtJQUxyQztRQU1JLGtCQUFhLEdBQUcsYUFBYSxFQUFFLENBQUM7S0FDbkM7O3FIQUZZLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLG9GQUh2QixFQUFFOzJGQUdILHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7O0FBS0QsTUFBTSxVQUFVLGVBQWUsQ0FBQyxVQUFrQjtJQUM5QyxPQUFPO1FBQ0gsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsd0JBQXdCO1FBQ25DLElBQUksRUFBRTtZQUNGLFVBQVUsRUFBRSxVQUFVO1NBQ3pCO0tBQ0osQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlLCBSb3V0ZXIsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5jbGFzcyBSb3V0ZVJlZGlyZWN0IHtcbiAgICBhY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgICBjb25zdHJ1Y3RvcihyZWRpcmVjdFRvOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZmluYWxSZWRpcmVjdFRvID0gcmVkaXJlY3RUbyB8fCB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmRhdGEucmVkaXJlY3RUbztcbiAgICAgICAgaWYgKGZpbmFsUmVkaXJlY3RUbykge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZhdGVkUm91dGVVcmwgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhdGhGcm9tUm9vdFxuICAgICAgICAgICAgICAgIC5maWx0ZXIocm91dGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcm91dGUuc25hcHNob3QudXJsPy5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLm1hcChyb3V0ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByb3V0ZS5zbmFwc2hvdC51cmwuam9pbignLycpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmpvaW4oJy8nKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5pc0FjdGl2ZShhY3RpdmF0ZWRSb3V0ZVVybCwge1xuICAgICAgICAgICAgICAgICAgICBtYXRyaXhQYXJhbXM6ICdleGFjdCcsXG4gICAgICAgICAgICAgICAgICAgIHBhdGhzOiAnZXhhY3QnLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogJ2V4YWN0JyxcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnQ6ICdleGFjdCdcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXG4gICAgICAgICAgICAgICAgICAgIFtgJHtmaW5hbFJlZGlyZWN0VG99YF0sXG4gICAgICAgICAgICAgICAgICAgIC8vIEJ5IHJlcGxhY2luZyB0aGUgY3VycmVudCBVUkwgaW4gdGhlIGhpc3RvcnksIHdlIGtlZXAgdGhlIEJyb3dzZXIncyBCYWNrXG4gICAgICAgICAgICAgICAgICAgIC8vIEJ1dHRvbiBiZWhhdmlvciBpbiB0YWN0LiBUaGlzIHdpbGwgYWxsb3cgdGhlIHVzZXIgdG8gZWFzaWx5IG5hdmlnYXRlIGJhY2tcbiAgICAgICAgICAgICAgICAgICAgLy8gdG8gdGhlIHByZXZpb3VzIFVSTCB3aXRob3V0IGdldHRpbmcgY2F1Z2h0IGluIGEgcmVkaXJlY3QuXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VVcmw6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcm91dGVSZWRpcmVjdChyZWRpcmVjdFRvPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBSb3V0ZVJlZGlyZWN0KHJlZGlyZWN0VG8pO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BsYW5ldC1yZWRpcmVjdC10by1yb3V0ZScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgUmVkaXJlY3RUb1JvdXRlQ29tcG9uZW50IHtcbiAgICByb3V0ZVJlZGlyZWN0ID0gcm91dGVSZWRpcmVjdCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkaXJlY3RUb1JvdXRlKHJlZGlyZWN0VG86IHN0cmluZyk6IFJvdXRlIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgY29tcG9uZW50OiBSZWRpcmVjdFRvUm91dGVDb21wb25lbnQsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHJlZGlyZWN0VG86IHJlZGlyZWN0VG9cbiAgICAgICAgfVxuICAgIH07XG59XG4iXX0=
|
|
@@ -1,41 +0,0 @@
|
|
|
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==
|
|
@@ -1,132 +0,0 @@
|
|
|
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?.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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QUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgUkFXX05PREUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5jb25zdCByYXdIYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5leHBvcnQgZnVuY3Rpb24gaGFzT3duUHJvcChvYmo6IGFueSwga2V5OiBQcm9wZXJ0eUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByYXdIYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsdWVEZXNjcmlwdG9yKGRlc2M/OiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcbiAgICBpZiAoZGVzYyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICd2YWx1ZScgaW4gZGVzYyB8fCAnd3JpdGFibGUnIGluIGRlc2M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FjY2Vzc29yRGVzY3JpcHRvcihkZXNjPzogUHJvcGVydHlEZXNjcmlwdG9yKSB7XG4gICAgaWYgKGRlc2MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAnZ2V0JyBpbiBkZXNjIHx8ICdzZXQnIGluIGRlc2M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05vbldyaXRlYWJsZVZhbHVlKGRlc2M/OiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcbiAgICByZXR1cm4gZGVzYyAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgJ3ZhbHVlJyBpbiBkZXNjICYmIGRlc2Mud3JpdGFibGUgPT09IGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJbnZhbGlkU2V0QWNjZXNzb3IoZGVzYz86IFByb3BlcnR5RGVzY3JpcHRvcikge1xuICAgIGlmIChkZXNjICYmIGRlc2MuY29uZmlndXJhYmxlID09PSBmYWxzZSAmJiAnc2V0JyBpbiBkZXNjICYmIGRlc2Muc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW52YWxpZEdldEFjY2Vzc29yKGRlc2M/OiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcbiAgICBpZiAoZGVzYyAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgJ2dldCcgaW4gZGVzYyAmJiBkZXNjLmdldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZmVyUGFyYW1zKGFyZ3M6IElBcmd1bWVudHMgfCBBcnJheTxhbnk+KSB7XG4gICAgYXJncyA9IEFycmF5LmlzQXJyYXkoYXJncykgPyBhcmdzIDogQXJyYXkuZnJvbShhcmdzKTtcbiAgICByZXR1cm4gYXJncy5tYXAoYXJnID0+IHtcbiAgICAgICAgcmV0dXJuIGFyZ1tSQVdfTk9ERV0gPyBhcmdbUkFXX05PREVdIDogYXJnO1xuICAgIH0pO1xufVxuXG5jb25zdCBidWlsZEluUHJvcHM6IFByb3BlcnR5S2V5W10gPSBbJ2xlbmd0aCcsICdjYWxsZXInLCAnY2FsbGVlJywgJ2FyZ3VtZW50cycsICdwcm90b3R5cGUnLCBTeW1ib2wuaGFzSW5zdGFuY2VdO1xuZnVuY3Rpb24gdHJhbnNmZXJQcm9wcyhvOiBGdW5jdGlvbiwgbjogRnVuY3Rpb24pIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBSZWZsZWN0Lm93bktleXMobykpIHtcbiAgICAgICAgaWYgKGJ1aWxkSW5Qcm9wcy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLCBrZXkpO1xuICAgICAgICBpZiAoZGVzYyAmJiBkZXNjLndyaXRhYmxlKSB7XG4gICAgICAgICAgICBuW2tleV0gPSBvW2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiaW5kKGZuOiBhbnksIGNvbnRleHQ6IGFueSkge1xuICAgIGNvbnN0IGZOT1AgPSBmdW5jdGlvbigpIHt9O1xuICAgIGZ1bmN0aW9uIGJvdW5kKCkge1xuICAgICAgICBjb25zdCBhcmdzID0gdHJhbnNmZXJQYXJhbXMoYXJndW1lbnRzKTtcbiAgICAgICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBib3VuZCkge1xuICAgICAgICAgICAgY29uc3Qgb2JqID0gbmV3IGZuKC4uLmFyZ3MpO1xuICAgICAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKG9iaiwgYm91bmQucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYm91bmQuJG5hdGl2ZSA9IGZuO1xuICAgIHRyYW5zZmVyUHJvcHMoZm4sIGJvdW5kKTtcbiAgICBpZiAoZm4ucHJvdG90eXBlKSB7XG4gICAgICAgIGZOT1AucHJvdG90eXBlID0gZm4ucHJvdG90eXBlO1xuICAgIH1cbiAgICBib3VuZC5wcm90b3R5cGUgPSBuZXcgZk5PUCgpO1xuICAgIGlmIChTeW1ib2wuaGFzSW5zdGFuY2UpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGJvdW5kLCBTeW1ib2wuaGFzSW5zdGFuY2UsIHtcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHZhbHVlKGluc3RhbmNlOiBhbnkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvcCA9IGZuLnByb3RvdHlwZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNPYmplY3Qob3ApIHx8IHR5cGVvZiBvcCA9PT0gJ2Z1bmN0aW9uJyA/IGluc3RhbmNlIGluc3RhbmNlb2YgZm4gOiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBib3VuZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZha2VPYmplY3QodGFyZ2V0OiBSZWNvcmQ8UHJvcGVydHlLZXksIGFueT4sIHdyaXRhYmxlS2V5cz86IFByb3BlcnR5S2V5W10pIHtcbiAgICBjb25zdCBmYWtlT2JqZWN0ID0ge307XG4gICAgY29uc3QgcHJvcGVydHlNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IGJvb2xlYW4+ID0ge307XG4gICAgY29uc3Qgc3RvcmFnZUJveCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgY29uc3QgcHJvcGVydHlOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCk7XG4gICAgY29uc3QgZGVmID0gKHA6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIHApO1xuICAgICAgICBpZiAoZGVzY3JpcHRvcj8uY29uZmlndXJhYmxlKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNHZXR0ZXIgPSBoYXNPd25Qcm9wKGRlc2NyaXB0b3IsICdnZXQnKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc1NldHRlciA9IGhhc093blByb3AoZGVzY3JpcHRvciwgJ3NldCcpO1xuICAgICAgICAgICAgY29uc3QgY2FuV3JpdGFibGUgPSB3cml0YWJsZUtleXMgJiYgd3JpdGFibGVLZXlzLmxlbmd0aCA+IDAgJiYgd3JpdGFibGVLZXlzLmluY2x1ZGVzKHApO1xuICAgICAgICAgICAgaWYgKGhhc0dldHRlcikge1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IuZ2V0ID0gKCkgPT4gKGhhc093blByb3Aoc3RvcmFnZUJveCwgcCkgPyBzdG9yYWdlQm94W3BdIDogdGFyZ2V0W3BdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNTZXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLnNldCA9IHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VCb3hbcF0gPSB2YWw7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2FuV3JpdGFibGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci53cml0YWJsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChoYXNHZXR0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci5zZXQgPSB2YWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZUJveFtwXSA9IHZhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmYWtlT2JqZWN0LCBwLCBPYmplY3QuZnJlZXplKGRlc2NyaXB0b3IpKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcHJvcGVydHlOYW1lcy5mb3JFYWNoKHAgPT4ge1xuICAgICAgICBwcm9wZXJ0eU1hcFtwXSA9IHRydWU7XG4gICAgICAgIGRlZihwKTtcbiAgICB9KTtcbiAgICAvLyDlho3mrKHlvqrnjq/mmK/kuLrkuoblpITnkIbljp/lnovpk77kuK3nmoTlsZ7mgKdcbiAgICBmb3IgKGNvbnN0IHByb3AgaW4gdGFyZ2V0KSB7XG4gICAgICAgIGlmICghcHJvcGVydHlNYXBbcHJvcF0pIHtcbiAgICAgICAgICAgIGRlZihwcm9wKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFrZU9iamVjdCBhcyBhbnk7XG59XG4iXX0=
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { isFunction } from '../../../helpers';
|
|
2
|
-
import { DOCUMENT_BIND_FN, PLANET_SANDBOX_DOCUMENT_WHITELIST, RAW_NODE } from '../../constants';
|
|
3
|
-
import { hasOwnProp, createFakeObject, isInvalidSetAccessor, isNonWriteableValue, bind, isInvalidGetAccessor } from './common';
|
|
4
|
-
const rawDocument = Document;
|
|
5
|
-
const whitelist = ['cookie', 'title', 'location', ...(PLANET_SANDBOX_DOCUMENT_WHITELIST || [])];
|
|
6
|
-
export class ProxyDocument {
|
|
7
|
-
constructor() { }
|
|
8
|
-
createGetter() {
|
|
9
|
-
return (target, p, receiver) => {
|
|
10
|
-
const value = hasOwnProp(target, p) ? Reflect.get(target, p, receiver) : Reflect.get(document, p);
|
|
11
|
-
if (p === 'activeElement') {
|
|
12
|
-
return Reflect.get(document, p);
|
|
13
|
-
}
|
|
14
|
-
// TODO: 处理动态节点
|
|
15
|
-
// if (p === 'createElement') {
|
|
16
|
-
// return function(tagName: string, options: ElementCreationOptions) {
|
|
17
|
-
// const created = value.call(document, tagName, options);
|
|
18
|
-
// if (isObject(created)) {
|
|
19
|
-
// created[SANDBOX_INSTANCE] = sandbox;
|
|
20
|
-
// }
|
|
21
|
-
// return created;
|
|
22
|
-
// };
|
|
23
|
-
// }
|
|
24
|
-
if (isFunction(value)) {
|
|
25
|
-
let newValue = hasOwnProp(value, DOCUMENT_BIND_FN) ? value[DOCUMENT_BIND_FN] : null;
|
|
26
|
-
if (!newValue) {
|
|
27
|
-
newValue = bind(value, document);
|
|
28
|
-
}
|
|
29
|
-
const desc = Object.getOwnPropertyDescriptor(target, p);
|
|
30
|
-
if (desc && isNonWriteableValue(desc)) {
|
|
31
|
-
if (!Object.is(newValue, desc.value)) {
|
|
32
|
-
return value;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
if (isInvalidGetAccessor(desc)) {
|
|
36
|
-
return undefined;
|
|
37
|
-
}
|
|
38
|
-
value[DOCUMENT_BIND_FN] = newValue;
|
|
39
|
-
return newValue;
|
|
40
|
-
}
|
|
41
|
-
return value;
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
createSetter() {
|
|
45
|
-
return (target, p, value, receiver) => {
|
|
46
|
-
const desc = Object.getOwnPropertyDescriptor(whitelist.includes(p) ? document : receiver || target, p);
|
|
47
|
-
if (desc && isNonWriteableValue(desc)) {
|
|
48
|
-
if (Object.is(value, desc.value)) {
|
|
49
|
-
return true;
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (isInvalidSetAccessor(desc)) {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
return whitelist.includes(p) ? Reflect.set(document, p, value) : Reflect.set(target, p, value, receiver);
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
createDefineProperty() {
|
|
62
|
-
return (target, p, descriptor) => {
|
|
63
|
-
return whitelist.includes(p)
|
|
64
|
-
? Reflect.defineProperty(document, p, descriptor)
|
|
65
|
-
: Reflect.defineProperty(target, p, descriptor);
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
create() {
|
|
69
|
-
let proxyDocument = null;
|
|
70
|
-
const fakeDocument = createFakeObject(document);
|
|
71
|
-
const getter = this.createGetter();
|
|
72
|
-
const fakeDocumentProto = new Proxy(fakeDocument, {
|
|
73
|
-
get: (...args) => {
|
|
74
|
-
return getter(...args);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
const fakeDocumentCtor = function Document() {
|
|
78
|
-
if (!(this instanceof fakeDocumentCtor)) {
|
|
79
|
-
throw new TypeError(`Failed to construct 'Document': Please use the 'new' operator.`);
|
|
80
|
-
}
|
|
81
|
-
const docInstance = new rawDocument();
|
|
82
|
-
Object.setPrototypeOf(docInstance, fakeDocument);
|
|
83
|
-
return docInstance;
|
|
84
|
-
};
|
|
85
|
-
fakeDocumentCtor.prototype = fakeDocumentProto;
|
|
86
|
-
fakeDocumentCtor.prototype.constructor = fakeDocumentCtor;
|
|
87
|
-
if (Symbol.hasInstance) {
|
|
88
|
-
Object.defineProperty(fakeDocumentCtor, Symbol.hasInstance, {
|
|
89
|
-
configurable: true,
|
|
90
|
-
value(value) {
|
|
91
|
-
let proto = value;
|
|
92
|
-
if (proto === document) {
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
while ((proto = Object.getPrototypeOf(proto))) {
|
|
96
|
-
if (proto === fakeDocumentProto) {
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
const cloned = function () { };
|
|
101
|
-
cloned.prototype = fakeDocument;
|
|
102
|
-
return value instanceof cloned;
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
proxyDocument = new Proxy(Object.create(fakeDocumentProto, {
|
|
107
|
-
currentScript: {
|
|
108
|
-
value: null,
|
|
109
|
-
writable: true
|
|
110
|
-
},
|
|
111
|
-
[RAW_NODE]: {
|
|
112
|
-
writable: false,
|
|
113
|
-
configurable: false,
|
|
114
|
-
value: document
|
|
115
|
-
}
|
|
116
|
-
}), {
|
|
117
|
-
set: this.createSetter(),
|
|
118
|
-
defineProperty: this.createDefineProperty()
|
|
119
|
-
});
|
|
120
|
-
return {
|
|
121
|
-
document: proxyDocument,
|
|
122
|
-
Document: fakeDocumentCtor
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL3NhbmRib3gvcHJveHkvcHJveGllcy9kb2N1bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlDQUFpQyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hHLE9BQU8sRUFDSCxVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsSUFBSSxFQUNKLG9CQUFvQixFQUN2QixNQUFNLFVBQVUsQ0FBQztBQUVsQixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUM7QUFDN0IsTUFBTSxTQUFTLEdBQWtCLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLGlDQUFpQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFL0csTUFBTSxPQUFPLGFBQWE7SUFDdEIsZ0JBQWUsQ0FBQztJQUVSLFlBQVk7UUFDaEIsT0FBTyxDQUFDLE1BQVcsRUFBRSxDQUFjLEVBQUUsUUFBYyxFQUFFLEVBQUU7WUFDbkQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsRyxJQUFJLENBQUMsS0FBSyxlQUFlLEVBQUU7Z0JBQ3ZCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDbkM7WUFDRCxlQUFlO1lBQ2YsK0JBQStCO1lBQy9CLDBF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Q0FBQztvQkFDN0IsTUFBTSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7b0JBQ2hDLE9BQU8sS0FBSyxZQUFZLE1BQU0sQ0FBQztnQkFDbkMsQ0FBQzthQUNKLENBQUMsQ0FBQztTQUNOO1FBQ0QsYUFBYSxHQUFHLElBQUksS0FBSyxDQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFO1lBQzdCLGFBQWEsRUFBRTtnQkFDWCxLQUFLLEVBQUUsSUFBSTtnQkFDWCxRQUFRLEVBQUUsSUFBSTthQUNqQjtZQUNELENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ1IsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLEtBQUssRUFBRSxRQUFRO2FBQ2xCO1NBQ0osQ0FBQyxFQUNGO1lBQ0ksR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDeEIsY0FBYyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtTQUM5QyxDQUNKLENBQUM7UUFDRixPQUFPO1lBQ0gsUUFBUSxFQUFFLGFBQWE7WUFDdkIsUUFBUSxFQUFFLGdCQUFnQjtTQUM3QixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgRE9DVU1FTlRfQklORF9GTiwgUExBTkVUX1NBTkRCT1hfRE9DVU1FTlRfV0hJVEVMSVNULCBSQVdfTk9ERSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICAgIGhhc093blByb3AsXG4gICAgY3JlYXRlRmFrZU9iamVjdCxcbiAgICBpc0ludmFsaWRTZXRBY2Nlc3NvcixcbiAgICBpc05vbldyaXRlYWJsZVZhbHVlLFxuICAgIGJpbmQsXG4gICAgaXNJbnZhbGlkR2V0QWNjZXNzb3Jcbn0gZnJvbSAnLi9jb21tb24nO1xuXG5jb25zdCByYXdEb2N1bWVudCA9IERvY3VtZW50O1xuY29uc3Qgd2hpdGVsaXN0OiBQcm9wZXJ0eUtleVtdID0gWydjb29raWUnLCAndGl0bGUnLCAnbG9jYXRpb24nLCAuLi4oUExBTkVUX1NBTkRCT1hfRE9DVU1FTlRfV0hJVEVMSVNUIHx8IFtdKV07XG5cbmV4cG9ydCBjbGFzcyBQcm94eURvY3VtZW50IHtcbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUdldHRlcigpIHtcbiAgICAgICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcDogUHJvcGVydHlLZXksIHJlY2VpdmVyPzogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGhhc093blByb3AodGFyZ2V0LCBwKSA/IFJlZmxlY3QuZ2V0KHRhcmdldCwgcCwgcmVjZWl2ZXIpIDogUmVmbGVjdC5nZXQoZG9jdW1lbnQsIHApO1xuICAgICAgICAgICAgaWYgKHAgPT09ICdhY3RpdmVFbGVtZW50Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LmdldChkb2N1bWVudCwgcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUT0RPOiDlpITnkIbliqjmgIHoioLngrlcbiAgICAgICAgICAgIC8vIGlmIChwID09PSAnY3JlYXRlRWxlbWVudCcpIHtcbiAgICAgICAgICAgIC8vICAgICByZXR1cm4gZnVuY3Rpb24odGFnTmFtZTogc3RyaW5nLCBvcHRpb25zOiBFbGVtZW50Q3JlYXRpb25PcHRpb25zKSB7XG4gICAgICAgICAgICAvLyAgICAgICAgIGNvbnN0IGNyZWF0ZWQgPSB2YWx1ZS5jYWxsKGRvY3VtZW50LCB0YWdOYW1lLCBvcHRpb25zKTtcbiAgICAgICAgICAgIC8vICAgICAgICAgaWYgKGlzT2JqZWN0KGNyZWF0ZWQpKSB7XG4gICAgICAgICAgICAvLyAgICAgICAgICAgICBjcmVhdGVkW1NBTkRCT1hfSU5TVEFOQ0VdID0gc2FuZGJveDtcbiAgICAgICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAgICAgLy8gICAgICAgICByZXR1cm4gY3JlYXRlZDtcbiAgICAgICAgICAgIC8vICAgICB9O1xuICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24odmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlID0gaGFzT3duUHJvcCh2YWx1ZSwgRE9DVU1FTlRfQklORF9GTikgPyB2YWx1ZVtET0NVTUVOVF9CSU5EX0ZOXSA6IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKCFuZXdWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IGJpbmQodmFsdWUsIGRvY3VtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBwKTtcbiAgICAgICAgICAgICAgICBpZiAoZGVzYyAmJiBpc05vbldyaXRlYWJsZVZhbHVlKGRlc2MpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghT2JqZWN0LmlzKG5ld1ZhbHVlLCBkZXNjLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0ludmFsaWRHZXRBY2Nlc3NvcihkZXNjKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YWx1ZVtET0NVTUVOVF9CSU5EX0ZOXSA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVNldHRlcigpIHtcbiAgICAgICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcDogUHJvcGVydHlLZXksIHZhbHVlOiBhbnksIHJlY2VpdmVyOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdoaXRlbGlzdC5pbmNsdWRlcyhwKSA/IGRvY3VtZW50IDogcmVjZWl2ZXIgfHwgdGFyZ2V0LCBwKTtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIGlzTm9uV3JpdGVhYmxlVmFsdWUoZGVzYykpIHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmlzKHZhbHVlLCBkZXNjLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzSW52YWxpZFNldEFjY2Vzc29yKGRlc2MpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHdoaXRlbGlzdC5pbmNsdWRlcyhwKSA/IFJlZmxlY3Quc2V0KGRvY3VtZW50LCBwLCB2YWx1ZSkgOiBSZWZsZWN0LnNldCh0YXJnZXQsIHAsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVEZWZpbmVQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcDogUHJvcGVydHlLZXksIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHdoaXRlbGlzdC5pbmNsdWRlcyhwKVxuICAgICAgICAgICAgICAgID8gUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eShkb2N1bWVudCwgcCwgZGVzY3JpcHRvcilcbiAgICAgICAgICAgICAgICA6IFJlZmxlY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBwLCBkZXNjcmlwdG9yKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjcmVhdGUoKSB7XG4gICAgICAgIGxldCBwcm94eURvY3VtZW50ID0gbnVsbDtcbiAgICAgICAgY29uc3QgZmFrZURvY3VtZW50ID0gY3JlYXRlRmFrZU9iamVjdChkb2N1bWVudCk7XG4gICAgICAgIGNvbnN0IGdldHRlciA9IHRoaXMuY3JlYXRlR2V0dGVyKCk7XG4gICAgICAgIGNvbnN0IGZha2VEb2N1bWVudFByb3RvID0gbmV3IFByb3h5KGZha2VEb2N1bWVudCwge1xuICAgICAgICAgICAgZ2V0OiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXR0ZXIoLi4uYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBmYWtlRG9jdW1lbnRDdG9yID0gZnVuY3Rpb24gRG9jdW1lbnQoKSB7XG4gICAgICAgICAgICBpZiAoISh0aGlzIGluc3RhbmNlb2YgZmFrZURvY3VtZW50Q3RvcikpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBGYWlsZWQgdG8gY29uc3RydWN0ICdEb2N1bWVudCc6IFBsZWFzZSB1c2UgdGhlICduZXcnIG9wZXJhdG9yLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZG9jSW5zdGFuY2UgPSBuZXcgcmF3RG9jdW1lbnQoKTtcbiAgICAgICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihkb2NJbnN0YW5jZSwgZmFrZURvY3VtZW50KTtcbiAgICAgICAgICAgIHJldHVybiBkb2NJbnN0YW5jZTtcbiAgICAgICAgfTtcbiAgICAgICAgZmFrZURvY3VtZW50Q3Rvci5wcm90b3R5cGUgPSBmYWtlRG9jdW1lbnRQcm90bztcbiAgICAgICAgZmFrZURvY3VtZW50Q3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBmYWtlRG9jdW1lbnRDdG9yO1xuICAgICAgICBpZiAoU3ltYm9sLmhhc0luc3RhbmNlKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZmFrZURvY3VtZW50Q3RvciwgU3ltYm9sLmhhc0luc3RhbmNlLCB7XG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3RvID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm90byA9PT0gZG9jdW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlICgocHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3RvID09PSBmYWtlRG9jdW1lbnRQcm90bykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lZCA9IGZ1bmN0aW9uKCkge307XG4gICAgICAgICAgICAgICAgICAgIGNsb25lZC5wcm90b3R5cGUgPSBmYWtlRG9jdW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIGNsb25lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBwcm94eURvY3VtZW50ID0gbmV3IFByb3h5KFxuICAgICAgICAgICAgT2JqZWN0LmNyZWF0ZShmYWtlRG9jdW1lbnRQcm90bywge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRTY3JpcHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbUkFXX05PREVdOiB7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGRvY3VtZW50XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2V0OiB0aGlzLmNyZWF0ZVNldHRlcigpLFxuICAgICAgICAgICAgICAgIGRlZmluZVByb3BlcnR5OiB0aGlzLmNyZWF0ZURlZmluZVByb3BlcnR5KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRvY3VtZW50OiBwcm94eURvY3VtZW50LFxuICAgICAgICAgICAgRG9jdW1lbnQ6IGZha2VEb2N1bWVudEN0b3JcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
|