@casual-simulation/aux-vm 3.5.3 → 3.6.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.
@@ -37,12 +37,18 @@ export declare const DEFAULT_SCRIPT_PREFIXES: ScriptPrefix[];
37
37
  */
38
38
  export declare class PortalManager implements SubscriptionLike {
39
39
  private _prefixes;
40
+ private _portals;
41
+ private _portalLoaded;
40
42
  private _prefixesDiscovered;
41
43
  private _prefixesRemoved;
42
44
  private _globalBotsDiscovered;
43
45
  private _globalBots;
44
46
  private _vm;
45
47
  private _sub;
48
+ /**
49
+ * Gets an observable that resolves whenever a portal has been loaded.
50
+ */
51
+ get portalLoaded(): Observable<string>;
46
52
  /**
47
53
  * Gets an observable that resolves when a script prefix has been discovered.
48
54
  */
@@ -66,6 +72,11 @@ export declare class PortalManager implements SubscriptionLike {
66
72
  */
67
73
  get portalBots(): Map<string, DefineGlobalBotAction>;
68
74
  constructor(vm: AuxVM);
75
+ /**
76
+ * Notifies that the given portal has been loaded.
77
+ * @param portal The name of the portal that has been loaded.
78
+ */
79
+ notifyPortalLoaded(portal: string): void;
69
80
  getScriptPrefix(value: string): string;
70
81
  private _onLocalEvents;
71
82
  unsubscribe(): void;
@@ -25,6 +25,12 @@ export const DEFAULT_SCRIPT_PREFIXES = [
25
25
  * Defines a class that is able to manage portals and their interactions.
26
26
  */
27
27
  export class PortalManager {
28
+ /**
29
+ * Gets an observable that resolves whenever a portal has been loaded.
30
+ */
31
+ get portalLoaded() {
32
+ return this._portalLoaded.pipe(startWith(...this._portals));
33
+ }
28
34
  /**
29
35
  * Gets an observable that resolves when a script prefix has been discovered.
30
36
  */
@@ -66,18 +72,30 @@ export class PortalManager {
66
72
  return this._globalBots;
67
73
  }
68
74
  constructor(vm) {
75
+ this._portals = [];
69
76
  this._globalBots = new Map();
70
77
  this._vm = vm;
71
78
  this._prefixes = new Map();
72
79
  this._prefixesDiscovered = new Subject();
73
80
  this._prefixesRemoved = new Subject();
74
81
  this._globalBotsDiscovered = new Subject();
82
+ this._portalLoaded = new Subject();
75
83
  this._sub = new Subscription();
76
84
  for (let p of DEFAULT_SCRIPT_PREFIXES) {
77
85
  this._prefixes.set(p.prefix, p);
78
86
  }
79
87
  this._sub.add(vm.localEvents.pipe(tap((e) => this._onLocalEvents(e))).subscribe());
80
88
  }
89
+ /**
90
+ * Notifies that the given portal has been loaded.
91
+ * @param portal The name of the portal that has been loaded.
92
+ */
93
+ notifyPortalLoaded(portal) {
94
+ if (!this._portals.includes(portal)) {
95
+ this._portals.push(portal);
96
+ this._portalLoaded.next(portal);
97
+ }
98
+ }
81
99
  getScriptPrefix(value) {
82
100
  var _a;
83
101
  return ((_a = getScriptPrefix(KNOWN_TAG_PREFIXES, value)) !== null && _a !== void 0 ? _a : getScriptPrefix(this.scriptPrefixes.map((p) => p.prefix), value));
@@ -1 +1 @@
1
- {"version":3,"file":"PortalManager.js","sourceRoot":"","sources":["PortalManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PortalManager.js","sourceRoot":"","sources":["PortalManager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ProgressMessage } from '@casual-simulation/aux-common';
1
+ import { type ProgressMessage } from '@casual-simulation/aux-common';
2
2
  import type { AuxVM } from '../vm/AuxVM';
3
3
  import type { SubscriptionLike, Observable } from 'rxjs';
4
4
  /**
@@ -7,9 +7,10 @@ import type { SubscriptionLike, Observable } from 'rxjs';
7
7
  export declare class ProgressManager implements SubscriptionLike {
8
8
  private _progress;
9
9
  private _vm;
10
+ private _onPortalLoaded;
10
11
  private _sub;
11
12
  get updates(): Observable<ProgressMessage>;
12
- constructor(vm: AuxVM);
13
+ constructor(vm: AuxVM, onPortalLoaded: Observable<string>);
13
14
  unsubscribe(): void;
14
15
  get closed(): boolean;
15
16
  }
@@ -1,5 +1,6 @@
1
- import { BehaviorSubject } from 'rxjs';
2
- import { tap, takeWhile } from 'rxjs/operators';
1
+ import { asyncResult, hasValue, LOAD_PORTALS, } from '@casual-simulation/aux-common';
2
+ import { BehaviorSubject, merge } from 'rxjs';
3
+ import { tap, takeWhile, map, filter, first, mergeMap, skipWhile, take, } from 'rxjs/operators';
3
4
  /**
4
5
  * Defines a class that can manage the current loading progress state of a simulation.
5
6
  */
@@ -7,50 +8,66 @@ export class ProgressManager {
7
8
  get updates() {
8
9
  return this._progress;
9
10
  }
10
- constructor(vm) {
11
+ constructor(vm, onPortalLoaded) {
11
12
  this._vm = vm;
13
+ this._onPortalLoaded = onPortalLoaded;
12
14
  this._progress = new BehaviorSubject({
13
15
  type: 'progress',
14
16
  progress: 0,
15
17
  message: 'Starting...',
16
18
  });
17
- this._sub = this._vm.connectionStateChanged
18
- .pipe(takeWhile((m) => m.type !== 'init'), tap((message) => {
19
- if (message.type === 'progress') {
20
- this._progress.next(message);
19
+ // loading is only done when a portal is opened
20
+ const vmProgress = this._vm.connectionStateChanged.pipe(takeWhile((m) => m.type !== 'init'), filter((m) => m.type === 'progress' ||
21
+ m.type === 'authorization' ||
22
+ m.type === 'authentication'), map((m) => {
23
+ if (m.type === 'progress') {
24
+ return {
25
+ ...m,
26
+ done: false,
27
+ };
21
28
  }
22
- else if (message.type === 'authorization') {
23
- if (message.authorized === false) {
24
- this._progress.next({
29
+ else if (m.type === 'authorization') {
30
+ if (!m.authorized) {
31
+ return {
25
32
  type: 'progress',
26
33
  progress: 1,
27
34
  message: 'You are not authorized.',
28
35
  error: true,
29
- });
36
+ };
30
37
  }
31
38
  }
32
- else if (message.type === 'authentication') {
33
- if (message.authenticated === false) {
34
- this._progress.next({
39
+ else if (m.type === 'authentication') {
40
+ if (!m.authenticated) {
41
+ return {
35
42
  type: 'progress',
36
43
  progress: 1,
37
44
  message: 'You are not authenticated.',
38
45
  done: true,
39
- });
46
+ };
40
47
  }
41
48
  }
42
- }))
43
- .subscribe({
49
+ return null;
50
+ }), filter((m) => !!m), tap({
44
51
  error: (err) => console.error(err),
45
- complete: () => {
46
- this._progress.next({
47
- type: 'progress',
48
- message: 'Done.',
49
- progress: 1,
50
- done: true,
51
- });
52
- },
53
- });
52
+ }));
53
+ const portalProgress = this._onPortalLoaded.pipe(first((b) => LOAD_PORTALS.includes(b)), map(() => ({
54
+ type: 'progress',
55
+ message: 'Done.',
56
+ progress: 1,
57
+ done: true,
58
+ })));
59
+ const hideProgress = this._vm.localEvents.pipe(mergeMap((e) => e), skipWhile((e) => e.type !== 'hide_loading_screen'), take(1), tap((e) => {
60
+ if (hasValue(e.taskId)) {
61
+ this._vm.sendEvents([asyncResult(e.taskId, null)]);
62
+ }
63
+ }), map(() => ({
64
+ type: 'progress',
65
+ message: 'Done.',
66
+ progress: 1,
67
+ done: true,
68
+ })));
69
+ const allProgress = merge(vmProgress, portalProgress, hideProgress).pipe(takeWhile((m) => !m.done && !m.error, true));
70
+ this._sub = allProgress.subscribe(this._progress);
54
71
  }
55
72
  unsubscribe() {
56
73
  this._sub.unsubscribe();
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressManager.js","sourceRoot":"","sources":["ProgressManager.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;GAEG;AACH,MAAM,OAAO,eAAe;IAKxB,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,YAAY,EAAS;QACjB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QAEd,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAkB;YAClD,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,aAAa;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB;aACtC,IAAI,CACD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EACnC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACZ,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC1C,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;oBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;wBAChB,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,CAAC;wBACX,OAAO,EAAE,yBAAyB;wBAClC,KAAK,EAAE,IAAI;qBACd,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC3C,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;oBAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;wBAChB,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,CAAC;wBACX,OAAO,EAAE,4BAA4B;wBACrC,IAAI,EAAE,IAAI;qBACb,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CACL;aACA,SAAS,CAAC;YACP,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YAClC,QAAQ,EAAE,GAAG,EAAE;gBACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,OAAO;oBAChB,QAAQ,EAAE,CAAC;oBACX,IAAI,EAAE,IAAI;iBACb,CAAC,CAAC;YACP,CAAC;SACJ,CAAC,CAAC;IACX,CAAC;IAED,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;CACJ"}
1
+ {"version":3,"file":"ProgressManager.js","sourceRoot":"","sources":["ProgressManager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casual-simulation/aux-vm",
3
- "version": "3.5.3",
3
+ "version": "3.6.0",
4
4
  "description": "A set of abstractions required to securely run an AUX.",
5
5
  "keywords": [
6
6
  "aux"
@@ -39,9 +39,9 @@
39
39
  "url": "https://github.com/casual-simulation/casualos/issues"
40
40
  },
41
41
  "dependencies": {
42
- "@casual-simulation/aux-common": "^3.5.3",
43
- "@casual-simulation/aux-records": "^3.5.3",
44
- "@casual-simulation/aux-runtime": "^3.5.3",
42
+ "@casual-simulation/aux-common": "^3.6.0",
43
+ "@casual-simulation/aux-records": "^3.6.0",
44
+ "@casual-simulation/aux-runtime": "^3.6.0",
45
45
  "@casual-simulation/crypto": "^3.5.0",
46
46
  "@casual-simulation/fast-json-stable-stringify": "^3.5.0",
47
47
  "@casual-simulation/timesync": "^3.5.0",
@@ -56,5 +56,5 @@
56
56
  "rxjs": "8.0.0-alpha.14",
57
57
  "uuid": "10.0.0"
58
58
  },
59
- "gitHead": "eedee336f85664e1a8cd182cc77273d5a7cc6b32"
59
+ "gitHead": "11d0f0e7b39bb282dc8f483e3ed809dc5a1d9495"
60
60
  }