@casual-simulation/aux-vm 2.0.29 → 2.0.30

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.
@@ -90,8 +90,20 @@ export declare class BaseSimulation implements Simulation {
90
90
  export(): Promise<StoredAux>;
91
91
  private _getTreeName;
92
92
  private _init;
93
+ /**
94
+ * Initializes the BotWatcher service.
95
+ */
93
96
  protected _initBotWatcher(): void;
94
- protected _initManagers(): void | Promise<void>;
97
+ /**
98
+ * Triggered before the VM is initialized.
99
+ * Useful if services need to be configured to listen to VM events.
100
+ */
101
+ protected _beforeVmInit(): void;
102
+ /**
103
+ * Triggered after the VM is initialized.
104
+ * Useful if services need to be configured after the VM has been initialized.
105
+ */
106
+ protected _afterVmInit(): void;
95
107
  protected _setStatus(status: string): void;
96
108
  unsubscribe(): void;
97
109
  }
@@ -148,24 +148,38 @@ export class BaseSimulation {
148
148
  }
149
149
  this._setStatus('Starting...');
150
150
  this._subscriptions.push(this._vm);
151
- // BotWatcher should be initialized before the VM
152
- // so that it is already listening for any events that get emitted
153
- // during initialization.
154
- this._initBotWatcher();
151
+ this._beforeVmInit();
155
152
  this._subscriptions.push(this._vm.connectionStateChanged.subscribe((s) => {
156
153
  if (s.type === 'message') {
157
154
  console.log(`[${s.source}] ${s.message}`);
158
155
  }
159
156
  }));
160
157
  yield this._vm.init();
161
- yield this._initManagers();
158
+ this._afterVmInit();
162
159
  this._setStatus('Initialized.');
163
160
  });
164
161
  }
162
+ /**
163
+ * Initializes the BotWatcher service.
164
+ */
165
165
  _initBotWatcher() {
166
166
  this._watcher = new BotWatcher(this._helper, this._index, this._vm.stateUpdated, this._vm.versionUpdated);
167
167
  }
