@casual-simulation/aux-vm 3.0.19-alpha.2835232321 → 3.0.20-alpha.2929508836

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casual-simulation/aux-vm",
3
- "version": "3.0.19-alpha.2835232321",
3
+ "version": "3.0.20-alpha.2929508836",
4
4
  "description": "A set of abstractions required to securely run an AUX.",
5
5
  "keywords": [
6
6
  "aux"
@@ -39,13 +39,13 @@
39
39
  "url": "https://github.com/casual-simulation/casualos/issues"
40
40
  },
41
41
  "dependencies": {
42
- "@casual-simulation/aux-common": "^3.0.19-alpha.2835232321",
43
- "@casual-simulation/aux-records": "^3.0.19-alpha.2835232321",
42
+ "@casual-simulation/aux-common": "^3.0.20-alpha.2929508836",
43
+ "@casual-simulation/aux-records": "^3.0.18",
44
44
  "@casual-simulation/causal-trees": "^3.0.14",
45
45
  "@casual-simulation/crypto": "^3.0.14",
46
46
  "@casual-simulation/fast-json-stable-stringify": "^3.0.0",
47
47
  "@casual-simulation/timesync": "^3.0.14",
48
- "@casual-simulation/undom": "^3.0.19-alpha.2835232321",
48
+ "@casual-simulation/undom": "^3.0.20-alpha.2929508836",
49
49
  "esbuild": "^0.13.8",
50
50
  "esbuild-wasm": "^0.8.43",
51
51
  "lodash": "4.17.21",
@@ -53,5 +53,5 @@
53
53
  "rxjs": "^6.5.2",
54
54
  "uuid": "^8.3.2"
55
55
  },
56
- "gitHead": "0af815f85ef1509380deb2b9b284cb313085cafd"
56
+ "gitHead": "94f03478aba4a50130483c58f4697a7617a686ba"
57
57
  }
@@ -1,4 +1,5 @@
1
1
  import { BotAction } from '@casual-simulation/aux-common';
2
+ import { Observable } from 'rxjs';
2
3
  /**
3
4
  * Defines an interface that manages the interaction between a app's runtime and how it is displayed on screen.
4
5
  */
@@ -11,6 +12,10 @@ export interface AppBackend {
11
12
  * The ID of the bot that manages this app.
12
13
  */
13
14
  botId: string;
15
+ /**
16
+ * The observable that resolves once the backend is setup.
17
+ */
18
+ onSetup: Observable<void>;
14
19
  /**
15
20
  * Handles the given events.
16
21
  */
@@ -9,5 +9,6 @@ export declare class CustomAppHelper {
9
9
  portals: Map<string, AppBackend>;
10
10
  constructor(helper: AuxHelper);
11
11
  handleEvents(events: BotAction[]): void;
12
+ dispose(): void;
12
13
  }
13
14
  //# sourceMappingURL=CustomAppHelper.d.ts.map
@@ -1,5 +1,6 @@
1
- import { asyncError, asyncResult, hasValue, } from '@casual-simulation/aux-common';
1
+ import { asyncError, asyncResult, hasValue, ON_DOCUMENT_AVAILABLE_ACTION_NAME, action, } from '@casual-simulation/aux-common';
2
2
  import { HtmlAppBackend } from './HtmlAppBackend';
3
+ const ROOT_APP_ID = '_root';
3
4
  /**
4
5
  * Defines a class that manages the backend of custom portals.
5
6
  */
@@ -10,7 +11,6 @@ export class CustomAppHelper {
10
11
  this.helper = helper;
11
12
  }
12
13
  handleEvents(events) {
13
- // TODO: process register_custom_app events and create the corresponding backend objects.
14
14
  for (let event of events) {
15
15
  if (event.type === 'register_custom_app') {
16
16
  let appId = event.appId;
@@ -42,10 +42,36 @@ export class CustomAppHelper {
42
42
  }
43
43
  }
44
44
  }
45
+ else if (event.type === 'custom_app_container_available') {
46
+ if (!this.portals.has(ROOT_APP_ID)) {
47
+ const appId = ROOT_APP_ID;
48
+ const botId = this.helper.userId;
49
+ const backend = new HtmlAppBackend(appId, botId, this.helper);
50
+ this.portals.set(appId, backend);
51
+ backend.onSetup.subscribe(() => {
52
+ globalThis.document = backend.document;
53
+ this.helper.transaction(action(ON_DOCUMENT_AVAILABLE_ACTION_NAME, null, this.helper.userId));
54
+ });
55
+ }
56
+ }
45
57
  }
46
58
  for (let portal of this.portals.values()) {
47
59
  portal.handleEvents(events);
48
60
  }
49
61
  }
