@worktile/planet 12.1.1 → 12.1.2

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.
Files changed (328) hide show
  1. package/application/planet-application-loader.d.ts +70 -0
  2. package/application/planet-application-loader.d.ts.map +1 -0
  3. package/application/planet-application-loader.ngfactory.d.ts.map +1 -0
  4. package/application/planet-application-ref.d.ts +36 -0
  5. package/application/planet-application-ref.d.ts.map +1 -0
  6. package/application/planet-application.service.d.ts +19 -0
  7. package/application/planet-application.service.d.ts.map +1 -0
  8. package/application/planet-application.service.ngfactory.d.ts.map +1 -0
  9. package/{packages/planet/src/application/portal-application.ts → application/portal-application.d.ts} +5 -18
  10. package/application/portal-application.d.ts.map +1 -0
  11. package/assets-loader.d.ts +33 -0
  12. package/assets-loader.d.ts.map +1 -0
  13. package/assets-loader.ngfactory.d.ts.map +1 -0
  14. package/bundles/worktile-planet.umd.js +2564 -0
  15. package/bundles/worktile-planet.umd.js.map +1 -0
  16. package/component/planet-component-loader.d.ts +28 -0
  17. package/component/planet-component-loader.d.ts.map +1 -0
  18. package/component/planet-component-loader.ngfactory.d.ts.map +1 -0
  19. package/component/planet-component-ref.d.ts +8 -0
  20. package/component/planet-component-ref.d.ts.map +1 -0
  21. package/{packages/planet/src/component/plant-component.config.ts → component/plant-component.config.d.ts} +4 -4
  22. package/component/plant-component.config.d.ts.map +1 -0
  23. package/debug.d.ts +22 -0
  24. package/debug.d.ts.map +1 -0
  25. package/empty/empty.component.d.ts +3 -0
  26. package/empty/empty.component.d.ts.map +1 -0
  27. package/empty/empty.component.ngfactory.d.ts.map +1 -0
  28. package/esm2015/application/planet-application-loader.js +457 -0
  29. package/esm2015/application/planet-application-ref.js +97 -0
  30. package/esm2015/application/planet-application.service.js +87 -0
  31. package/esm2015/application/portal-application.js +16 -0
  32. package/esm2015/assets-loader.js +217 -0
  33. package/esm2015/component/planet-component-loader.js +155 -0
  34. package/esm2015/component/planet-component-ref.js +3 -0
  35. package/esm2015/component/plant-component.config.js +7 -0
  36. package/esm2015/debug.js +33 -0
  37. package/esm2015/empty/empty.component.js +10 -0
  38. package/esm2015/global-event-dispatcher.js +71 -0
  39. package/esm2015/global-planet.js +54 -0
  40. package/esm2015/helpers.js +119 -0
  41. package/esm2015/module.js +27 -0
  42. package/esm2015/planet.class.js +9 -0
  43. package/esm2015/planet.js +91 -0
  44. package/esm2015/public-api.js +18 -0
  45. package/esm2015/sandbox/constants.js +7 -0
  46. package/esm2015/sandbox/exec.js +15 -0
  47. package/esm2015/sandbox/index.js +20 -0
  48. package/esm2015/sandbox/proxy/patches/document.js +12 -0
  49. package/esm2015/sandbox/proxy/patches/eventListener.js +41 -0
  50. package/esm2015/sandbox/proxy/patches/index.js +11 -0
  51. package/esm2015/sandbox/proxy/patches/storage.js +40 -0
  52. package/esm2015/sandbox/proxy/patches/timer.js +43 -0
  53. package/esm2015/sandbox/proxy/proxies/common.js +132 -0
  54. package/esm2015/sandbox/proxy/proxies/document.js +126 -0
  55. package/esm2015/sandbox/proxy/proxies/window.js +155 -0
  56. package/esm2015/sandbox/proxy/proxy-sandbox.js +49 -0
  57. package/esm2015/sandbox/proxy/types.js +2 -0
  58. package/esm2015/sandbox/sandbox.js +7 -0
  59. package/esm2015/sandbox/snapshot/snapshot-sandbox.js +12 -0
  60. package/esm2015/sandbox/types.js +2 -0
  61. package/esm2015/worktile-planet.js +6 -0
  62. package/fesm2015/worktile-planet.js +2048 -0
  63. package/fesm2015/worktile-planet.js.map +1 -0
  64. package/global-event-dispatcher.d.ts +20 -0
  65. package/global-event-dispatcher.d.ts.map +1 -0
  66. package/global-event-dispatcher.ngfactory.d.ts.map +1 -0
  67. package/global-planet.d.ts +23 -0
  68. package/global-planet.d.ts.map +1 -0
  69. package/helpers.d.ts +39 -0
  70. package/helpers.d.ts.map +1 -0
  71. package/module.d.ts +6 -0
  72. package/module.d.ts.map +1 -0
  73. package/module.ngfactory.d.ts.map +1 -0
  74. package/package.json +16 -121
  75. package/{packages/planet/src/planet.class.ts → planet.class.d.ts} +5 -26
  76. package/planet.class.d.ts.map +1 -0
  77. package/planet.d.ts +25 -0
  78. package/planet.d.ts.map +1 -0
  79. package/planet.ngfactory.d.ts.map +1 -0
  80. package/{packages/planet/src/public-api.ts → public-api.d.ts} +1 -4
  81. package/public-api.d.ts.map +1 -0
  82. package/sandbox/constants.d.ts +7 -0
  83. package/sandbox/constants.d.ts.map +1 -0
  84. package/sandbox/exec.d.ts +3 -0
  85. package/sandbox/exec.d.ts.map +1 -0
  86. package/sandbox/index.d.ts +7 -0
  87. package/sandbox/index.d.ts.map +1 -0
  88. package/sandbox/proxy/patches/document.d.ts +3 -0
  89. package/sandbox/proxy/patches/document.d.ts.map +1 -0
  90. package/sandbox/proxy/patches/eventListener.d.ts +3 -0
  91. package/sandbox/proxy/patches/eventListener.d.ts.map +1 -0
  92. package/sandbox/proxy/patches/index.d.ts +3 -0
  93. package/sandbox/proxy/patches/index.d.ts.map +1 -0
  94. package/sandbox/proxy/patches/storage.d.ts +15 -0
  95. package/sandbox/proxy/patches/storage.d.ts.map +1 -0
  96. package/sandbox/proxy/patches/timer.d.ts +3 -0
  97. package/sandbox/proxy/patches/timer.d.ts.map +1 -0
  98. package/sandbox/proxy/proxies/common.d.ts +13 -0
  99. package/sandbox/proxy/proxies/common.d.ts.map +1 -0
  100. package/sandbox/proxy/proxies/document.d.ts +14 -0
  101. package/sandbox/proxy/proxies/document.d.ts.map +1 -0
  102. package/sandbox/proxy/proxies/window.d.ts +13 -0
  103. package/sandbox/proxy/proxies/window.d.ts.map +1 -0
  104. package/sandbox/proxy/proxy-sandbox.d.ts +16 -0
  105. package/sandbox/proxy/proxy-sandbox.d.ts.map +1 -0
  106. package/{packages/planet/src/sandbox/proxy/types.ts → sandbox/proxy/types.d.ts} +2 -8
  107. package/sandbox/proxy/types.d.ts.map +1 -0
  108. package/sandbox/sandbox.d.ts +12 -0
  109. package/sandbox/sandbox.d.ts.map +1 -0
  110. package/sandbox/snapshot/snapshot-sandbox.d.ts +9 -0
  111. package/sandbox/snapshot/snapshot-sandbox.d.ts.map +1 -0
  112. package/sandbox/types.d.ts +2 -0
  113. package/sandbox/types.d.ts.map +1 -0
  114. package/worktile-planet.d.ts +6 -0
  115. package/worktile-planet.d.ts.map +1 -0
  116. package/worktile-planet.metadata.json +1 -0
  117. package/.all-contributorsrc +0 -84
  118. package/.circleci/config.yml +0 -17
  119. package/.coveralls.yml +0 -1
  120. package/.docgeni/public/assets/favicon.ico +0 -0
  121. package/.docgeni/public/index.html +0 -13
  122. package/.docgenirc.js +0 -35
  123. package/.dockerignore +0 -1
  124. package/.editorconfig +0 -22
  125. package/.github/FUNDING.yml +0 -12
  126. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  127. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  128. package/.prettierignore +0 -7
  129. package/.prettierrc +0 -28
  130. package/.travis.yml +0 -26
  131. package/.wpmrc.js +0 -11
  132. package/CHANGELOG.md +0 -391
  133. package/CODE_OF_CONDUCT.md +0 -76
  134. package/Dockerfile +0 -11
  135. package/LICENSE +0 -21
  136. package/README.md +0 -348
  137. package/README.zh-CN.md +0 -307
  138. package/SECURITY.md +0 -21
  139. package/angular.json +0 -373
  140. package/commitlint.config.js +0 -6
  141. package/docs/api/defineApplication.md +0 -46
  142. package/docs/api/globalEventDispatcher.md +0 -51
  143. package/docs/api/index.md +0 -5
  144. package/docs/api/planet.md +0 -117
  145. package/docs/guides/getting-started.md +0 -174
  146. package/docs/guides/index.md +0 -5
  147. package/docs/guides/intro.md +0 -216
  148. package/examples/app1/browserslist +0 -11
  149. package/examples/app1/extra-webpack.config.js +0 -33
  150. package/examples/app1/karma.conf.js +0 -31
  151. package/examples/app1/postcss.config.js +0 -1
  152. package/examples/app1/src/app/app.module.ts +0 -44
  153. package/examples/app1/src/app/app.routing.ts +0 -49
  154. package/examples/app1/src/app/counter.service.ts +0 -16
  155. package/examples/app1/src/app/dashboard/dashboard.component.html +0 -51
  156. package/examples/app1/src/app/dashboard/dashboard.component.ts +0 -70
  157. package/examples/app1/src/app/detail/detail.component.html +0 -8
  158. package/examples/app1/src/app/detail/detail.component.ts +0 -18
  159. package/examples/app1/src/app/overlay.ts +0 -26
  160. package/examples/app1/src/app/projects/dialog/projects-dialog.component.html +0 -10
  161. package/examples/app1/src/app/projects/dialog/projects-dialog.component.ts +0 -41
  162. package/examples/app1/src/app/projects/projects.component.ts +0 -33
  163. package/examples/app1/src/app/root/root.component.css +0 -3
  164. package/examples/app1/src/app/root/root.component.html +0 -16
  165. package/examples/app1/src/app/root/root.component.ts +0 -35
  166. package/examples/app1/src/app/services/initialized-data.resolver.ts +0 -15
  167. package/examples/app1/src/app/shared.module.ts +0 -57
  168. package/examples/app1/src/app/user/detail/user-detail.component.html +0 -5
  169. package/examples/app1/src/app/user/detail/user-detail.component.ts +0 -20
  170. package/examples/app1/src/app/user/user-list.component.html +0 -7
  171. package/examples/app1/src/app/user/user-list.component.ts +0 -20
  172. package/examples/app1/src/app/user/user.module.ts +0 -31
  173. package/examples/app1/src/assets/.gitkeep +0 -0
  174. package/examples/app1/src/assets/github.png +0 -0
  175. package/examples/app1/src/assets/main.css +0 -3
  176. package/examples/app1/src/environments/environment.prod.ts +0 -3
  177. package/examples/app1/src/environments/environment.ts +0 -16
  178. package/examples/app1/src/favicon.ico +0 -0
  179. package/examples/app1/src/index.html +0 -14
  180. package/examples/app1/src/main.ts +0 -35
  181. package/examples/app1/src/polyfills.ts +0 -84
  182. package/examples/app1/src/styles.scss +0 -35
  183. package/examples/app1/src/test.ts +0 -14
  184. package/examples/app1/temp.js +0 -221
  185. package/examples/app1/tsconfig.app.json +0 -10
  186. package/examples/app1/tsconfig.spec.json +0 -18
  187. package/examples/app1/tslint.json +0 -17
  188. package/examples/app1/webpack.config.js +0 -127
  189. package/examples/app2/browserslist +0 -11
  190. package/examples/app2/extra-webpack.config.js +0 -32
  191. package/examples/app2/karma.conf.js +0 -31
  192. package/examples/app2/src/app/app.module.ts +0 -90
  193. package/examples/app2/src/app/dashboard/dashboard.component.html +0 -21
  194. package/examples/app2/src/app/dashboard/dashboard.component.ts +0 -27
  195. package/examples/app2/src/app/overlay.ts +0 -26
  196. package/examples/app2/src/app/projects/detail/detail.component.html +0 -16
  197. package/examples/app2/src/app/projects/detail/detail.component.ts +0 -21
  198. package/examples/app2/src/app/projects/project-list.component.html +0 -29
  199. package/examples/app2/src/app/projects/project-list.component.ts +0 -58
  200. package/examples/app2/src/app/projects/project.resolver.ts +0 -15
  201. package/examples/app2/src/app/projects/projects.service.ts +0 -28
  202. package/examples/app2/src/app/projects/tasks/tasks.component.html +0 -10
  203. package/examples/app2/src/app/projects/tasks/tasks.component.ts +0 -16
  204. package/examples/app2/src/app/projects/view/view.component.html +0 -1
  205. package/examples/app2/src/app/projects/view/view.component.ts +0 -20
  206. package/examples/app2/src/app/root/root.component.html +0 -14
  207. package/examples/app2/src/app/root/root.component.scss +0 -12
  208. package/examples/app2/src/app/root/root.component.ts +0 -28
  209. package/examples/app2/src/app/shared.module.ts +0 -59
  210. package/examples/app2/src/assets/.gitkeep +0 -0
  211. package/examples/app2/src/environments/environment.prod.ts +0 -3
  212. package/examples/app2/src/environments/environment.ts +0 -16
  213. package/examples/app2/src/favicon.ico +0 -0
  214. package/examples/app2/src/index.html +0 -14
  215. package/examples/app2/src/main.ts +0 -36
  216. package/examples/app2/src/polyfills.ts +0 -84
  217. package/examples/app2/src/styles.scss +0 -28
  218. package/examples/app2/src/test.ts +0 -14
  219. package/examples/app2/tsconfig.app.json +0 -10
  220. package/examples/app2/tsconfig.spec.json +0 -18
  221. package/examples/app2/tslint.json +0 -7
  222. package/examples/app2/webpack.config.js +0 -92
  223. package/examples/common/app-root-context.ts +0 -10
  224. package/examples/common/cache.ts +0 -82
  225. package/examples/common/index.ts +0 -13
  226. package/examples/common/module.ts +0 -10
  227. package/examples/common/overlay-container.service.ts +0 -28
  228. package/examples/common/section-card/section-card.component.html +0 -5
  229. package/examples/common/section-card/section-card.component.scss +0 -15
  230. package/examples/common/section-card/section-card.component.ts +0 -11
  231. package/examples/common/utils.ts +0 -0
  232. package/examples/portal/src/app/a-detail/a-detail.component.html +0 -8
  233. package/examples/portal/src/app/a-detail/a-detail.component.ts +0 -18
  234. package/examples/portal/src/app/about/about.component.html +0 -27
  235. package/examples/portal/src/app/about/about.component.scss +0 -0
  236. package/examples/portal/src/app/about/about.component.spec.ts +0 -26
  237. package/examples/portal/src/app/about/about.component.ts +0 -26
  238. package/examples/portal/src/app/app-routing.module.ts +0 -57
  239. package/examples/portal/src/app/app.component.html +0 -73
  240. package/examples/portal/src/app/app.component.scss +0 -58
  241. package/examples/portal/src/app/app.component.spec.ts +0 -33
  242. package/examples/portal/src/app/app.component.ts +0 -111
  243. package/examples/portal/src/app/app.module.ts +0 -64
  244. package/examples/portal/src/app/custom-settings.service.ts +0 -44
  245. package/examples/portal/src/app/overlay.ts +0 -26
  246. package/examples/portal/src/app/settings/settings.component.html +0 -31
  247. package/examples/portal/src/app/settings/settings.component.scss +0 -3
  248. package/examples/portal/src/app/settings/settings.component.ts +0 -43
  249. package/examples/portal/src/assets/.gitkeep +0 -0
  250. package/examples/portal/src/assets/apps.json +0 -29
  251. package/examples/portal/src/assets/icons/sprite.defs.svg +0 -1
  252. package/examples/portal/src/assets/images/logo.svg +0 -16
  253. package/examples/portal/src/assets/ngx-planet-micro-front-end.gif +0 -0
  254. package/examples/portal/src/browserslist +0 -11
  255. package/examples/portal/src/environments/environment.prod.ts +0 -3
  256. package/examples/portal/src/environments/environment.ts +0 -16
  257. package/examples/portal/src/extra-webpack.config.js +0 -32
  258. package/examples/portal/src/favicon.ico +0 -0
  259. package/examples/portal/src/index.html +0 -14
  260. package/examples/portal/src/karma.conf.js +0 -31
  261. package/examples/portal/src/main.ts +0 -18
  262. package/examples/portal/src/polyfills.ts +0 -84
  263. package/examples/portal/src/reboot.scss +0 -14
  264. package/examples/portal/src/styles.scss +0 -14
  265. package/examples/portal/src/test.ts +0 -14
  266. package/examples/portal/src/tsconfig.app.json +0 -10
  267. package/examples/portal/src/tsconfig.spec.json +0 -9
  268. package/examples/portal/src/tslint.json +0 -7
  269. package/extra-webpack.config.js +0 -5
  270. package/nginx.conf +0 -17
  271. package/packages/planet/karma.conf.js +0 -37
  272. package/packages/planet/ng-package.json +0 -7
  273. package/packages/planet/package.json +0 -10
  274. package/packages/planet/src/application/planet-application-loader.spec.ts +0 -1102
  275. package/packages/planet/src/application/planet-application-loader.ts +0 -549
  276. package/packages/planet/src/application/planet-application-ref.spec.ts +0 -233
  277. package/packages/planet/src/application/planet-application-ref.ts +0 -131
  278. package/packages/planet/src/application/planet-application.service.spec.ts +0 -145
  279. package/packages/planet/src/application/planet-application.service.ts +0 -88
  280. package/packages/planet/src/application/portal-application.spec.ts +0 -53
  281. package/packages/planet/src/assets-loader.spec.ts +0 -689
  282. package/packages/planet/src/assets-loader.ts +0 -247
  283. package/packages/planet/src/component/planet-component-loader.spec.ts +0 -187
  284. package/packages/planet/src/component/planet-component-loader.ts +0 -173
  285. package/packages/planet/src/component/planet-component-ref.ts +0 -8
  286. package/packages/planet/src/debug.spec.ts +0 -58
  287. package/packages/planet/src/debug.ts +0 -66
  288. package/packages/planet/src/empty/empty.component.spec.ts +0 -34
  289. package/packages/planet/src/empty/empty.component.ts +0 -7
  290. package/packages/planet/src/global-event-dispatcher.spec.ts +0 -81
  291. package/packages/planet/src/global-event-dispatcher.ts +0 -82
  292. package/packages/planet/src/global-planet.spec.ts +0 -39
  293. package/packages/planet/src/global-planet.ts +0 -73
  294. package/packages/planet/src/helpers.spec.ts +0 -242
  295. package/packages/planet/src/helpers.ts +0 -125
  296. package/packages/planet/src/module.spec.ts +0 -79
  297. package/packages/planet/src/module.ts +0 -25
  298. package/packages/planet/src/planet.spec.ts +0 -226
  299. package/packages/planet/src/planet.ts +0 -113
  300. package/packages/planet/src/sandbox/constants.ts +0 -6
  301. package/packages/planet/src/sandbox/exec.ts +0 -22
  302. package/packages/planet/src/sandbox/index.ts +0 -24
  303. package/packages/planet/src/sandbox/proxy/patches/document.ts +0 -13
  304. package/packages/planet/src/sandbox/proxy/patches/eventListener.ts +0 -49
  305. package/packages/planet/src/sandbox/proxy/patches/index.ts +0 -13
  306. package/packages/planet/src/sandbox/proxy/patches/storage.ts +0 -53
  307. package/packages/planet/src/sandbox/proxy/patches/timer.ts +0 -50
  308. package/packages/planet/src/sandbox/proxy/proxies/common.ts +0 -137
  309. package/packages/planet/src/sandbox/proxy/proxies/document.ts +0 -140
  310. package/packages/planet/src/sandbox/proxy/proxies/window.ts +0 -176
  311. package/packages/planet/src/sandbox/proxy/proxy-sandbox.ts +0 -59
  312. package/packages/planet/src/sandbox/sandbox.ts +0 -20
  313. package/packages/planet/src/sandbox/snapshot/snapshot-sandbox.ts +0 -12
  314. package/packages/planet/src/sandbox/types.ts +0 -1
  315. package/packages/planet/src/test.ts +0 -16
  316. package/packages/planet/src/testing/app1.module.ts +0 -34
  317. package/packages/planet/src/testing/app2.module.ts +0 -24
  318. package/packages/planet/src/testing/applications.ts +0 -58
  319. package/packages/planet/src/testing/index.ts +0 -2
  320. package/packages/planet/src/testing/utils.ts +0 -31
  321. package/packages/planet/tsconfig.lib.json +0 -27
  322. package/packages/planet/tsconfig.lib.prod.json +0 -9
  323. package/packages/planet/tsconfig.spec.json +0 -17
  324. package/packages/planet/tslint.json +0 -7
  325. package/postcss.config.js +0 -3
  326. package/proxy.conf.js +0 -15
  327. package/tsconfig.json +0 -23
  328. package/tslint.json +0 -80