168
- _initManagers() { }
168
+ /**
169
+ * Triggered before the VM is initialized.
170
+ * Useful if services need to be configured to listen to VM events.
171
+ */
172
+ _beforeVmInit() {
173
+ // BotWatcher should be initialized before the VM
174
+ // so that it is already listening for any events that get emitted
175
+ // during initialization.
176
+ this._initBotWatcher();
177
+ }
178
+ /**
179
+ * Triggered after the VM is initialized.
180
+ * Useful if services need to be configured after the VM has been initialized.
181
+ */
182
+ _afterVmInit() { }
169
183
  _setStatus(status) {
170
184
  this._status = status;
171
185
  console.log('[BaseSimulation] Status:', status);
@@ -1 +1 @@
1
- {"version":3,"file":"BaseSimulation.js","sourceRoot":"","sources":["BaseSimulation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseSimulation.js","sourceRoot":"","sources":["BaseSimulation.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,29 @@
1
1
  import { Observable, SubscriptionLike } from 'rxjs';
2
2
  import { AuxVM } from '../vm/AuxVM';
3
- import { DefineGlobalBotAction } from '@casual-simulation/aux-common';
4
- import { ScriptPrefix } from './PortalBundler';
3
+ import { DefineGlobalBotAction, RegisterPrefixOptions } from '@casual-simulation/aux-common';
4
+ /**
5
+ * Defines an interface that represents a script prefix.
6
+ * That is, a prefix that indicates the value should be treated as a particular language.
7
+ */
8
+ export interface ScriptPrefix {
9
+ /**
10
+ * The prefix.
11
+ */
12
+ prefix: string;
13
+ /**
14
+ * The language that values should be treated as.
15
+ */
16
+ language: RegisterPrefixOptions['language'];
17
+ /**
18
+ * Whether the prefix is a builtin value.
19
+ */
20
+ isDefault?: boolean;
21
+ /**
22
+ * Whether the prefix should be treated as a fallback.
23
+ * That is, values that are imported using it will be imported verbatim.
24
+ */
25
+ isFallback?: boolean;
26
+ }
5
27
  /**
6
28
  * The list of default script prefixes.
7
29
  */
@@ -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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"}
@@ -8,7 +8,6 @@ export * from './ConnectionManager';
8
8
  export * from './LoginManager';
9
9
  export * from './ProgressManager';
10
10
  export * from './BotDimensionManager';
11
- export * from './PortalBundler';
12
11
  export * from './PortalManager';
13
12
  export * from './RecordsManager';
14
13
  export * from './BaseSimulation';
package/managers/index.js CHANGED
@@ -8,7 +8,6 @@ export * from './ConnectionManager';
8
8
  export * from './LoginManager';
9
9
  export * from './ProgressManager';
10
10
  export * from './BotDimensionManager';
11
- export * from './PortalBundler';
12
11
  export * from './PortalManager';
13
12
  export * from './RecordsManager';
14
13
  export * from './BaseSimulation';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casual-simulation/aux-vm",
3
- "version": "2.0.29",
3
+ "version": "2.0.30",
4
4
  "description": "A set of abstractions required to securely run an AUX.",
5
5
  "keywords": [
6
6
  "aux"
@@ -40,13 +40,12 @@
40
40
  "url": "https://github.com/casual-simulation/casualos/issues"
41
41
  },
42
42
  "dependencies": {
43
- "@casual-simulation/aux-common": "^2.0.29",
43
+ "@casual-simulation/aux-common": "^2.0.30",
44
44
  "@casual-simulation/aux-records": "^2.0.28",
45
- "@casual-simulation/causal-tree-client-socketio": "^2.0.22",
46
45
  "@casual-simulation/causal-trees": "^2.0.22",
47
46
  "@casual-simulation/crypto": "^2.0.22",
48
47
  "@casual-simulation/fast-json-stable-stringify": "^2.0.14",
49
- "@casual-simulation/undom": "^2.0.14",
48
+ "@casual-simulation/undom": "^2.0.30",
50
49
  "esbuild": "^0.13.8",
51
50
  "esbuild-wasm": "^0.8.43",
52
51
  "lodash": "4.17.21",
@@ -54,5 +53,5 @@
54
53
  "rxjs": "^6.5.2",
55
54
  "uuid": "^8.3.2"
56
55
  },
57
- "gitHead": "e0c65922931f9a2ac9bda7827460113930a1ad6d"
56
+ "gitHead": "02da28eafc22129f482dc302859ce036a6ae7578"
58
57
  }
@@ -14,12 +14,15 @@ export class CustomAppHelper {
14
14
  for (let event of events) {
15
15
  if (event.type === 'register_custom_app') {
16
16
  let appId = event.appId;
17
- let backend = new HtmlAppBackend(appId, event.botId, this.helper, event.taskId);
18
- const existing = this.portals.get(appId);
19
- if (existing) {
20
- existing.dispose();
17
+ if (!this.portals.has(appId)) {
18
+ const backend = new HtmlAppBackend(appId, event.botId, this.helper, event.taskId);
19
+ this.portals.set(appId, backend);
20
+ }
21
+ else {
22
+ if (hasValue(event.taskId)) {
23
+ this.helper.transaction(asyncResult(event.taskId, null));
24
+ }
21
25
  }
22
- this.portals.set(appId, backend);
23
26
  }
24
27
  else if (event.type === 'unregister_custom_app') {
25
28
  try {
@@ -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,OAAO,GAAe,IAAI,cAAc,CACxC,KAAK,EACL,KAAK,CAAC,KAAK,EACX,IAAI,CAAC,MAAM,EACX,KAAK,CAAC,MAAM,CACf,CAAC;gBAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,QAAQ,EAAE;oBACV,QAAQ,CAAC,OAAO,EAAE,CAAC;iBACtB;gBAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;aACpC;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":"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,154 +0,0 @@
1
- import { BotsState, RegisterPrefixOptions } from '@casual-simulation/aux-common';
2
- export declare const DEFAULT_IMPORT_LANGUAGE = "js";
3
- /**
4
- * Defines an interface that represents the list of bots and tags that are included in a bundle.
5
- */
6
- export interface BundleModules {
7
- [id: string]: Set<string>;
8
- }
9
- /**
10
- * Defines an interface that represents data about an external module.
11
- */
12
- export interface ExternalModule {
13
- /**
14
- * The ID that was imported.
15
- */
16
- id: string;
17
- /**
18
- * The URL that was imported.
19
- */
20
- url: string;
21
- /**
22
- * The URL to the typescript definitions
23
- */
24
- typescriptDefinitionsURL: string | null;
25
- }
26
- /**
27
- * Defines an interface that represents data about an injected library.
28
- */
29
- export interface LibraryModule {
30
- /**
31
- * The ID that was imported.
32
- */
33
- id: string;
34
- /**
35
- * The source code that was imported.
36
- */
37
- source: string;
38
- /**
39
- * The typescript definitions that should be used for the module.
40
- */
41
- typescriptDefinitions?: string;
42
- /**
43
- * The language that this module is in.
44
- */
45
- language: RegisterPrefixOptions['language'];
46
- }
47
- /**
48
- * Defines an interface that represents a bundle of code.
49
- */
50
- export interface CodeBundle {
51
- /**
52
- * The tag the bundle was built from.
53
- */
54
- tag: string;
55
- /**
56
- * The source code that the bundle contains.
57
- * If an error occurred, then this will be null/undefined.
58
- */
59
- source?: string;
60
- /**
61
- * The error that occurred while building the bundle.
62
- * Null/Undefined if an error did not happen.
63
- */
64
- error?: string;
65
- /**
66
- * The list of warnings that occurred while building the bundle.
67
- */
68
- warnings: string[];
69
- /**
70
- * The list of modules that the bundle contains.
71
- */
72
- modules: BundleModules;
73
- /**
74
- * The list of modules that were imported from the web.
75
- */
76
- externals: {
77
- [id: string]: ExternalModule;
78
- };
79
- /**
80
- * The list of libraries that were imported.
81
- */
82
- libraries: {
83
- [id: string]: LibraryModule;
84
- };
85
- }
86
- /**
87
- * Defines an interface that represents a script prefix.
88
- * That is, a prefix that indicates the value should be treated as a particular language.
89
- */
90
- export interface ScriptPrefix {
91
- /**
92
- * The prefix.
93
- */
94
- prefix: string;
95
- /**
96
- * The language that values should be treated as.
97
- */
98
- language: RegisterPrefixOptions['language'];
99
- /**
100
- * Whether the prefix is a builtin value.
101
- */
102
- isDefault?: boolean;
103
- /**
104
- * Whether the prefix should be treated as a fallback.
105
- * That is, values that are imported using it will be imported verbatim.
106
- */
107
- isFallback?: boolean;
108
- }
109
- export declare const DEFAULT_BASE_MODULE_URL: string;
110
- /**
111
- * Defines an interface that can bundle AUX code from tags into a single script.
112
- */
113
- export interface PortalBundler {
114
- /**
115
- * Creates a bundle from the given bots.
116
- * @param state The bots state that the bundle should be created from.
117
- * @param tag The tag that should be used as the entry point for the bundle.
118
- * @param prefixes The prefixes that should be used to distinguish tag types.
119
- */
120
- bundleTag(state: BotsState, tag: string, prefixes: ScriptPrefix[]): Promise<CodeBundle>;
121
- /**
122
- * Adds the given library source under the given name.
123
- * @param module The module that should be used.
124
- */
125
- addLibrary(module: LibraryModule): void;
126
- }
127
- /**
128
- * Defines a class that is used to bundle scripts for portals.
129
- * It listens for state updates and is able to asynchrounously emit bundles that should be injected into custom portals.
130
- */
131
- export declare class ESBuildPortalBundler implements PortalBundler {
132
- private _baseModuleUrl;
133
- private _httpCache;
134
- private _libraries;
135
- private _esbuildWasmUrl;
136
- constructor(options?: {
137
- esbuildWasmUrl?: string;
138
- });
139
- /**
140
- * Adds the given library source under the given name.
141
- * @param source The source code to use.
142
- */
143
- addLibrary(module: LibraryModule): void;
144
- /**
145
- * Creates a bundle from the given bots that starts with the given tag.
146
- * @param state The bots state that the bundle should be created from.
147
- * @param tag The tag that should be bundled.
148
- * @param prefixes The list of script prefixes.
149
- */
150
- bundleTag(state: BotsState, tag: string, prefixes: ScriptPrefix[]): Promise<CodeBundle>;
151
- private _esbuild;
152
- private _esbuildPlugin;
153
- }
154
- //# sourceMappingURL=PortalBundler.d.ts.map
@@ -1,364 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { calculateBotValue, getScriptPrefix, isPortalScript, trimPrefixedScript, hasValue, } from '@casual-simulation/aux-common';
11
- import { values, sortBy } from 'lodash';
12
- import axios from 'axios';
13
- import * as esbuild from 'esbuild';
14
- export const DEFAULT_IMPORT_LANGUAGE = 'js';
15
- export const DEFAULT_BASE_MODULE_URL = 'https://cdn.skypack.dev';
16
- let _startedEsbuild = false;
17
- /**
18
- * Defines a class that is used to bundle scripts for portals.
19
- * It listens for state updates and is able to asynchrounously emit bundles that should be injected into custom portals.
20
- */
21
- export class ESBuildPortalBundler {
22
- constructor(options = {}) {
23
- this._baseModuleUrl = DEFAULT_BASE_MODULE_URL;
24
- this._httpCache = new Map();
25
- this._libraries = new Map();
26
- this._libraries;
27
- this._esbuildWasmUrl = options.esbuildWasmUrl || null;
28
- }
29
- /**
30
- * Adds the given library source under the given name.
31
- * @param source The source code to use.
32
- */
33
- addLibrary(module) {
34
- this._libraries.set(module.id, module);
35
- }
36
- /**
37
- * Creates a bundle from the given bots that starts with the given tag.
38
- * @param state The bots state that the bundle should be created from.
39
- * @param tag The tag that should be bundled.
40
- * @param prefixes The list of script prefixes.
41
- */
42
- bundleTag(state, tag, prefixes) {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- let entryModules = new Set();
45
- let entryCode = '';
46
- let scriptPrefixes = prefixes.map((p) => p.prefix);
47
- let bots = sortBy(values(state), (b) => b.id);
48
- const entryPrefix = getScriptPrefix(scriptPrefixes, tag);
49
- const entryPrefixes = entryPrefix !== null ? [entryPrefix] : scriptPrefixes;
50
- tag = entryPrefix !== null ? trimPrefixedScript(entryPrefix, tag) : tag;
51
- let tagModules = bots
52
- .map((b) => ({
53
- prefix: getScriptPrefix(entryPrefixes, calculateBotValue(null, b, tag)),
54
- tag: tag,
55
- id: b.id,
56
- code: calculateBotValue(null, b, tag),
57
- }))
58
- .filter((value) => value.prefix !== null)
59
- .map((m) => ({
60
- name: auxModuleId(m.prefix, m.id, m.tag),
61
- code: trimPrefixedScript(m.prefix, m.code),
62
- }));
63
- if (tagModules.length <= 0) {
64
- return null;
65
- }
66
- for (let m of tagModules) {
67
- entryModules.add(m.name);
68
- }
69
- for (let name of entryModules) {
70
- entryCode += `import ${JSON.stringify(name)};\n`;
71
- }
72
- return yield this._esbuild(tag, entryCode, prefixes, state, bots);
73
- });
74
- }
75
- _esbuild(tag, entryCode, prefixes, state, bots) {
76
- return __awaiter(this, void 0, void 0, function* () {
77
- if (!_startedEsbuild) {
78
- let options = {};
79
- if (this._esbuildWasmUrl) {
80
- options.wasmURL = this._esbuildWasmUrl;
81
- }
82
- yield esbuild.initialize(options);
83
- _startedEsbuild = true;
84
- }
85
- let modules = {};
86
- let externals = {};
87
- let libraries = {};
88
- try {
89
- const result = yield esbuild.build({
90
- entryPoints: ['__entry'],
91
- bundle: true,
92
- format: 'iife',
93
- write: false,
94
- logLevel: 'silent',
95
- plugins: [
96
- this._esbuildPlugin(prefixes, entryCode, state, bots, modules, externals, libraries),
97
- ],
98
- });
99
- let final = '';
100
- for (let file of result.outputFiles) {
101
- final += file.text;
102
- }
103
- const warnings = result.warnings.map((w) => w.text);
104
- return {
105
- tag,
106
- source: final,
107
- warnings,
108
- modules,
109
- externals,
110
- libraries,
111
- };
112
- }
113
- catch (err) {
114
- return {
115
- tag,
116
- error: err.toString(),
117
- warnings: [],
118
- modules,
119
- externals,
120
- libraries,
121
- };
122
- }
123
- });
124
- }
125
- _esbuildPlugin(prefixes, entryCode, state, bots, modules, externals, libraries) {
126
- return {
127
- name: 'casualos',
128
- setup: (build) => {
129
- build.onResolve({ filter: /^__entry$/ }, (args) => ({
130
- path: args.path,
131
- namespace: 'entry-ns',
132
- }));
133
- build.onLoad({ filter: /^__entry$/, namespace: 'entry-ns' }, (args) => ({
134
- contents: entryCode,
135
- loader: 'js',
136
- }));
137
- build.onResolve({ filter: /\\?auxmodule$/ }, (args) => ({
138
- path: args.path,
139
- namespace: 'aux-ns',
140
- }));
141
- for (let p of prefixes) {
142
- let prefix = p;
143
- build.onResolve({ filter: new RegExp(`^${prefix.prefix}`) }, (args) => {
144
- const tag = trimPrefixedScript(prefix.prefix, args.path);
145
- const bot = p.isFallback
146
- ? bots.find((b) => hasValue(calculateBotValue(null, b, tag)))
147
- : bots.find((b) => isPortalScript(prefix.prefix, calculateBotValue(null, b, tag)));
148
- if (!bot) {
149
- return {
150
- errors: [
151
- {
152
- text: `Unable to resolve "${prefix.prefix}${tag}". No matching script could be found.`,
153
- },
154
- ],
155
- };
156
- }
157
- return {
158
- path: auxModuleId(prefix.prefix, bot.id, tag),
159
- namespace: p.isFallback
160
- ? 'aux-fallback-ns'
161
- : 'aux-ns',
162
- };
163
- });
164
- }
165
- build.onLoad({ filter: /\\?auxmodule$/, namespace: 'aux-ns' }, buildAuxLoader(false));
166
- build.onLoad({ filter: /\\?auxmodule$/, namespace: 'aux-fallback-ns' }, buildAuxLoader(true));
167
- build.onResolve({ filter: /^https?/ }, (args) => ({
168
- path: args.path,
169
- namespace: 'http-ns',
170
- }));
171
- build.onResolve({ filter: /.*/ }, (args) => {
172
- const importee = args.path;
173
- let importer = args.importer;
174
- if (this._libraries.has(importee)) {
175
- return {
176
- path: importee,
177
- namespace: 'lib-ns',
178
- };
179
- }
180
- // convert to HTTP(S) import.
181
- if (importee.startsWith('/') ||
182
- importee.startsWith('./') ||
183
- importee.startsWith('../')) {
184
- const lastForwardSlash = importer.lastIndexOf('/');
185
- const lastDot = importer.lastIndexOf('.');
186
- // We can determine that the importer was a file with an extension
187
- // by looking at whether the index of the last period is after the
188
- // index of the last forward slash. If it is, then we know the file has
189
- // a valid extension. If it is not, then it should be treated as a directory name.
190
- const hasFileExtension = lastDot >= 0 && lastForwardSlash < lastDot;
191
- // use importer as base URL
192
- if (!hasFileExtension && !importer.endsWith('/')) {
193
- const importerUrl = new URL(importer);
194
- importer = `${importerUrl.origin}${importerUrl.pathname}/`;
195
- }
196
- const url = new URL(importee, importer);
197
- return { path: url.href, namespace: 'http-ns' };
198
- }
199
- else {
200
- const url = `${this._baseModuleUrl}/${importee}?dts`;
201
- externals[importee] = {
202
- id: importee,
203
- url,
204
- typescriptDefinitionsURL: null,
205
- };
206
- return {
207
- path: url,
208
- namespace: 'http-ns',
209
- };
210
- }
211
- });
212
- build.onLoad({ filter: /^https?/, namespace: 'http-ns' }, (args) => __awaiter(this, void 0, void 0, function* () {
213
- try {
214
- const cached = this._httpCache.get(args.path);
215
- if (typeof cached !== 'undefined') {
216
- return {
217
- contents: handleHttpResponse(args.path, yield cached, externals),
218
- loader: 'js',
219
- };
220
- }
221
- let promise = axios.get(args.path);
222
- this._httpCache.set(args.path, promise);
223
- const script = handleHttpResponse(args.path, yield promise, externals);
224
- return {
225
- contents: script,
226
- loader: 'js',
227
- };
228
- }
229
- catch (err) {
230
- return {
231
- errors: [
232
- {
233
- text: `${err}`,
234
- },
235
- ],
236
- };
237
- }
238
- }));
239
- build.onLoad({ filter: /.*/, namespace: 'lib-ns' }, (args) => __awaiter(this, void 0, void 0, function* () {
240
- try {
241
- const module = this._libraries.get(args.path);
242
- if (module) {
243
- libraries[args.path] = module;
244
- return {
245
- contents: module.source,
246
- loader: loaderForLanguage(module.language, DEFAULT_IMPORT_LANGUAGE),
247
- };
248
- }
249
- return {
250
- errors: [
251
- {
252
- text: `Unable to find library for ${args.path}`,
253
- },
254
- ],
255
- };
256
- }
257
- catch (err) {
258
- return {
259
- errors: [
260
- {
261
- text: `${err}`,
262
- },
263
- ],
264
- };
265
- }
266
- }));
267
- function buildAuxLoader(isFallback) {
268
- return (args) => {
269
- const { prefix, botId, tag } = parseAuxModuleId(prefixes, args.path);
270
- if (prefix && botId && tag) {
271
- const bot = state[botId];
272
- if (!bot) {
273
- return {
274
- errors: [
275
- {
276
- text: `Unable to import "${prefix.prefix}${tag}". No matching script could be found.`,
277
- },
278
- ],
279
- };
280
- }
281
- let moduleTags = modules[botId];
282
- if (!moduleTags) {
283
- moduleTags = new Set();
284
- modules[botId] = moduleTags;
285
- }
286
- moduleTags.add(tag);
287
- const code = calculateBotValue(null, bot, tag);
288
- return {
289
- contents: isFallback
290
- ? code
291
- : trimPrefixedScript(prefix.prefix, code),
292
- loader: loaderForLanguage(prefix.language, DEFAULT_IMPORT_LANGUAGE),
293
- };
294
- }
295
- return {
296
- errors: [
297
- {
298
- text: `Did you forget to use 📖 when importing?`,
299
- },
300
- ],
301
- };
302
- };
303
- }
304
- },
305
- };
306
- }
307
- }
308
- function loaderForLanguage(language, defaultLoader) {
309
- return language === 'javascript'
310
- ? 'js'
311
- : language === 'typescript'
312
- ? 'ts'
313
- : language === 'json'
314
- ? 'json'
315
- : language === 'jsx'
316
- ? 'jsx'
317
- : language === 'tsx'
318
- ? 'tsx'
319
- : language === 'text'
320
- ? 'text'
321
- : defaultLoader;
322
- }
323
- function handleHttpResponse(path, response, externals) {
324
- var _a;
325
- if (typeof response.data === 'string') {
326
- const script = response.data;
327
- const external = values(externals).find((e) => e.url === path);
328
- if (external) {
329
- const declarations = (_a = response === null || response === void 0 ? void 0 : response.headers) === null || _a === void 0 ? void 0 : _a['x-typescript-types'];
330
- if (typeof declarations === 'string') {
331
- external.typescriptDefinitionsURL = new URL(declarations, path).href;
332
- }
333
- }
334
- return script;
335
- }
336
- else {
337
- throw new Error(`The module server did not return a string.`);
338
- }
339
- }
340
- function auxModuleId(prefix, botId, tag) {
341
- return `${prefix}${botId}.${tag}?auxmodule`;
342
- }
343
- function parseAuxModuleId(prefixes, id) {
344
- if (isAuxModuleId(id)) {
345
- for (let prefix of prefixes) {
346
- if (id.startsWith(prefix.prefix)) {
347
- id = id.substring(prefix.prefix.length);
348
- const dotIndex = id.indexOf('.');
349
- const botId = id.slice(0, dotIndex);
350
- const tag = id.slice(dotIndex + 1, id.length - '?auxmodule'.length);
351
- return {
352
- prefix,
353
- botId,
354
- tag,
355
- };
356
- }
357
- }
358
- }
359
- return { prefix: null, botId: null, tag: null };
360
- }
361
- function isAuxModuleId(id) {
362
- return id.endsWith('?auxmodule');
363
- }
364
- //# sourceMappingURL=PortalBundler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PortalBundler.js","sourceRoot":"","sources":["PortalBundler.ts"],"names":[],"mappings":"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"}