62
+ dispose() {
63
+ if (this.portals) {
64
+ const rootBackend = this.portals.get(ROOT_APP_ID);
65
+ if (rootBackend &&
66
+ rootBackend instanceof HtmlAppBackend &&
67
+ globalThis.document === rootBackend.document) {
68
+ delete globalThis.document;
69
+ }
70
+ for (let [id, backend] of this.portals) {
71
+ backend.dispose();
72
+ }
73
+ this.portals = null;
74
+ }
75
+ }
50
76
  }
51
77
  //# sourceMappingURL=CustomAppHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomAppHelper.js","sourceRoot":"","sources":["CustomAppHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,WAAW,EAGX,QAAQ,GACX,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;GAEG;AACH,MAAM,OAAO,eAAe;IAMxB,YAAY,MAAiB;QAH7B,+GAA+G;QAC/G,YAAO,GAA4B,IAAI,GAAG,EAAE,CAAC;QAGzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,MAAmB;QAC5B,yFAAyF;QACzF,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACtB,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE;gBACtC,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAExB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBAC1B,MAAM,OAAO,GAAe,IAAI,cAAc,CAC1C,KAAK,EACL,KAAK,CAAC,KAAK,EACX,IAAI,CAAC,MAAM,EACX,KAAK,CAAC,MAAM,CACf,CAAC;oBAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;iBACpC;qBAAM;oBACH,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;wBACxB,IAAI,CAAC,MAAM,CAAC,WAAW,CACnB,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAClC,CAAC;qBACL;iBACJ;aACJ;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE;gBAC/C,IAAI;oBACA,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,QAAQ,EAAE;wBACV,QAAQ,CAAC,OAAO,EAAE,CAAC;qBACtB;oBAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAE3B,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;wBACxB,IAAI,CAAC,MAAM,CAAC,WAAW,CACnB,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAClC,CAAC;qBACL;iBACJ;gBAAC,OAAO,CAAC,EAAE;oBACR,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;wBACxB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;qBACxD;iBACJ;aACJ;SACJ;QAED,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;YACtC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;SAC/B;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"CustomAppHelper.js","sourceRoot":"","sources":["CustomAppHelper.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ export declare class HtmlAppBackend implements AppBackend {
26
26
  private _mutationObserver;
27
27
  private _nodes;
28
28
  private _initialContent;
29
+ private _setupObservable;
29
30
  /**
30
31
  * the list of properties that should be disallowed.
31
32
  * Taken from https://github.com/developit/preact-worker-demo/blob/master/src/renderer/worker.js
@@ -38,6 +39,8 @@ export declare class HtmlAppBackend implements AppBackend {
38
39
  */
39
40
  private _propReferenceList;
40
41
  private _idCounter;
42
+ get onSetup(): import("rxjs").Observable<void>;
43
+ get document(): Document;
41
44
  constructor(appId: string, botId: string, helper: AuxHelper, registerTaskId?: string | number, instanceId?: string);
42
45
  handleEvents(events: BotAction[]): void;
43
46
  dispose(): void;
@@ -1,7 +1,9 @@
1
1
  import { action, asyncResult, hasValue, ON_APP_SETUP_ACTION_NAME, registerHtmlApp, updateHtmlApp, unregisterHtmlApp, } from '@casual-simulation/aux-common';
2
2
  import { v4 as uuid } from 'uuid';
3
- import undom, { supressMutations } from '@casual-simulation/undom';
3
+ import undom, { RootNode, supressMutations } from '@casual-simulation/undom';
4
4
  import { render } from 'preact';
5
+ import { BehaviorSubject } from 'rxjs';
6
+ import { first, map } from 'rxjs/operators';
5
7
  export const TARGET_INPUT_PROPERTIES = ['value', 'checked'];