@@ -0,0 +1,91 @@
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
+ var _a;
77
+ (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
78
+ }
79
+ }
80
+ 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" });
81
+ Planet.decorators = [
82
+ { type: Injectable, args: [{
83
+ providedIn: 'root'
84
+ },] }
85
+ ];
86
+ Planet.ctorParameters = () => [
87
+ { type: Injector },
88
+ { type: Router },
89
+ { type: Array, decorators: [{ type: Inject, args: [PLANET_APPLICATIONS,] }, { type: Optional }] }
90
+ ];
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0L3NyYy9wbGFuZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBb0MsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEVBQ0gsdUJBQXVCLEVBRzFCLE1BQU0seUNBQXlDLENBQUM7QUFFakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUNILHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7O0FBSzFDLE1BQU0sT0FBTyxNQUFNO0lBdUJmLFlBQ1ksUUFBa0IsRUFDbEIsTUFBYyxFQUNtQixrQkFBdUM7UUFGeEUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBR3RCLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDL0Isb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNoQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7U0FDdEU7UUFFRCxJQUFJLGtCQUFrQixFQUFFO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFyQ0QsSUFBWSx1QkFBdUI7UUFDL0IsT0FBTyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFZLHdCQUF3QjtRQUNoQyxPQUFPLHFCQUFxQixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDO0lBQ3pELENBQUM7SUFxQkQsVUFBVSxDQUFDLE9BQStCO1FBQ3RDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3RCLGVBQWUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDekM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUksSUFBTztRQUN2Qix3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFTLEdBQThCO1FBQzlDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFlBQVksQ0FBUyxJQUFpQztRQUNsRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxhQUFhLENBQUMsSUFBWTtRQUN0QixJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPO1FBQ0gsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBa0M7YUFDOUQsSUFBSSxDQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNYLE9BQU8sS0FBSyxZQUFZLGFBQWEsQ0FBQztRQUMxQyxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDUixPQUFRLEtBQXVCLENBQUMsaUJBQWlCLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNuRSxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUM1QixvQkFBb0IsRUFBRSxDQUN6QjthQUNBLFNBQVMsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUM7Z0JBQ2pDLEdBQUcsRUFBRSxHQUFHO2FBQ1gsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsSUFBSTs7UUFDQSxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7Ozs7WUEzRkosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUF0QnNDLFFBQVE7WUFDVixNQUFNO3dDQWdEbEMsTUFBTSxTQUFDLG1CQUFtQixjQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9wdGlvbmFsLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyRXZlbnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQbGFuZXRPcHRpb25zLCBQbGFuZXRBcHBsaWNhdGlvbiwgUExBTkVUX0FQUExJQ0FUSU9OUyB9IGZyb20gJy4vcGxhbmV0LmNsYXNzJztcbmltcG9ydCB7IFBsYW5ldEFwcGxpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb24vcGxhbmV0LWFwcGxpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBQbGFuZXRBcHBsaWNhdGlvbkxvYWRlcixcbiAgICBBcHBzTG9hZGluZ1N0YXJ0RXZlbnQsXG4gICAgQXBwU3RhdHVzQ2hhbmdlRXZlbnRcbn0gZnJvbSAnLi9hcHBsaWNhdGlvbi9wbGFuZXQtYXBwbGljYXRpb24tbG9hZGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzdGFydFdpdGgsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICAgIHNldFBvcnRhbEFwcGxpY2F0aW9uRGF0YSxcbiAgICBzZXRBcHBsaWNhdGlvbkxvYWRlcixcbiAgICBzZXRBcHBsaWNhdGlvblNlcnZpY2UsXG4gICAgZ2V0QXBwbGljYXRpb25Mb2FkZXIsXG4gICAgZ2V0QXBwbGljYXRpb25TZXJ2aWNlXG59IGZyb20gJy4vZ2xvYmFsLXBsYW5ldCc7XG5pbXBvcnQgeyBzZXREZWJ1Z0ZhY3RvcnkgfSBmcm9tICcuL2RlYnVnJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQbGFuZXQge1xuICAgIHByaXZhdGUgZ2V0IHBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyKCk6IFBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyIHtcbiAgICAgICAgcmV0dXJuIGdldEFwcGxpY2F0aW9uTG9hZGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgcGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlKCkge1xuICAgICAgICByZXR1cm4gZ2V0QXBwbGljYXRpb25TZXJ2aWNlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2FkaW5nRG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhbmV0QXBwbGljYXRpb25Mb2FkZXIubG9hZGluZ0RvbmU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhcHBTdGF0dXNDaGFuZ2UoKTogT2JzZXJ2YWJsZTxBcHBTdGF0dXNDaGFuZ2VFdmVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFuZXRBcHBsaWNhdGlvbkxvYWRlci5hcHBTdGF0dXNDaGFuZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhcHBzTG9hZGluZ1N0YXJ0KCk6IE9ic2VydmFibGU8QXBwc0xvYWRpbmdTdGFydEV2ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyLmFwcHNMb2FkaW5nU3RhcnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIEBJbmplY3QoUExBTkVUX0FQUExJQ0FUSU9OUykgQE9wdGlvbmFsKCkgcGxhbmV0QXBwbGljYXRpb25zOiBQbGFuZXRBcHBsaWNhdGlvbltdXG4gICAgKSB7XG4gICAgICAgIGlmICghdGhpcy5wbGFuZXRBcHBsaWNhdGlvbkxvYWRlcikge1xuICAgICAgICAgICAgc2V0QXBwbGljYXRpb25Mb2FkZXIodGhpcy5pbmplY3Rvci5nZXQoUGxhbmV0QXBwbGljYXRpb25Mb2FkZXIpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgICAgICBzZXRBcHBsaWNhdGlvblNlcnZpY2UodGhpcy5pbmplY3Rvci5nZXQoUGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGxhbmV0QXBwbGljYXRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyQXBwcyhwbGFuZXRBcHBsaWNhdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0T3B0aW9ucyhvcHRpb25zOiBQYXJ0aWFsPFBsYW5ldE9wdGlvbnM+KSB7XG4gICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25Mb2FkZXIuc2V0T3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuZGVidWdGYWN0b3J5KSB7XG4gICAgICAgICAgICBzZXREZWJ1Z0ZhY3Rvcnkob3B0aW9ucy5kZWJ1Z0ZhY3RvcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0UG9ydGFsQXBwRGF0YTxUPihkYXRhOiBUKSB7XG4gICAgICAgIHNldFBvcnRhbEFwcGxpY2F0aW9uRGF0YShkYXRhKTtcbiAgICB9XG5cbiAgICByZWdpc3RlckFwcDxURXh0cmE+KGFwcDogUGxhbmV0QXBwbGljYXRpb248VEV4dHJhPikge1xuICAgICAgICB0aGlzLnBsYW5ldEFwcGxpY2F0aW9uU2VydmljZS5yZWdpc3RlcihhcHApO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyQXBwczxURXh0cmE+KGFwcHM6IFBsYW5ldEFwcGxpY2F0aW9uPFRFeHRyYT5bXSkge1xuICAgICAgICB0aGlzLnBsYW5ldEFwcGxpY2F0aW9uU2VydmljZS5yZWdpc3RlcihhcHBzKTtcbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVyQXBwKG5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnBsYW5ldEFwcGxpY2F0aW9uU2VydmljZS51bnJlZ2lzdGVyKG5hbWUpO1xuICAgIH1cblxuICAgIGdldEFwcHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYW5ldEFwcGxpY2F0aW9uU2VydmljZS5nZXRBcHBzKCk7XG4gICAgfVxuXG4gICAgc3RhcnQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gKHRoaXMucm91dGVyLmV2ZW50cyBhcyBPYnNlcnZhYmxlPFJvdXRlckV2ZW50PilcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQ7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChldmVudCBhcyBOYXZpZ2F0aW9uRW5kKS51cmxBZnRlclJlZGlyZWN0cyB8fCBldmVudC51cmw7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKGxvY2F0aW9uLnBhdGhuYW1lKSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh1cmw6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25Mb2FkZXIucmVyb3V0ZSh7XG4gICAgICAgICAgICAgICAgICAgIHVybDogdXJsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdG9wKCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0=
@@ -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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TyxVQUFpQixDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgUkFXX05PREUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5jb25zdCByYXdIYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5leHBvcnQgZnVuY3Rpb24gaGFzT3duUHJvcChvYmo6IGFueSwga2V5OiBQcm9wZXJ0eUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByYXdIYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsdWVEZXNjcmlwdG9yKGRlc2M/OiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcbiAgICBpZiAoZGVzYyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICd2YWx1ZScgaW4gZGVzYyB8fCAnd3JpdGFibGUnIGluIGRlc2M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FjY2Vzc29yRGVzY3JpcHRvcihkZXNjPzogUHJvcGVydHlEZXNjcmlwdG9yKSB7XG4gICAgaWYgKGRlc2MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAnZ2V0JyBpbiBkZXNjIHx8ICdzZXQnIGluIGRlc2M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05vbldyaXRlYWJsZVZhbHVlKGRlc2M/OiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcbiAgICByZXR1cm4gZGVzYyAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgJ3ZhbHVlJyBpbiBkZXNjICYmIGRlc2Mud3JpdGFibGUgPT09IGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJbnZhbGlkU2V0QWNjZXNzb3IoZGVzYz86IFByb3BlcnR5RGVzY3JpcHRvcikge1xuICAgIGlmIChkZXNjICYmIGRlc2MuY29uZmlndXJhYmxlID09PSBmYWxzZSAmJiAnc2V0JyBpbiBkZXNjICYmIGRlc2Muc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW52YWxpZEdldEFjY2Vzc29yKGRlc2M/OiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcbiAgICBpZiAoZGVzYyAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgJ2dldCcgaW4gZGVzYyAmJiBkZXNjLmdldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZmVyUGFyYW1zKGFyZ3M6IElBcmd1bWVudHMgfCBBcnJheTxhbnk+KSB7XG4gICAgYXJncyA9IEFycmF5LmlzQXJyYXkoYXJncykgPyBhcmdzIDogQXJyYXkuZnJvbShhcmdzKTtcbiAgICByZXR1cm4gYXJncy5tYXAoYXJnID0+IHtcbiAgICAgICAgcmV0dXJuIGFyZ1tSQVdfTk9ERV0gPyBhcmdbUkFXX05PREVdIDogYXJnO1xuICAgIH0pO1xufVxuXG5jb25zdCBidWlsZEluUHJvcHM6IFByb3BlcnR5S2V5W10gPSBbJ2xlbmd0aCcsICdjYWxsZXInLCAnY2FsbGVlJywgJ2FyZ3VtZW50cycsICdwcm90b3R5cGUnLCBTeW1ib2wuaGFzSW5zdGFuY2VdO1xuZnVuY3Rpb24gdHJhbnNmZXJQcm9wcyhvOiBGdW5jdGlvbiwgbjogRnVuY3Rpb24pIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBSZWZsZWN0Lm93bktleXMobykpIHtcbiAgICAgICAgaWYgKGJ1aWxkSW5Qcm9wcy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLCBrZXkpO1xuICAgICAgICBpZiAoZGVzYyAmJiBkZXNjLndyaXRhYmxlKSB7XG4gICAgICAgICAgICBuW2tleV0gPSBvW2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiaW5kKGZuOiBhbnksIGNvbnRleHQ6IGFueSkge1xuICAgIGNvbnN0IGZOT1AgPSBmdW5jdGlvbigpIHt9O1xuICAgIGZ1bmN0aW9uIGJvdW5kKCkge1xuICAgICAgICBjb25zdCBhcmdzID0gdHJhbnNmZXJQYXJhbXMoYXJndW1lbnRzKTtcbiAgICAgICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBib3VuZCkge1xuICAgICAgICAgICAgY29uc3Qgb2JqID0gbmV3IGZuKC4uLmFyZ3MpO1xuICAgICAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKG9iaiwgYm91bmQucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYm91bmQuJG5hdGl2ZSA9IGZuO1xuICAgIHRyYW5zZmVyUHJvcHMoZm4sIGJvdW5kKTtcbiAgICBpZiAoZm4ucHJvdG90eXBlKSB7XG4gICAgICAgIGZOT1AucHJvdG90eXBlID0gZm4ucHJvdG90eXBlO1xuICAgIH1cbiAgICBib3VuZC5wcm90b3R5cGUgPSBuZXcgZk5PUCgpO1xuICAgIGlmIChTeW1ib2wuaGFzSW5zdGFuY2UpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGJvdW5kLCBTeW1ib2wuaGFzSW5zdGFuY2UsIHtcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHZhbHVlKGluc3RhbmNlOiBhbnkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvcCA9IGZuLnByb3RvdHlwZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNPYmplY3Qob3ApIHx8IHR5cGVvZiBvcCA9PT0gJ2Z1bmN0aW9uJyA/IGluc3RhbmNlIGluc3RhbmNlb2YgZm4gOiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBib3VuZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZha2VPYmplY3QodGFyZ2V0OiBSZWNvcmQ8UHJvcGVydHlLZXksIGFueT4sIHdyaXRhYmxlS2V5cz86IFByb3BlcnR5S2V5W10pIHtcbiAgICBjb25zdCBmYWtlT2JqZWN0ID0ge307XG4gICAgY29uc3QgcHJvcGVydHlNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IGJvb2xlYW4+ID0ge307XG4gICAgY29uc3Qgc3RvcmFnZUJveCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgY29uc3QgcHJvcGVydHlOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCk7XG4gICAgY29uc3QgZGVmID0gKHA6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIHApO1xuICAgICAgICBpZiAoZGVzY3JpcHRvcj8uY29uZmlndXJhYmxlKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNHZXR0ZXIgPSBoYXNPd25Qcm9wKGRlc2NyaXB0b3IsICdnZXQnKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc1NldHRlciA9IGhhc093blByb3AoZGVzY3JpcHRvciwgJ3NldCcpO1xuICAgICAgICAgICAgY29uc3QgY2FuV3JpdGFibGUgPSB3cml0YWJsZUtleXMgJiYgd3JpdGFibGVLZXlzLmxlbmd0aCA+IDAgJiYgd3JpdGFibGVLZXlzLmluY2x1ZGVzKHApO1xuICAgICAgICAgICAgaWYgKGhhc0dldHRlcikge1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IuZ2V0ID0gKCkgPT4gKGhhc093blByb3Aoc3RvcmFnZUJveCwgcCkgPyBzdG9yYWdlQm94W3BdIDogdGFyZ2V0W3BdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNTZXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLnNldCA9IHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VCb3hbcF0gPSB2YWw7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2FuV3JpdGFibGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci53cml0YWJsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChoYXNHZXR0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci5zZXQgPSB2YWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZUJveFtwXSA9IHZhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmYWtlT2JqZWN0LCBwLCBPYmplY3QuZnJlZXplKGRlc2NyaXB0b3IpKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcHJvcGVydHlOYW1lcy5mb3JFYWNoKHAgPT4ge1xuICAgICAgICBwcm9wZXJ0eU1hcFtwXSA9IHRydWU7XG4gICAgICAgIGRlZihwKTtcbiAgICB9KTtcbiAgICAvLyDlho3mrKHlvqrnjq/mmK/kuLrkuoblpITnkIbljp/lnovpk77kuK3nmoTlsZ7mgKdcbiAgICBmb3IgKGNvbnN0IHByb3AgaW4gdGFyZ2V0KSB7XG4gICAgICAgIGlmICghcHJvcGVydHlNYXBbcHJvcF0pIHtcbiAgICAgICAgICAgIGRlZihwcm9wKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFrZU9iamVjdCBhcyBhbnk7XG59XG4iXX0=