6
8
  /**
7
9
  * Properties that should automatically be copied for specific tag types.
@@ -10,6 +12,7 @@ export const TARGET_INPUT_PROPERTIES = ['value', 'checked'];
10
12
  export const ELEMENT_SPECIFIC_PROPERTIES = {
11
13
  IMG: ['width', 'height', 'naturalWidth', 'naturalHeight', 'currentSrc'],
12
14
  VIDEO: ['videoWidth', 'videoHeight', 'duration', 'currentSrc'],
15
+ SECTION: ['scrollTop', 'offsetHeight'],
13
16
  };
14
17
  /**
15
18
  * Defines a class that is used to communicate HTML changes for a custom html portal.
@@ -46,10 +49,17 @@ export class HtmlAppBackend {
46
49
  this.botId = botId;
47
50
  this._registerTaskId = registerTaskId;
48
51
  this._helper = helper;
52
+ this._setupObservable = new BehaviorSubject(false);
49
53
  this._initTaskId = uuid();
50
54
  this._instanceId = instanceId !== null && instanceId !== void 0 ? instanceId : uuid();
51
55
  this._helper.transaction(registerHtmlApp(this.appId, this._instanceId, this._initTaskId));
52
56
  }
57
+ get onSetup() {
58
+ return this._setupObservable.pipe(first((setup) => !!setup), map(() => { }));
59
+ }
60
+ get document() {
61
+ return this._document;
62
+ }
53
63
  handleEvents(events) {
54
64
  for (let event of events) {
55
65
  if (event.type === 'async_result') {
@@ -135,26 +145,31 @@ export class HtmlAppBackend {
135
145
  return null;
136
146
  }
137
147
  if (node.nodeName === 'BODY') {
138
- return document.body;
148
+ return this._document.body;
139
149
  }
140
150
  return this._nodes.get(id);
141
151
  }
142
152
  _setupApp(result) {
143
- let doc = (this._document = undom({
144
- builtinEvents: result === null || result === void 0 ? void 0 : result.builtinEvents,
145
- }));
146
- this._mutationObserver = new doc.defaultView.MutationObserver(this._processMutations.bind(this));
147
- this._mutationObserver.observe(doc, {
148
- subtree: true,
149
- });
150
- this._helper.transaction(action(ON_APP_SETUP_ACTION_NAME, [this.botId], undefined, {
151
- document: this._document,
152
- }));
153
- if (this._initialContent) {
154
- this._renderContent(this._initialContent);
155
- }
156
- if (hasValue(this._registerTaskId)) {
157
- this._helper.transaction(asyncResult(this._registerTaskId, null));
153
+ try {
154
+ let doc = (this._document = undom({
155
+ builtinEvents: result === null || result === void 0 ? void 0 : result.builtinEvents,
156
+ }));
157
+ this._mutationObserver = new doc.defaultView.MutationObserver(this._processMutations.bind(this));
158
+ this._mutationObserver.observe(doc, {
159
+ subtree: true,
160
+ });
161
+ this._helper.transaction(action(ON_APP_SETUP_ACTION_NAME, [this.botId], undefined, {
162
+ document: this._document,
163
+ }));
164
+ if (this._initialContent) {
165
+ this._renderContent(this._initialContent);
166
+ }
167
+ if (hasValue(this._registerTaskId)) {
168
+ this._helper.transaction(asyncResult(this._registerTaskId, null));
169
+ }
170
+ }
171
+ finally {
172
+ this._setupObservable.next(true);
158
173
  }
159
174
  }
160
175
  _processMutations(mutations) {
@@ -173,7 +188,7 @@ export class HtmlAppBackend {
173
188
  if (Array.isArray(obj)) {
174
189
  return obj.map(this._makeReference, this);
175
190
  }
176
- if (obj instanceof this._document.defaultView.Node) {
191
+ if (obj instanceof RootNode) {
177
192
  let id = obj.__id;
178
193
  if (!id) {
179
194
  id = obj.__id = (this._idCounter++).toString();
@@ -1 +1 @@
1
- {"version":3,"file":"HtmlAppBackend.js","sourceRoot":"","sources":["HtmlAppBackend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HtmlAppBackend.js","sourceRoot":"","sources":["HtmlAppBackend.ts"],"names":[],"mappings":"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"}