@xyo-network/os-runtime 7.0.0 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/neutral/DappCallerBase.d.ts.map +1 -1
- package/dist/neutral/OsCallerBase.d.ts.map +1 -1
- package/dist/neutral/PubSubBridgeCaller.d.ts.map +1 -1
- package/dist/neutral/XyOs.d.ts +2 -3
- package/dist/neutral/XyOs.d.ts.map +1 -1
- package/dist/neutral/XyOsBase.d.ts +2 -1
- package/dist/neutral/XyOsBase.d.ts.map +1 -1
- package/dist/neutral/XyOsDapp.d.ts +2 -1
- package/dist/neutral/XyOsDapp.d.ts.map +1 -1
- package/dist/neutral/access/Caller.d.ts +3 -3
- package/dist/neutral/access/Caller.d.ts.map +1 -1
- package/dist/neutral/access/interfaces/registered-names/helpers/AccessNodeQueries.d.ts.map +1 -1
- package/dist/neutral/access/interfaces/registered-names/helpers/resource/AbstractXnsCaller.d.ts.map +1 -1
- package/dist/neutral/access/interfaces/registered-names/helpers/resource/RegistrationsResource.d.ts +2 -2
- package/dist/neutral/access/interfaces/registered-names/helpers/resource/RegistrationsResource.d.ts.map +1 -1
- package/dist/neutral/adapter/Base.d.ts +2 -2
- package/dist/neutral/adapter/Base.d.ts.map +1 -1
- package/dist/neutral/classes/settings/CallerBase.d.ts.map +1 -1
- package/dist/neutral/dapp/context/creator/Creator.d.ts +5 -5
- package/dist/neutral/dapp/context/creator/Creator.d.ts.map +1 -1
- package/dist/neutral/dapp/context/creator/DefaultPayloads/DappAccessPayloads.d.ts.map +1 -1
- package/dist/neutral/dapp/context/creator/DefaultPayloads/DefaultPayloads.d.ts +1 -1
- package/dist/neutral/dapp/context/creator/DefaultPayloads/DefaultPayloads.d.ts.map +1 -1
- package/dist/neutral/dapp/context/creator/DefaultPayloads/NodeInfoPayload.d.ts +1 -1
- package/dist/neutral/dapp/context/creator/DefaultPayloads/NodeInfoPayload.d.ts.map +1 -1
- package/dist/neutral/dapp/context/creator/ExternalModulePermissions/ExternalModulePermissions.d.ts +2 -2
- package/dist/neutral/dapp/context/creator/ExternalModulePermissions/ExternalModulePermissions.d.ts.map +1 -1
- package/dist/neutral/index.mjs +659 -999
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/lib/NameTransforms.d.ts.map +1 -1
- package/dist/neutral/lib/PayloadStore.d.ts +1 -1
- package/dist/neutral/lib/PayloadStore.d.ts.map +1 -1
- package/dist/neutral/registration/DappRegistrationService.d.ts +6 -6
- package/dist/neutral/registration/DappRegistrationService.d.ts.map +1 -1
- package/dist/neutral/registration/DappRegistry.d.ts +1 -1
- package/dist/neutral/registration/DappRegistry.d.ts.map +1 -1
- package/dist/neutral/system/ManageSystemDapps.d.ts +5 -5
- package/dist/neutral/system/ManageSystemDapps.d.ts.map +1 -1
- package/dist/neutral/wallet/DappSeedPhraseRepository.d.ts.map +1 -1
- package/dist/node/DappCallerBase.d.ts.map +1 -1
- package/dist/node/OsCallerBase.d.ts.map +1 -1
- package/dist/node/PubSubBridgeCaller.d.ts.map +1 -1
- package/dist/node/XyOs.d.ts +2 -3
- package/dist/node/XyOs.d.ts.map +1 -1
- package/dist/node/XyOsBase.d.ts +2 -1
- package/dist/node/XyOsBase.d.ts.map +1 -1
- package/dist/node/XyOsDapp.d.ts +2 -1
- package/dist/node/XyOsDapp.d.ts.map +1 -1
- package/dist/node/access/Caller.d.ts +3 -3
- package/dist/node/access/Caller.d.ts.map +1 -1
- package/dist/node/access/interfaces/registered-names/helpers/AccessNodeQueries.d.ts.map +1 -1
- package/dist/node/access/interfaces/registered-names/helpers/resource/AbstractXnsCaller.d.ts.map +1 -1
- package/dist/node/access/interfaces/registered-names/helpers/resource/RegistrationsResource.d.ts +2 -2
- package/dist/node/access/interfaces/registered-names/helpers/resource/RegistrationsResource.d.ts.map +1 -1
- package/dist/node/adapter/Base.d.ts +2 -2
- package/dist/node/adapter/Base.d.ts.map +1 -1
- package/dist/node/classes/settings/CallerBase.d.ts.map +1 -1
- package/dist/node/dapp/context/creator/Creator.d.ts +5 -5
- package/dist/node/dapp/context/creator/Creator.d.ts.map +1 -1
- package/dist/node/dapp/context/creator/DefaultPayloads/DappAccessPayloads.d.ts.map +1 -1
- package/dist/node/dapp/context/creator/DefaultPayloads/DefaultPayloads.d.ts +1 -1
- package/dist/node/dapp/context/creator/DefaultPayloads/DefaultPayloads.d.ts.map +1 -1
- package/dist/node/dapp/context/creator/DefaultPayloads/NodeInfoPayload.d.ts +1 -1
- package/dist/node/dapp/context/creator/DefaultPayloads/NodeInfoPayload.d.ts.map +1 -1
- package/dist/node/dapp/context/creator/ExternalModulePermissions/ExternalModulePermissions.d.ts +2 -2
- package/dist/node/dapp/context/creator/ExternalModulePermissions/ExternalModulePermissions.d.ts.map +1 -1
- package/dist/node/index.mjs +659 -999
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/lib/NameTransforms.d.ts.map +1 -1
- package/dist/node/lib/PayloadStore.d.ts +1 -1
- package/dist/node/lib/PayloadStore.d.ts.map +1 -1
- package/dist/node/registration/DappRegistrationService.d.ts +6 -6
- package/dist/node/registration/DappRegistrationService.d.ts.map +1 -1
- package/dist/node/registration/DappRegistry.d.ts +1 -1
- package/dist/node/registration/DappRegistry.d.ts.map +1 -1
- package/dist/node/scripts/xyos/index.mjs +359 -493
- package/dist/node/scripts/xyos/index.mjs.map +1 -1
- package/dist/node/system/ManageSystemDapps.d.ts +5 -5
- package/dist/node/system/ManageSystemDapps.d.ts.map +1 -1
- package/dist/node/wallet/DappSeedPhraseRepository.d.ts.map +1 -1
- package/package.json +57 -57
- package/src/DappCallerBase.ts +5 -1
- package/src/OsCallerBase.ts +5 -1
- package/src/PubSubBridgeCaller.ts +4 -1
- package/src/XyOs.ts +1 -1
- package/src/XyOsBase.ts +2 -1
- package/src/XyOsDapp.ts +2 -1
- package/src/access/Caller.ts +17 -5
- package/src/access/interfaces/registered-names/helpers/AccessNodeQueries.ts +12 -4
- package/src/access/interfaces/registered-names/helpers/resource/AbstractXnsCaller.ts +5 -1
- package/src/access/interfaces/registered-names/helpers/resource/RegistrationsResource.ts +3 -1
- package/src/adapter/Base.ts +6 -2
- package/src/classes/settings/CallerBase.ts +4 -1
- package/src/dapp/context/creator/Creator.ts +21 -7
- package/src/dapp/context/creator/DefaultPayloads/DappAccessPayloads.ts +5 -2
- package/src/dapp/context/creator/DefaultPayloads/DefaultPayloads.ts +12 -4
- package/src/dapp/context/creator/DefaultPayloads/NodeInfoPayload.ts +5 -2
- package/src/dapp/context/creator/ExternalModulePermissions/ExternalModulePermissions.ts +15 -5
- package/src/lib/NameTransforms.ts +4 -1
- package/src/lib/PayloadStore.ts +4 -1
- package/src/registration/DappRegistrationService.ts +20 -6
- package/src/registration/DappRegistry.ts +4 -1
- package/src/system/ManageSystemDapps.ts +17 -5
- package/src/wallet/DappSeedPhraseRepository.ts +4 -1
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/scripts/xyos/index.ts
|
|
5
2
|
import yargs from "yargs";
|
|
6
3
|
import { hideBin } from "yargs/helpers";
|
|
7
4
|
|
|
8
5
|
// src/scripts/xyos/command/config.ts
|
|
9
|
-
var commandConfig =
|
|
6
|
+
var commandConfig = (argv) => {
|
|
10
7
|
return argv.command("config [action] <target>", "Create an xyos project", (yargs2) => {
|
|
11
8
|
return yargs2.positional("action", {
|
|
12
|
-
choices: [
|
|
13
|
-
"create",
|
|
14
|
-
"validate",
|
|
15
|
-
"display"
|
|
16
|
-
],
|
|
9
|
+
choices: ["create", "validate", "display"],
|
|
17
10
|
description: "Action to take on config",
|
|
18
11
|
type: "string"
|
|
19
12
|
}).positional("target", {
|
|
@@ -24,13 +17,13 @@ var commandConfig = /* @__PURE__ */ __name((argv) => {
|
|
|
24
17
|
console.log(`Taking action [${action}] on manifest at ${target}`);
|
|
25
18
|
return await Promise.resolve();
|
|
26
19
|
});
|
|
27
|
-
}
|
|
20
|
+
};
|
|
28
21
|
|
|
29
22
|
// src/scripts/xyos/lib/createFromTemplate.ts
|
|
30
|
-
var createFromTemplate =
|
|
23
|
+
var createFromTemplate = async ({ target, template }) => {
|
|
31
24
|
console.log("Creating from template", template, "at", target);
|
|
32
25
|
return await Promise.resolve();
|
|
33
|
-
}
|
|
26
|
+
};
|
|
34
27
|
|
|
35
28
|
// src/scripts/xyos/lib/headless.ts
|
|
36
29
|
import fs from "fs";
|
|
@@ -52,9 +45,6 @@ import { ModuleFactoryLocator as ModuleFactoryLocator6 } from "@xyo-network/modu
|
|
|
52
45
|
import { assertEx } from "@xylabs/assert";
|
|
53
46
|
import { BaseEmitter } from "@xylabs/events";
|
|
54
47
|
var EventBusConnection = class extends BaseEmitter {
|
|
55
|
-
static {
|
|
56
|
-
__name(this, "EventBusConnection");
|
|
57
|
-
}
|
|
58
48
|
_id;
|
|
59
49
|
description;
|
|
60
50
|
type;
|
|
@@ -77,14 +67,14 @@ import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
|
77
67
|
import { forget } from "@xylabs/forget";
|
|
78
68
|
import { asArchivistInstance } from "@xyo-network/archivist";
|
|
79
69
|
import { MemoryArchivist, MemoryArchivistConfigSchema } from "@xyo-network/archivist-memory";
|
|
80
|
-
import {
|
|
70
|
+
import {
|
|
71
|
+
asOptionalEventBusEvent,
|
|
72
|
+
isPubSubConnections
|
|
73
|
+
} from "@xyo-network/os-model";
|
|
81
74
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
82
75
|
import { Mutex } from "async-mutex";
|
|
83
76
|
import { v4 as uuid } from "uuid";
|
|
84
77
|
var EventBus = class {
|
|
85
|
-
static {
|
|
86
|
-
__name(this, "EventBus");
|
|
87
|
-
}
|
|
88
78
|
// Internal Archivist to store event data
|
|
89
79
|
_archivist;
|
|
90
80
|
// Store all connections
|
|
@@ -93,9 +83,11 @@ var EventBus = class {
|
|
|
93
83
|
publisherCallbacks = {};
|
|
94
84
|
startMutex = new Mutex();
|
|
95
85
|
get archivist() {
|
|
96
|
-
return asArchivistInstance(
|
|
97
|
-
|
|
98
|
-
|
|
86
|
+
return asArchivistInstance(
|
|
87
|
+
assertEx2(this._archivist, () => "Archivist not found. Did you forget to call start()?"),
|
|
88
|
+
"not a valid archivist instance",
|
|
89
|
+
{ required: true }
|
|
90
|
+
);
|
|
99
91
|
}
|
|
100
92
|
addConnection(connection) {
|
|
101
93
|
const id = uuid();
|
|
@@ -124,12 +116,7 @@ var EventBus = class {
|
|
|
124
116
|
console.warn("EventBus already started");
|
|
125
117
|
return this;
|
|
126
118
|
}
|
|
127
|
-
this._archivist = await MemoryArchivist.create({
|
|
128
|
-
config: {
|
|
129
|
-
name: storeName,
|
|
130
|
-
schema: MemoryArchivistConfigSchema
|
|
131
|
-
}
|
|
132
|
-
});
|
|
119
|
+
this._archivist = await MemoryArchivist.create({ config: { name: storeName, schema: MemoryArchivistConfigSchema } });
|
|
133
120
|
this.archivist.on("inserted", ({ payloads }) => {
|
|
134
121
|
const eventBusEvent = findAs(payloads, asOptionalEventBusEvent);
|
|
135
122
|
if (!eventBusEvent) return;
|
|
@@ -139,9 +126,7 @@ var EventBus = class {
|
|
|
139
126
|
for (const [eventName, callback] of connection.subscribableEvents.entries()) {
|
|
140
127
|
if (eventName !== eventBusEvent.name) continue;
|
|
141
128
|
if (callback) {
|
|
142
|
-
const forgettable =
|
|
143
|
-
payloads
|
|
144
|
-
}), "forgettable");
|
|
129
|
+
const forgettable = async () => await callback({ payloads });
|
|
145
130
|
forget(forgettable());
|
|
146
131
|
}
|
|
147
132
|
}
|
|
@@ -153,22 +138,16 @@ var EventBus = class {
|
|
|
153
138
|
}
|
|
154
139
|
handlePublisherAdd(connection) {
|
|
155
140
|
for (const eventName of connection.publishableEvents ?? []) {
|
|
156
|
-
const connectionPublisherCallback =
|
|
157
|
-
const event = {
|
|
158
|
-
name: eventName,
|
|
159
|
-
schema: "network.xyo.event.bus.event"
|
|
160
|
-
};
|
|
141
|
+
const connectionPublisherCallback = async ({ payloads }) => {
|
|
142
|
+
const event = { name: eventName, schema: "network.xyo.event.bus.event" };
|
|
161
143
|
const eventPayloads = payloads ?? [];
|
|
162
144
|
event.sources = await PayloadBuilder.dataHashes(eventPayloads);
|
|
163
145
|
try {
|
|
164
|
-
await this.archivist.insert([
|
|
165
|
-
event,
|
|
166
|
-
...payloads ?? []
|
|
167
|
-
]);
|
|
146
|
+
await this.archivist.insert([event, ...payloads ?? []]);
|
|
168
147
|
} catch (e) {
|
|
169
148
|
console.error("Error inserting event into archivist", e);
|
|
170
149
|
}
|
|
171
|
-
}
|
|
150
|
+
};
|
|
172
151
|
connection.on(eventName, connectionPublisherCallback);
|
|
173
152
|
const callbackId = connection.id + eventName;
|
|
174
153
|
this.publisherCallbacks[callbackId] = connectionPublisherCallback;
|
|
@@ -185,9 +164,6 @@ var EventBus = class {
|
|
|
185
164
|
|
|
186
165
|
// src/event/bus/PubSubConnection.ts
|
|
187
166
|
var EventBusPubSubConnection = class extends EventBusConnection {
|
|
188
|
-
static {
|
|
189
|
-
__name(this, "EventBusPubSubConnection");
|
|
190
|
-
}
|
|
191
167
|
publishableEvents;
|
|
192
168
|
subscribableEvents;
|
|
193
169
|
constructor(request) {
|
|
@@ -203,76 +179,61 @@ var EventBusPubSubConnection = class extends EventBusConnection {
|
|
|
203
179
|
// src/event/connections/DappAccessRequest.ts
|
|
204
180
|
var DappAccessRequestEvent = "dappAccessRequest";
|
|
205
181
|
var dappAccessRequestConnectionRequest = {
|
|
206
|
-
publishableEvents: [
|
|
207
|
-
DappAccessRequestEvent
|
|
208
|
-
],
|
|
182
|
+
publishableEvents: [DappAccessRequestEvent],
|
|
209
183
|
type: "PubSub"
|
|
210
184
|
};
|
|
211
|
-
var dappAccessRequestConnection =
|
|
185
|
+
var dappAccessRequestConnection = () => new EventBusPubSubConnection(dappAccessRequestConnectionRequest);
|
|
212
186
|
|
|
213
187
|
// src/event/connections/ExposeDappRequest.ts
|
|
214
188
|
var ExposeDappRequestEvent = "exposeDappRequest";
|
|
215
189
|
var exposeDappConnectionRequest = {
|
|
216
|
-
publishableEvents: [
|
|
217
|
-
ExposeDappRequestEvent
|
|
218
|
-
],
|
|
190
|
+
publishableEvents: [ExposeDappRequestEvent],
|
|
219
191
|
type: "PubSub"
|
|
220
192
|
};
|
|
221
|
-
var exposeDappRequestConnection =
|
|
193
|
+
var exposeDappRequestConnection = () => new EventBusPubSubConnection(exposeDappConnectionRequest);
|
|
222
194
|
|
|
223
195
|
// src/event/connections/OsPubSubNetworkReady.ts
|
|
224
196
|
var OsPubSubNetworkReadyEvent = "osPubSubNetworkReady";
|
|
225
197
|
var osPubSubNetworkConnectionRequest = {
|
|
226
|
-
publishableEvents: [
|
|
227
|
-
OsPubSubNetworkReadyEvent
|
|
228
|
-
],
|
|
198
|
+
publishableEvents: [OsPubSubNetworkReadyEvent],
|
|
229
199
|
type: "PubSub"
|
|
230
200
|
};
|
|
231
|
-
var osPubSubNetworkReadyConnection =
|
|
201
|
+
var osPubSubNetworkReadyConnection = () => new EventBusPubSubConnection(osPubSubNetworkConnectionRequest);
|
|
232
202
|
|
|
233
203
|
// src/event/connections/OsSettingsReady.ts
|
|
234
204
|
var OsSettingsReadyEvent = "osSettingsReady";
|
|
235
205
|
var osSettingsConnectionRequest = {
|
|
236
|
-
publishableEvents: [
|
|
237
|
-
OsSettingsReadyEvent
|
|
238
|
-
],
|
|
206
|
+
publishableEvents: [OsSettingsReadyEvent],
|
|
239
207
|
type: "PubSub"
|
|
240
208
|
};
|
|
241
|
-
var osSettingsReadyConnection =
|
|
209
|
+
var osSettingsReadyConnection = () => new EventBusPubSubConnection(osSettingsConnectionRequest);
|
|
242
210
|
|
|
243
211
|
// src/event/connections/OsXyoPublicReady.ts
|
|
244
212
|
var OsXyoPublicNetworkReadyEvent = "osXyoPublicNetworkReady";
|
|
245
213
|
var osXyoPublicNetworkConnectionRequest = {
|
|
246
|
-
publishableEvents: [
|
|
247
|
-
OsXyoPublicNetworkReadyEvent
|
|
248
|
-
],
|
|
214
|
+
publishableEvents: [OsXyoPublicNetworkReadyEvent],
|
|
249
215
|
type: "PubSub"
|
|
250
216
|
};
|
|
251
|
-
var osXyoPublicNetworkReadyConnection =
|
|
217
|
+
var osXyoPublicNetworkReadyConnection = () => new EventBusPubSubConnection(osXyoPublicNetworkConnectionRequest);
|
|
252
218
|
|
|
253
219
|
// src/lib/initializeXns.ts
|
|
254
220
|
import { asDivinerInstance } from "@xyo-network/diviner-model";
|
|
255
221
|
import { ResolveHelper } from "@xyo-network/module-model";
|
|
256
222
|
import { NameRegistrarTransformer } from "@xyo-network/module-resolver";
|
|
257
|
-
var initializeXns =
|
|
223
|
+
var initializeXns = async (xnsNode) => {
|
|
258
224
|
if (ResolveHelper.transformers.length === 0) {
|
|
259
225
|
const registrarDiviner = asDivinerInstance(await xnsNode?.resolve("AddressRecords:AddressRecordIndexDiviner"));
|
|
260
226
|
if (registrarDiviner) {
|
|
261
227
|
const transformer = new NameRegistrarTransformer(registrarDiviner, "xyo");
|
|
262
|
-
ResolveHelper.transformers = [
|
|
263
|
-
transformer
|
|
264
|
-
];
|
|
228
|
+
ResolveHelper.transformers = [transformer];
|
|
265
229
|
return true;
|
|
266
230
|
}
|
|
267
231
|
}
|
|
268
232
|
return false;
|
|
269
|
-
}
|
|
233
|
+
};
|
|
270
234
|
|
|
271
235
|
// src/lib/NameTransforms.ts
|
|
272
236
|
var NameTransforms = class _NameTransforms {
|
|
273
|
-
static {
|
|
274
|
-
__name(this, "NameTransforms");
|
|
275
|
-
}
|
|
276
237
|
value;
|
|
277
238
|
constructor(value) {
|
|
278
239
|
this.value = value;
|
|
@@ -439,38 +400,37 @@ var os_node_manifest_default = {
|
|
|
439
400
|
|
|
440
401
|
// src/loadOsNode.ts
|
|
441
402
|
var OS_NODE_PATH = "1'";
|
|
442
|
-
var getDefaultOsNodeLocator =
|
|
403
|
+
var getDefaultOsNodeLocator = () => {
|
|
443
404
|
const locator = new ModuleFactoryLocator();
|
|
444
|
-
locator.register(IndexedDbArchivist.factory(), {
|
|
445
|
-
|
|
446
|
-
});
|
|
447
|
-
locator.register(IndexedDbPayloadDiviner.factory(), {
|
|
448
|
-
"network.xyo.archivist.persistence.scope": "device"
|
|
449
|
-
});
|
|
405
|
+
locator.register(IndexedDbArchivist.factory(), { "network.xyo.archivist.persistence.scope": "device" });
|
|
406
|
+
locator.register(IndexedDbPayloadDiviner.factory(), { "network.xyo.archivist.persistence.scope": "device" });
|
|
450
407
|
return locator;
|
|
451
|
-
}
|
|
452
|
-
var loadOsNode =
|
|
408
|
+
};
|
|
409
|
+
var loadOsNode = async (osWallet, locator) => {
|
|
453
410
|
try {
|
|
454
411
|
const osNodeWallet = await osWallet.derivePath(OS_NODE_PATH);
|
|
455
412
|
const osNodeLocator = locator ?? getDefaultOsNodeLocator();
|
|
456
413
|
const manifestWrapper = new ManifestWrapper(os_node_manifest_default, osNodeWallet, osNodeLocator);
|
|
457
414
|
const osNode = (await manifestWrapper.loadNodes())[0];
|
|
458
|
-
return [
|
|
459
|
-
osNode
|
|
460
|
-
];
|
|
415
|
+
return [osNode];
|
|
461
416
|
} catch (e) {
|
|
462
417
|
const error = e;
|
|
463
418
|
console.error(`Error creating os node: ${error.message}`);
|
|
464
419
|
console.error(`Error creating os node: ${error.stack}`);
|
|
465
420
|
throw new Error(`Error creating os node: ${error.message}`);
|
|
466
421
|
}
|
|
467
|
-
}
|
|
422
|
+
};
|
|
468
423
|
|
|
469
424
|
// src/registration/DappRegistrationService.ts
|
|
470
425
|
import { forget as forget2 } from "@xylabs/forget";
|
|
471
426
|
import { fulfilled, rejected } from "@xylabs/promise";
|
|
472
427
|
import { ModuleFactoryLocator as ModuleFactoryLocator5 } from "@xyo-network/module-factory-locator";
|
|
473
|
-
import {
|
|
428
|
+
import {
|
|
429
|
+
DappIntentTypes,
|
|
430
|
+
DappMode as DappMode2,
|
|
431
|
+
isRegisteredDappAccessDappSet,
|
|
432
|
+
isRegisteredDappExposedDappSet
|
|
433
|
+
} from "@xyo-network/os-model";
|
|
474
434
|
|
|
475
435
|
// src/intent/Caller.ts
|
|
476
436
|
import { PayloadDivinerQuerySchema } from "@xyo-network/diviner-payload-model";
|
|
@@ -486,67 +446,62 @@ var IntentArchivistModuleName = "IntentArchivist";
|
|
|
486
446
|
var IntentArchivistPayloadDivinerModuleName = "IntentArchivistPayloadDiviner";
|
|
487
447
|
var DappArchivistPayloadDivinerModuleName = "DappArchivistPayloadDiviner";
|
|
488
448
|
var DappCallerBase = class {
|
|
489
|
-
static {
|
|
490
|
-
__name(this, "DappCallerBase");
|
|
491
|
-
}
|
|
492
449
|
context;
|
|
493
450
|
constructor(context) {
|
|
494
451
|
this.context = context;
|
|
495
452
|
}
|
|
496
453
|
/**
|
|
497
|
-
|
|
498
|
-
|
|
454
|
+
* Get the DappArchivist
|
|
455
|
+
*/
|
|
499
456
|
async getDappArchivist() {
|
|
500
|
-
const mod = assertEx3(
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
457
|
+
const mod = assertEx3(
|
|
458
|
+
await this.context.root.resolve(DappArchivistModuleName),
|
|
459
|
+
() => `${DappArchivistModuleName} not found [${toSafeJsonString(this.context.root.publicChildren())}]`
|
|
460
|
+
);
|
|
461
|
+
return asArchivistInstance2(mod, () => `${DappArchivistModuleName} is not an archivist`, { required: true });
|
|
504
462
|
}
|
|
505
463
|
/**
|
|
506
|
-
|
|
507
|
-
|
|
464
|
+
* Get the DappArchivistPayloadDiviner
|
|
465
|
+
*/
|
|
508
466
|
async getDappArchivistPayloadDiviner() {
|
|
509
|
-
const mod = assertEx3(
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
467
|
+
const mod = assertEx3(
|
|
468
|
+
await this.context.root.resolve(DappArchivistPayloadDivinerModuleName),
|
|
469
|
+
() => `${DappArchivistPayloadDivinerModuleName} not found`
|
|
470
|
+
);
|
|
471
|
+
return asDivinerInstance2(mod, () => `${DappArchivistPayloadDivinerModuleName} is not a diviner`, { required: true });
|
|
513
472
|
}
|
|
514
473
|
/**
|
|
515
|
-
|
|
516
|
-
|
|
474
|
+
* Get the IntentArchivist
|
|
475
|
+
*/
|
|
517
476
|
async getDappIntentArchivist() {
|
|
518
477
|
const mod = assertEx3(await this.context.root.resolve(IntentArchivistModuleName), () => `${IntentArchivistModuleName} not found`);
|
|
519
|
-
return asArchivistInstance2(mod, () => `${IntentArchivistModuleName} is not an archivist`, {
|
|
520
|
-
required: true
|
|
521
|
-
});
|
|
478
|
+
return asArchivistInstance2(mod, () => `${IntentArchivistModuleName} is not an archivist`, { required: true });
|
|
522
479
|
}
|
|
523
480
|
// Get the IntentArchivistPayloadDiviner
|
|
524
481
|
async getDappIntentArchivistPayloadDiviner() {
|
|
525
|
-
const mod = assertEx3(
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
482
|
+
const mod = assertEx3(
|
|
483
|
+
await this.context.root.resolve(IntentArchivistPayloadDivinerModuleName),
|
|
484
|
+
() => `${IntentArchivistPayloadDivinerModuleName} not found`
|
|
485
|
+
);
|
|
486
|
+
return asDivinerInstance2(mod, () => `${IntentArchivistPayloadDivinerModuleName} is not a diviner`, { required: true });
|
|
529
487
|
}
|
|
530
488
|
};
|
|
531
489
|
|
|
532
490
|
// src/intent/Caller.ts
|
|
533
491
|
var DappIntentCaller = class _DappIntentCaller extends DappCallerBase {
|
|
534
|
-
static {
|
|
535
|
-
__name(this, "DappIntentCaller");
|
|
536
|
-
}
|
|
537
492
|
static OsDappName = "XyOs";
|
|
538
493
|
constructor(context) {
|
|
539
494
|
super(context);
|
|
540
495
|
}
|
|
541
496
|
/**
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
497
|
+
* Build a new intent
|
|
498
|
+
* @param {DappId} sourceDappId
|
|
499
|
+
* @param {DappIntentTypes} intent
|
|
500
|
+
* @param {DappId} targetDappId
|
|
501
|
+
* @param {DappMode} targetMode
|
|
502
|
+
* @param {DappIntent['params']} params?
|
|
503
|
+
* @returns DappIntent
|
|
504
|
+
*/
|
|
550
505
|
static buildIntent(sourceDappId, intent, targetDappId, targetMode = DappMode.Window, params) {
|
|
551
506
|
return {
|
|
552
507
|
intent,
|
|
@@ -562,9 +517,7 @@ var DappIntentCaller = class _DappIntentCaller extends DappCallerBase {
|
|
|
562
517
|
async addIntent(id, intent, mode) {
|
|
563
518
|
const intentArchivist = await this.getDappIntentArchivist();
|
|
564
519
|
const newIntent = _DappIntentCaller.buildIntent(id, intent, mode);
|
|
565
|
-
await intentArchivist.insert([
|
|
566
|
-
newIntent
|
|
567
|
-
]);
|
|
520
|
+
await intentArchivist.insert([newIntent]);
|
|
568
521
|
}
|
|
569
522
|
// Get all intents
|
|
570
523
|
async allIntents() {
|
|
@@ -585,9 +538,7 @@ var DappIntentCaller = class _DappIntentCaller extends DappCallerBase {
|
|
|
585
538
|
schema: PayloadDivinerQuerySchema,
|
|
586
539
|
sourceDappId: dappName
|
|
587
540
|
};
|
|
588
|
-
return await diviner.divine([
|
|
589
|
-
query
|
|
590
|
-
]);
|
|
541
|
+
return await diviner.divine([query]);
|
|
591
542
|
}
|
|
592
543
|
};
|
|
593
544
|
|
|
@@ -605,9 +556,6 @@ var DappsArchivistPayloadDivinerModuleName = "DappsArchivistPayloadDiviner";
|
|
|
605
556
|
var DappsArchivistPayloadDevelopmentDivinerModuleName = `${DappsArchivistPayloadDivinerModuleName}Development`;
|
|
606
557
|
var RegisteredDappInterfacesArchivistModuleName = "RegisteredDappInterfacesArchivist";
|
|
607
558
|
var OsCallerBase = class {
|
|
608
|
-
static {
|
|
609
|
-
__name(this, "OsCallerBase");
|
|
610
|
-
}
|
|
611
559
|
context;
|
|
612
560
|
constructor(context) {
|
|
613
561
|
this.context = context;
|
|
@@ -615,43 +563,50 @@ var OsCallerBase = class {
|
|
|
615
563
|
// Get the dapps archivist
|
|
616
564
|
async getDappsArchivist() {
|
|
617
565
|
const mod = assertEx4(await this.context.root.resolve(DappsArchivistModuleName), () => `${DappsArchivistModuleName} not found`);
|
|
618
|
-
return asArchivistInstance3(mod, () => `${DappsArchivistModuleName} is not an archivist`, {
|
|
619
|
-
required: true
|
|
620
|
-
});
|
|
566
|
+
return asArchivistInstance3(mod, () => `${DappsArchivistModuleName} is not an archivist`, { required: true });
|
|
621
567
|
}
|
|
622
568
|
// Get the dapps archivist development
|
|
623
569
|
async getDappsArchivistDevelopment() {
|
|
624
|
-
const mod = assertEx4(
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
570
|
+
const mod = assertEx4(
|
|
571
|
+
await this.context.root.resolve(DappsArchivistDevelopmentModuleName),
|
|
572
|
+
() => `${DappsArchivistDevelopmentModuleName} not found`
|
|
573
|
+
);
|
|
574
|
+
return asArchivistInstance3(mod, () => `${DappsArchivistDevelopmentModuleName} is not an archivist`, { required: true });
|
|
628
575
|
}
|
|
629
576
|
// Get the dapps archivist payload diviner
|
|
630
577
|
async getDappsArchivistPayloadDiviner() {
|
|
631
|
-
const mod = assertEx4(
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
578
|
+
const mod = assertEx4(
|
|
579
|
+
await this.context.root.resolve(DappsArchivistPayloadDivinerModuleName),
|
|
580
|
+
() => `${DappsArchivistPayloadDivinerModuleName} not found`
|
|
581
|
+
);
|
|
582
|
+
return asDivinerInstance3(mod, () => `${DappsArchivistPayloadDivinerModuleName} is not a diviner`, { required: true });
|
|
635
583
|
}
|
|
636
584
|
// Get the dapps archivist payload diviner development
|
|
637
585
|
async getDappsArchivistPayloadDivinerDevelopment() {
|
|
638
|
-
const mod = assertEx4(
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
586
|
+
const mod = assertEx4(
|
|
587
|
+
await this.context.root.resolve(DappsArchivistPayloadDevelopmentDivinerModuleName),
|
|
588
|
+
() => `${DappsArchivistPayloadDevelopmentDivinerModuleName} not found`
|
|
589
|
+
);
|
|
590
|
+
return asDivinerInstance3(mod, () => `${DappsArchivistPayloadDevelopmentDivinerModuleName} is not a diviner`, { required: true });
|
|
642
591
|
}
|
|
643
592
|
// Get the registered dapp interfaces archivist
|
|
644
593
|
async getRegisteredDappInterfacesArchivist() {
|
|
645
|
-
const mod = assertEx4(
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
594
|
+
const mod = assertEx4(
|
|
595
|
+
await this.context.root.resolve(RegisteredDappInterfacesArchivistModuleName),
|
|
596
|
+
() => `${RegisteredDappInterfacesArchivistModuleName} not found`
|
|
597
|
+
);
|
|
598
|
+
return asArchivistInstance3(mod, () => `${RegisteredDappInterfacesArchivistModuleName} is not an archivist`, { required: true });
|
|
649
599
|
}
|
|
650
600
|
};
|
|
651
601
|
|
|
652
602
|
// src/system/Queries.ts
|
|
653
603
|
import { PayloadDivinerQuerySchema as PayloadDivinerQuerySchema2 } from "@xyo-network/diviner-payload-model";
|
|
654
|
-
import {
|
|
604
|
+
import {
|
|
605
|
+
DappConfigSchema,
|
|
606
|
+
DappIconSchema,
|
|
607
|
+
DappWidgetConfigSchema,
|
|
608
|
+
UnregisteredDappAccessSchema
|
|
609
|
+
} from "@xyo-network/os-model";
|
|
655
610
|
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
656
611
|
var SystemDappQueries = {
|
|
657
612
|
async getDappAccess(diviner, name, version) {
|
|
@@ -659,14 +614,10 @@ var SystemDappQueries = {
|
|
|
659
614
|
order: "desc",
|
|
660
615
|
registeringDappId: name,
|
|
661
616
|
schema: PayloadDivinerQuerySchema2,
|
|
662
|
-
schemas: [
|
|
663
|
-
UnregisteredDappAccessSchema
|
|
664
|
-
],
|
|
617
|
+
schemas: [UnregisteredDappAccessSchema],
|
|
665
618
|
version
|
|
666
619
|
};
|
|
667
|
-
return await diviner.divine([
|
|
668
|
-
accessQuery
|
|
669
|
-
]);
|
|
620
|
+
return await diviner.divine([accessQuery]);
|
|
670
621
|
},
|
|
671
622
|
async getLatestConfig(diviner, name) {
|
|
672
623
|
const configQuery = {
|
|
@@ -674,13 +625,9 @@ var SystemDappQueries = {
|
|
|
674
625
|
name,
|
|
675
626
|
order: "desc",
|
|
676
627
|
schema: PayloadDivinerQuerySchema2,
|
|
677
|
-
schemas: [
|
|
678
|
-
DappConfigSchema
|
|
679
|
-
]
|
|
628
|
+
schemas: [DappConfigSchema]
|
|
680
629
|
};
|
|
681
|
-
const [dappConfig] = await diviner.divine([
|
|
682
|
-
configQuery
|
|
683
|
-
]);
|
|
630
|
+
const [dappConfig] = await diviner.divine([configQuery]);
|
|
684
631
|
return dappConfig;
|
|
685
632
|
},
|
|
686
633
|
async getLatestIcon(diviner, name, version) {
|
|
@@ -688,14 +635,10 @@ var SystemDappQueries = {
|
|
|
688
635
|
name,
|
|
689
636
|
order: "desc",
|
|
690
637
|
schema: PayloadDivinerQuerySchema2,
|
|
691
|
-
schemas: [
|
|
692
|
-
DappIconSchema
|
|
693
|
-
],
|
|
638
|
+
schemas: [DappIconSchema],
|
|
694
639
|
version
|
|
695
640
|
};
|
|
696
|
-
const [dappIcon] = await diviner.divine([
|
|
697
|
-
iconQuery
|
|
698
|
-
]);
|
|
641
|
+
const [dappIcon] = await diviner.divine([iconQuery]);
|
|
699
642
|
return dappIcon;
|
|
700
643
|
},
|
|
701
644
|
async getWidgetConfigs(diviner, name, version) {
|
|
@@ -703,14 +646,10 @@ var SystemDappQueries = {
|
|
|
703
646
|
dappId: name,
|
|
704
647
|
order: "desc",
|
|
705
648
|
schema: PayloadDivinerQuerySchema2,
|
|
706
|
-
schemas: [
|
|
707
|
-
DappWidgetConfigSchema
|
|
708
|
-
],
|
|
649
|
+
schemas: [DappWidgetConfigSchema],
|
|
709
650
|
version
|
|
710
651
|
};
|
|
711
|
-
const widgetConfigs = await diviner.divine([
|
|
712
|
-
widgetConfigQuery
|
|
713
|
-
]);
|
|
652
|
+
const widgetConfigs = await diviner.divine([widgetConfigQuery]);
|
|
714
653
|
const uniqueConfigs = {};
|
|
715
654
|
for (const widgetConfig of widgetConfigs) {
|
|
716
655
|
const hash = await PayloadBuilder2.dataHash(widgetConfig);
|
|
@@ -722,28 +661,30 @@ var SystemDappQueries = {
|
|
|
722
661
|
|
|
723
662
|
// src/system/ManageSystemDapps.ts
|
|
724
663
|
var ManageSystemDapps = class extends OsCallerBase {
|
|
725
|
-
static {
|
|
726
|
-
__name(this, "ManageSystemDapps");
|
|
727
|
-
}
|
|
728
|
-
defaultSystemNames;
|
|
729
|
-
defaultSystemDapps;
|
|
730
664
|
defaultSystemDappParams;
|
|
731
|
-
|
|
665
|
+
defaultSystemDapps;
|
|
666
|
+
defaultSystemNames;
|
|
732
667
|
developmentMode;
|
|
668
|
+
locator;
|
|
733
669
|
onErrorCallbacks = [];
|
|
734
670
|
constructor(context, defaultSystemNames, defaultSystemDapps, defaultSystemDappParams, locator, developmentMode) {
|
|
735
|
-
super(context)
|
|
671
|
+
super(context);
|
|
672
|
+
this.defaultSystemNames = defaultSystemNames;
|
|
673
|
+
this.defaultSystemDapps = defaultSystemDapps;
|
|
674
|
+
this.defaultSystemDappParams = defaultSystemDappParams;
|
|
675
|
+
this.locator = locator;
|
|
676
|
+
this.developmentMode = developmentMode;
|
|
736
677
|
}
|
|
737
678
|
/**
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
679
|
+
* Add a callback to listen for errors throwing during system dapp registration
|
|
680
|
+
* @param {ErrorListener} errorListener
|
|
681
|
+
*/
|
|
741
682
|
addErrorListener(errorListener) {
|
|
742
683
|
this.onErrorCallbacks.push(errorListener);
|
|
743
684
|
}
|
|
744
685
|
/**
|
|
745
|
-
|
|
746
|
-
|
|
686
|
+
* Installs the dapps into the OS and builds the appropriate DappSet
|
|
687
|
+
*/
|
|
747
688
|
async install() {
|
|
748
689
|
await this.insertPayloads();
|
|
749
690
|
return await this.latestSets();
|
|
@@ -767,13 +708,9 @@ var ManageSystemDapps = class extends OsCallerBase {
|
|
|
767
708
|
console.error(`${systemDappPayload.version} does not appear to be a valid semver value`, e);
|
|
768
709
|
continue;
|
|
769
710
|
}
|
|
770
|
-
const [existing] = await archivist.get([
|
|
771
|
-
await PayloadBuilder3.dataHash(systemDappPayload)
|
|
772
|
-
]);
|
|
711
|
+
const [existing] = await archivist.get([await PayloadBuilder3.dataHash(systemDappPayload)]);
|
|
773
712
|
if (existing) continue;
|
|
774
|
-
await archivist.insert([
|
|
775
|
-
systemDappPayload
|
|
776
|
-
]);
|
|
713
|
+
await archivist.insert([systemDappPayload]);
|
|
777
714
|
}
|
|
778
715
|
return true;
|
|
779
716
|
} catch (e) {
|
|
@@ -832,16 +769,14 @@ import { DappWalletSeedPhraseSchema } from "@xyo-network/os-model";
|
|
|
832
769
|
import { HDWallet } from "@xyo-network/wallet";
|
|
833
770
|
import { v4 as uuid2 } from "uuid";
|
|
834
771
|
var DappSeedPhraseRepository = class extends OsCallerBase {
|
|
835
|
-
static {
|
|
836
|
-
__name(this, "DappSeedPhraseRepository");
|
|
837
|
-
}
|
|
838
772
|
allowedNames;
|
|
839
773
|
// record of all dapps that have requested a seed phrase with the OS
|
|
840
774
|
dappIdRepository = /* @__PURE__ */ new Map();
|
|
841
775
|
// record of all walletIds that have been issued to registered dapps
|
|
842
776
|
walletIdRepository = /* @__PURE__ */ new Map();
|
|
843
777
|
constructor(xyOs, allowedNames) {
|
|
844
|
-
super(xyOs)
|
|
778
|
+
super(xyOs);
|
|
779
|
+
this.allowedNames = allowedNames;
|
|
845
780
|
}
|
|
846
781
|
async add(dappId) {
|
|
847
782
|
const archivist = await this.getDappsArchivist();
|
|
@@ -853,9 +788,7 @@ var DappSeedPhraseRepository = class extends OsCallerBase {
|
|
|
853
788
|
seedPhrase,
|
|
854
789
|
walletId
|
|
855
790
|
};
|
|
856
|
-
await archivist.insert([
|
|
857
|
-
payload
|
|
858
|
-
]);
|
|
791
|
+
await archivist.insert([payload]);
|
|
859
792
|
this.dappIdRepository.set(dappId, payload);
|
|
860
793
|
this.walletIdRepository.set(walletId, payload);
|
|
861
794
|
return walletId;
|
|
@@ -887,13 +820,9 @@ var DappSeedPhraseRepository = class extends OsCallerBase {
|
|
|
887
820
|
limit: 1,
|
|
888
821
|
order: "desc",
|
|
889
822
|
schema: PayloadDivinerQuerySchema3,
|
|
890
|
-
schemas: [
|
|
891
|
-
DappWalletSeedPhraseSchema
|
|
892
|
-
]
|
|
823
|
+
schemas: [DappWalletSeedPhraseSchema]
|
|
893
824
|
};
|
|
894
|
-
const results = await diviner.divine([
|
|
895
|
-
query
|
|
896
|
-
]);
|
|
825
|
+
const results = await diviner.divine([query]);
|
|
897
826
|
return results.length > 0 ? results[0] : void 0;
|
|
898
827
|
}
|
|
899
828
|
async checkWalletId(walletId) {
|
|
@@ -902,14 +831,10 @@ var DappSeedPhraseRepository = class extends OsCallerBase {
|
|
|
902
831
|
limit: 1,
|
|
903
832
|
order: "desc",
|
|
904
833
|
schema: PayloadDivinerQuerySchema3,
|
|
905
|
-
schemas: [
|
|
906
|
-
DappWalletSeedPhraseSchema
|
|
907
|
-
],
|
|
834
|
+
schemas: [DappWalletSeedPhraseSchema],
|
|
908
835
|
walletId
|
|
909
836
|
};
|
|
910
|
-
const results = await diviner.divine([
|
|
911
|
-
query
|
|
912
|
-
]);
|
|
837
|
+
const results = await diviner.divine([query]);
|
|
913
838
|
return results.length > 0 ? results[0] : void 0;
|
|
914
839
|
}
|
|
915
840
|
newPhrase() {
|
|
@@ -967,9 +892,6 @@ import { BaseEmitter as BaseEmitter2 } from "@xylabs/events";
|
|
|
967
892
|
import { ModuleFactoryLocator as ModuleFactoryLocator2 } from "@xyo-network/module-factory-locator";
|
|
968
893
|
import { Mutex as Mutex2 } from "async-mutex";
|
|
969
894
|
var XyOsContextBase = class extends BaseEmitter2 {
|
|
970
|
-
static {
|
|
971
|
-
__name(this, "XyOsContextBase");
|
|
972
|
-
}
|
|
973
895
|
_bootMutex = new Mutex2();
|
|
974
896
|
_platformLocator;
|
|
975
897
|
_root;
|
|
@@ -1053,15 +975,10 @@ var XyOsContextBase = class extends BaseEmitter2 {
|
|
|
1053
975
|
|
|
1054
976
|
// src/XyOsDapp.ts
|
|
1055
977
|
var XyOsDapp = class extends XyOsContextBase {
|
|
1056
|
-
static {
|
|
1057
|
-
__name(this, "XyOsDapp");
|
|
1058
|
-
}
|
|
1059
978
|
dapp;
|
|
1060
979
|
constructor(params) {
|
|
1061
980
|
super(params);
|
|
1062
|
-
this.dapp = {
|
|
1063
|
-
...params.dapp
|
|
1064
|
-
};
|
|
981
|
+
this.dapp = { ...params.dapp };
|
|
1065
982
|
}
|
|
1066
983
|
get eventBus() {
|
|
1067
984
|
return this.parent.eventBus;
|
|
@@ -1073,12 +990,12 @@ var XyOsDapp = class extends XyOsContextBase {
|
|
|
1073
990
|
return this.parent.exposedNodeOuter;
|
|
1074
991
|
}
|
|
1075
992
|
/**
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
993
|
+
* @deprecated Dapps should not have access to the bios. This is done for the
|
|
994
|
+
* settings dapp, but should be refactored out. Bios could possibly be an
|
|
995
|
+
* optional property of the parent context passed in for dapps that require
|
|
996
|
+
* elevated permissions.
|
|
997
|
+
* ^^^ I believe we may want this here in that is a dApp requests access to the bios it will optionally be there
|
|
998
|
+
*/
|
|
1082
999
|
get kernel() {
|
|
1083
1000
|
return assertEx6(this.parent.kernel, () => "Missing kernel");
|
|
1084
1001
|
}
|
|
@@ -1097,17 +1014,15 @@ var XyOsDapp = class extends XyOsContextBase {
|
|
|
1097
1014
|
assertEx6(this._root === void 0, () => "Dapp already booted");
|
|
1098
1015
|
const finalLocator = locator ? (this.params.locator ?? new ModuleFactoryLocator3()).merge(locator) : this.params.locator ?? new ModuleFactoryLocator3();
|
|
1099
1016
|
console.log("XyOsDapp:boot:finalLocator", finalLocator);
|
|
1100
|
-
const dappNodesWrapper = new ManifestWrapper2({
|
|
1101
|
-
...this.manifest,
|
|
1102
|
-
schema: DappPackageManifestPayloadSchema
|
|
1103
|
-
}, wallet, finalLocator);
|
|
1017
|
+
const dappNodesWrapper = new ManifestWrapper2({ ...this.manifest, schema: DappPackageManifestPayloadSchema }, wallet, finalLocator);
|
|
1104
1018
|
const dappNodes = await dappNodesWrapper.loadNodes();
|
|
1105
1019
|
const dappManifestWallet = await wallet.derivePath("99999");
|
|
1106
1020
|
dapp_window_manifest_default.nodes[0].config.name = this.dapp.name + "Root";
|
|
1107
|
-
const wrapper = new ManifestWrapper2(
|
|
1108
|
-
...dapp_window_manifest_default,
|
|
1109
|
-
|
|
1110
|
-
|
|
1021
|
+
const wrapper = new ManifestWrapper2(
|
|
1022
|
+
{ ...dapp_window_manifest_default, schema: DappPackageManifestPayloadSchema },
|
|
1023
|
+
dappManifestWallet,
|
|
1024
|
+
finalLocator
|
|
1025
|
+
);
|
|
1111
1026
|
const node = await wrapper.loadNodeFromIndex(0);
|
|
1112
1027
|
for (const dappNode of dappNodes) {
|
|
1113
1028
|
await node.register(dappNode);
|
|
@@ -1124,7 +1039,11 @@ var XyOsDapp = class extends XyOsContextBase {
|
|
|
1124
1039
|
};
|
|
1125
1040
|
|
|
1126
1041
|
// src/registration/DappRegistry.ts
|
|
1127
|
-
import {
|
|
1042
|
+
import {
|
|
1043
|
+
DappRegisteredSchema,
|
|
1044
|
+
DappRegisteredState,
|
|
1045
|
+
isRegisteredDappAccess
|
|
1046
|
+
} from "@xyo-network/os-model";
|
|
1128
1047
|
import { HDWallet as HDWallet3 } from "@xyo-network/wallet";
|
|
1129
1048
|
|
|
1130
1049
|
// src/registration/ValidateDappAccessDiviner/Config.ts
|
|
@@ -1137,23 +1056,20 @@ var ValidateDappAccessDivinerConfigSchema = "network.xyo.os.dapp.access.registra
|
|
|
1137
1056
|
import { AbstractDiviner } from "@xyo-network/diviner-abstract";
|
|
1138
1057
|
import { ManifestWrapper as ManifestWrapper3, PackageManifestPayloadSchema } from "@xyo-network/manifest";
|
|
1139
1058
|
import { ModuleFactoryLocator as ModuleFactoryLocator4 } from "@xyo-network/module-factory-locator";
|
|
1140
|
-
import {
|
|
1059
|
+
import {
|
|
1060
|
+
isDappPackageManifestPayload,
|
|
1061
|
+
isUnregisteredDappAccess,
|
|
1062
|
+
RegisteredDappAccessSchema
|
|
1063
|
+
} from "@xyo-network/os-model";
|
|
1141
1064
|
import { HDWallet as HDWallet2 } from "@xyo-network/wallet";
|
|
1142
1065
|
|
|
1143
1066
|
// src/models/access/ValidDappAccessInterfaces.ts
|
|
1144
1067
|
import { RegisteredNames, RegisteredNamesInterface } from "@xyo-network/os-model";
|
|
1145
|
-
var ValidDappAccessInterfaces = {
|
|
1146
|
-
[RegisteredNames]: RegisteredNamesInterface
|
|
1147
|
-
};
|
|
1068
|
+
var ValidDappAccessInterfaces = { [RegisteredNames]: RegisteredNamesInterface };
|
|
1148
1069
|
|
|
1149
1070
|
// src/registration/ValidateDappAccessDiviner/Diviner.ts
|
|
1150
1071
|
var ValidateDappAccessDiviner = class extends AbstractDiviner {
|
|
1151
|
-
static
|
|
1152
|
-
__name(this, "ValidateDappAccessDiviner");
|
|
1153
|
-
}
|
|
1154
|
-
static configSchemas = [
|
|
1155
|
-
ValidateDappAccessDivinerConfigSchema
|
|
1156
|
-
];
|
|
1072
|
+
static configSchemas = [ValidateDappAccessDivinerConfigSchema];
|
|
1157
1073
|
async divineHandler(payloads) {
|
|
1158
1074
|
const dappManifest = payloads?.filter(isDappPackageManifestPayload);
|
|
1159
1075
|
const accessors = payloads?.filter(isUnregisteredDappAccess);
|
|
@@ -1195,33 +1111,32 @@ var ValidateDappAccessDiviner = class extends AbstractDiviner {
|
|
|
1195
1111
|
}
|
|
1196
1112
|
}
|
|
1197
1113
|
} catch (e) {
|
|
1198
|
-
failedAccessors.push(
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1114
|
+
failedAccessors.push(
|
|
1115
|
+
{
|
|
1116
|
+
accessor: access,
|
|
1117
|
+
errorMessage: e.message,
|
|
1118
|
+
schema: FailedAccessorSchema
|
|
1119
|
+
}
|
|
1120
|
+
);
|
|
1203
1121
|
}
|
|
1204
1122
|
}
|
|
1205
|
-
return [
|
|
1206
|
-
...registeredAccessors,
|
|
1207
|
-
...failedAccessors
|
|
1208
|
-
];
|
|
1123
|
+
return [...registeredAccessors, ...failedAccessors];
|
|
1209
1124
|
}
|
|
1210
1125
|
};
|
|
1211
|
-
var compareChildren =
|
|
1126
|
+
var compareChildren = (interfaceChildren, dappChildren) => {
|
|
1212
1127
|
return interfaceChildren.every((interfaceChild) => Object.values(interfaceChild).every((interfaceChildName) => dappChildren.some((dappChild) => Object.values(dappChild).includes(interfaceChildName))));
|
|
1213
|
-
}
|
|
1214
|
-
var dappPackageManifestToPackageManifest =
|
|
1128
|
+
};
|
|
1129
|
+
var dappPackageManifestToPackageManifest = (dappPackageManifest) => {
|
|
1215
1130
|
return {
|
|
1216
1131
|
...dappPackageManifest,
|
|
1217
1132
|
schema: PackageManifestPayloadSchema
|
|
1218
1133
|
};
|
|
1219
|
-
}
|
|
1220
|
-
var getChildrenFromNode =
|
|
1134
|
+
};
|
|
1135
|
+
var getChildrenFromNode = async (node) => {
|
|
1221
1136
|
const nodeManifest = (await node.state())?.[0];
|
|
1222
1137
|
return nodeManifest.status?.children;
|
|
1223
|
-
}
|
|
1224
|
-
var getNodeChildren =
|
|
1138
|
+
};
|
|
1139
|
+
var getNodeChildren = async (manifestToTest, dappParams) => {
|
|
1225
1140
|
const testNodes = await getNodeToTest(manifestToTest, dappParams);
|
|
1226
1141
|
const children = [];
|
|
1227
1142
|
for (const node of testNodes) {
|
|
@@ -1231,31 +1146,36 @@ var getNodeChildren = /* @__PURE__ */ __name(async (manifestToTest, dappParams)
|
|
|
1231
1146
|
}
|
|
1232
1147
|
}
|
|
1233
1148
|
return children;
|
|
1234
|
-
}
|
|
1235
|
-
var getNodeToTest =
|
|
1149
|
+
};
|
|
1150
|
+
var getNodeToTest = async (manifestToTest, dappParams) => {
|
|
1236
1151
|
const dappManifestWrapper = new ManifestWrapper3(manifestToTest, await HDWallet2.random(), dappParams.locator ?? new ModuleFactoryLocator4());
|
|
1237
1152
|
return await dappManifestWrapper.loadNodes();
|
|
1238
|
-
}
|
|
1153
|
+
};
|
|
1239
1154
|
|
|
1240
1155
|
// src/registration/DappRegistry.ts
|
|
1241
1156
|
var DappRegistry = class {
|
|
1242
|
-
static {
|
|
1243
|
-
__name(this, "DappRegistry");
|
|
1244
|
-
}
|
|
1245
|
-
dappSeedPhraseRepository;
|
|
1246
1157
|
dappRegistry = /* @__PURE__ */ new Map();
|
|
1158
|
+
dappSeedPhraseRepository;
|
|
1247
1159
|
constructor(dappSeedPhraseRepository) {
|
|
1248
1160
|
this.dappSeedPhraseRepository = dappSeedPhraseRepository;
|
|
1249
1161
|
}
|
|
1250
1162
|
/**
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1163
|
+
* Register a Dapp with window manager and if successful, return its id
|
|
1164
|
+
*
|
|
1165
|
+
* @param {UnregisteredDapp} dapp Manifest and UI of the Dapp to register
|
|
1166
|
+
* @returns {RegisteredDapp} dapp with registration fields
|
|
1167
|
+
**/
|
|
1256
1168
|
async registerDapp(dapp) {
|
|
1257
1169
|
if (dapp) {
|
|
1258
|
-
const {
|
|
1170
|
+
const {
|
|
1171
|
+
exposedModuleIds,
|
|
1172
|
+
manifest,
|
|
1173
|
+
modes,
|
|
1174
|
+
name,
|
|
1175
|
+
version,
|
|
1176
|
+
params,
|
|
1177
|
+
widgetConfigs
|
|
1178
|
+
} = this.extractDappProperties(dapp);
|
|
1259
1179
|
try {
|
|
1260
1180
|
const walletId = await this.dappSeedPhraseRepository.findOrCreate(name);
|
|
1261
1181
|
const registeredAccessors = await this.validateDappAccessPayloads(manifest, dapp.accessors, params);
|
|
@@ -1290,16 +1210,27 @@ var DappRegistry = class {
|
|
|
1290
1210
|
}
|
|
1291
1211
|
}
|
|
1292
1212
|
/**
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1213
|
+
* Unregister a dapp so it can no longer be launched
|
|
1214
|
+
*
|
|
1215
|
+
* @param dappId
|
|
1216
|
+
*/
|
|
1297
1217
|
unregisterDapp(dappId) {
|
|
1298
1218
|
this.dappRegistry.delete(dappId);
|
|
1299
1219
|
}
|
|
1300
1220
|
extractDappProperties(dapp) {
|
|
1301
|
-
const {
|
|
1302
|
-
|
|
1221
|
+
const {
|
|
1222
|
+
params,
|
|
1223
|
+
config,
|
|
1224
|
+
widgetConfigs
|
|
1225
|
+
} = dapp;
|
|
1226
|
+
const {
|
|
1227
|
+
exposedModuleIds,
|
|
1228
|
+
manifest,
|
|
1229
|
+
modes,
|
|
1230
|
+
name,
|
|
1231
|
+
sources,
|
|
1232
|
+
version
|
|
1233
|
+
} = config;
|
|
1303
1234
|
return {
|
|
1304
1235
|
exposedModuleIds,
|
|
1305
1236
|
manifest,
|
|
@@ -1314,15 +1245,10 @@ var DappRegistry = class {
|
|
|
1314
1245
|
async validateDappAccessPayloads(manifest, accessors = [], params) {
|
|
1315
1246
|
const validateDappAccess = await ValidateDappAccessDiviner.create({
|
|
1316
1247
|
account: await HDWallet3.random(),
|
|
1317
|
-
config: {
|
|
1318
|
-
schema: ValidateDappAccessDivinerConfigSchema
|
|
1319
|
-
},
|
|
1248
|
+
config: { schema: ValidateDappAccessDivinerConfigSchema },
|
|
1320
1249
|
dappParams: params
|
|
1321
1250
|
});
|
|
1322
|
-
const payloads = await validateDappAccess.divine([
|
|
1323
|
-
manifest,
|
|
1324
|
-
...accessors
|
|
1325
|
-
]);
|
|
1251
|
+
const payloads = await validateDappAccess.divine([manifest, ...accessors]);
|
|
1326
1252
|
const failedAccessors = payloads.filter(isFailedAccessor);
|
|
1327
1253
|
const registeredAccessors = payloads.filter(isRegisteredDappAccess);
|
|
1328
1254
|
if (failedAccessors.length > 0) {
|
|
@@ -1334,13 +1260,6 @@ var DappRegistry = class {
|
|
|
1334
1260
|
|
|
1335
1261
|
// src/registration/DappRegistrationService.ts
|
|
1336
1262
|
var DappRegistrationService = class {
|
|
1337
|
-
static {
|
|
1338
|
-
__name(this, "DappRegistrationService");
|
|
1339
|
-
}
|
|
1340
|
-
context;
|
|
1341
|
-
params;
|
|
1342
|
-
locator;
|
|
1343
|
-
developmentMode;
|
|
1344
1263
|
// Dapps that have been built with their own context
|
|
1345
1264
|
builtDapps = {};
|
|
1346
1265
|
dappRegistry;
|
|
@@ -1352,28 +1271,36 @@ var DappRegistrationService = class {
|
|
|
1352
1271
|
registeredDappSets = /* @__PURE__ */ new Set();
|
|
1353
1272
|
// Dapps that have been registered with exposeDappRequests
|
|
1354
1273
|
registeredExposedDappSets = /* @__PURE__ */ new Set();
|
|
1274
|
+
context;
|
|
1355
1275
|
dappAccessRequestConnection = dappAccessRequestConnection();
|
|
1276
|
+
developmentMode;
|
|
1356
1277
|
exposeDappRequestConnection = exposeDappRequestConnection();
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
dappPayloads: []
|
|
1361
|
-
}, locator = new ModuleFactoryLocator5(), developmentMode) {
|
|
1278
|
+
locator;
|
|
1279
|
+
params;
|
|
1280
|
+
constructor(context, params, locator = new ModuleFactoryLocator5(), developmentMode) {
|
|
1362
1281
|
this.context = context;
|
|
1363
|
-
this.params = params
|
|
1282
|
+
this.params = params ?? {
|
|
1283
|
+
dappNames: [],
|
|
1284
|
+
dappParams: {},
|
|
1285
|
+
dappPayloads: []
|
|
1286
|
+
};
|
|
1364
1287
|
this.locator = locator;
|
|
1365
1288
|
this.developmentMode = developmentMode;
|
|
1366
|
-
this.manageSystemDapps = new ManageSystemDapps(
|
|
1289
|
+
this.manageSystemDapps = new ManageSystemDapps(
|
|
1290
|
+
context,
|
|
1291
|
+
this.params?.dappNames ?? [],
|
|
1292
|
+
this.params?.dappPayloads ?? [],
|
|
1293
|
+
this.params?.dappParams ?? {},
|
|
1294
|
+
this.locator,
|
|
1295
|
+
this.developmentMode
|
|
1296
|
+
);
|
|
1367
1297
|
this.dappSeedPhraseRepository = new DappSeedPhraseRepository(context, this.params?.dappNames ?? []);
|
|
1368
1298
|
this.dappRegistry = new DappRegistry(this.dappSeedPhraseRepository);
|
|
1369
1299
|
this.addConnectionRequests();
|
|
1370
1300
|
}
|
|
1371
1301
|
async buildDapp(manifest, dappId = NameTransforms.slug(manifest.nodes[0]?.config.name), name = NameTransforms.moduleName(manifest.nodes[0]?.config.name)) {
|
|
1372
1302
|
const dapp = new XyOsDapp({
|
|
1373
|
-
dapp: {
|
|
1374
|
-
id: dappId,
|
|
1375
|
-
name
|
|
1376
|
-
},
|
|
1303
|
+
dapp: { id: dappId, name },
|
|
1377
1304
|
locator: this.locator,
|
|
1378
1305
|
manifest,
|
|
1379
1306
|
parent: this.context,
|
|
@@ -1386,43 +1313,37 @@ var DappRegistrationService = class {
|
|
|
1386
1313
|
return this.params?.dappParams[dappId];
|
|
1387
1314
|
}
|
|
1388
1315
|
async start() {
|
|
1389
|
-
const systemDapps = await this.context.monitor(async () => await this.manageSystemDapps.install(), {
|
|
1390
|
-
name: "Install System dApps"
|
|
1391
|
-
});
|
|
1316
|
+
const systemDapps = await this.context.monitor(async () => await this.manageSystemDapps.install(), { name: "Install System dApps" });
|
|
1392
1317
|
const activeDapps = systemDapps.filter(({ dapp }) => dapp.icon.active === true);
|
|
1393
|
-
const results = await Promise.allSettled(
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
dapp: registeredDapp,
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
}));
|
|
1318
|
+
const results = await Promise.allSettled(
|
|
1319
|
+
activeDapps.map(async (dappSet) => {
|
|
1320
|
+
const { dapp } = dappSet;
|
|
1321
|
+
const registeredDapp = await this.dappRegistry.registerDapp(dapp);
|
|
1322
|
+
const result = { dapp: registeredDapp, dappIcon: dapp.icon };
|
|
1323
|
+
const forgetHandlers = async () => {
|
|
1324
|
+
try {
|
|
1325
|
+
await this.postRegistrationHandlers(result);
|
|
1326
|
+
} catch (e) {
|
|
1327
|
+
console.error("Error in post registration handlers", e);
|
|
1328
|
+
}
|
|
1329
|
+
};
|
|
1330
|
+
forget2(forgetHandlers());
|
|
1331
|
+
return result;
|
|
1332
|
+
})
|
|
1333
|
+
);
|
|
1410
1334
|
const failed = results.filter(rejected).map((result) => result.reason);
|
|
1411
1335
|
const succeeded = results.filter(fulfilled).map((result) => result.value);
|
|
1412
1336
|
for (const registeredDapp of succeeded) this.registeredDappSets.add(registeredDapp);
|
|
1413
|
-
return {
|
|
1414
|
-
failed,
|
|
1415
|
-
succeeded
|
|
1416
|
-
};
|
|
1337
|
+
return { failed, succeeded };
|
|
1417
1338
|
}
|
|
1418
1339
|
addConnectionRequests() {
|
|
1419
1340
|
this.context.eventBus.addConnection(this.dappAccessRequestConnection);
|
|
1420
1341
|
this.context.eventBus.addConnection(this.exposeDappRequestConnection);
|
|
1421
1342
|
}
|
|
1422
1343
|
/**
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1344
|
+
* A method to get the user property from context and eventually modify it before handing it to a dapp
|
|
1345
|
+
* i.e. curating user-approved signers
|
|
1346
|
+
*/
|
|
1426
1347
|
getUser() {
|
|
1427
1348
|
return this.context.user;
|
|
1428
1349
|
}
|
|
@@ -1430,19 +1351,17 @@ var DappRegistrationService = class {
|
|
|
1430
1351
|
if (registeredDapp.dapp) {
|
|
1431
1352
|
if (isRegisteredDappExposedDappSet(registeredDapp)) {
|
|
1432
1353
|
this.registeredExposedDappSets.add(registeredDapp);
|
|
1433
|
-
const exposeIntent = DappIntentCaller.buildIntent(
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
});
|
|
1354
|
+
const exposeIntent = DappIntentCaller.buildIntent(
|
|
1355
|
+
DappIntentCaller.OsDappName,
|
|
1356
|
+
DappIntentTypes.Launch,
|
|
1357
|
+
registeredDapp.dapp.config.name,
|
|
1358
|
+
DappMode2.Exposed
|
|
1359
|
+
);
|
|
1360
|
+
await this.exposeDappRequestConnection.emit(ExposeDappRequestEvent, { payloads: [registeredDapp.dapp.config, exposeIntent] });
|
|
1440
1361
|
}
|
|
1441
1362
|
if (isRegisteredDappAccessDappSet(registeredDapp)) {
|
|
1442
1363
|
this.registeredAccessDappSets.add(registeredDapp);
|
|
1443
|
-
await this.dappAccessRequestConnection.emit(DappAccessRequestEvent, {
|
|
1444
|
-
payloads: registeredDapp.dapp.accessors
|
|
1445
|
-
});
|
|
1364
|
+
await this.dappAccessRequestConnection.emit(DappAccessRequestEvent, { payloads: registeredDapp.dapp.accessors });
|
|
1446
1365
|
}
|
|
1447
1366
|
}
|
|
1448
1367
|
}
|
|
@@ -1452,9 +1371,6 @@ var DappRegistrationService = class {
|
|
|
1452
1371
|
import { assertEx as assertEx7 } from "@xylabs/assert";
|
|
1453
1372
|
import { HDWallet as HDWallet4 } from "@xyo-network/wallet";
|
|
1454
1373
|
var Signers = class {
|
|
1455
|
-
static {
|
|
1456
|
-
__name(this, "Signers");
|
|
1457
|
-
}
|
|
1458
1374
|
_paths;
|
|
1459
1375
|
_signerAccounts;
|
|
1460
1376
|
_walletStore;
|
|
@@ -1506,9 +1422,6 @@ import { forget as forget3 } from "@xylabs/forget";
|
|
|
1506
1422
|
import { isModuleInstance } from "@xyo-network/module-model";
|
|
1507
1423
|
import { asAttachableNodeInstance } from "@xyo-network/node-model";
|
|
1508
1424
|
var StackBase = class extends BaseEmitter3 {
|
|
1509
|
-
static {
|
|
1510
|
-
__name(this, "StackBase");
|
|
1511
|
-
}
|
|
1512
1425
|
// flag to check that all adapters are initialized
|
|
1513
1426
|
initialized = false;
|
|
1514
1427
|
// adapters to initialize into the stack
|
|
@@ -1543,95 +1456,84 @@ var StackBase = class extends BaseEmitter3 {
|
|
|
1543
1456
|
initialize() {
|
|
1544
1457
|
this.assignStack();
|
|
1545
1458
|
for (const adapter of this.adapterSet) {
|
|
1546
|
-
const driverReadyListener =
|
|
1459
|
+
const driverReadyListener = async ({ node }) => await this.handleDriverReady(node);
|
|
1547
1460
|
adapter.on("driverReady", driverReadyListener);
|
|
1548
1461
|
this.listeners.push({
|
|
1549
1462
|
adapter,
|
|
1550
1463
|
eventName: "driverReady",
|
|
1551
1464
|
listener: driverReadyListener
|
|
1552
1465
|
});
|
|
1553
|
-
const driverErrorListener =
|
|
1466
|
+
const driverErrorListener = async ({ error }) => {
|
|
1554
1467
|
console.error(`Error updating ${this.stackNodeModuleId} stack node`, error);
|
|
1555
|
-
await this.emit("driverError", {
|
|
1556
|
-
|
|
1557
|
-
});
|
|
1558
|
-
}, "driverErrorListener");
|
|
1468
|
+
await this.emit("driverError", { error });
|
|
1469
|
+
};
|
|
1559
1470
|
adapter.on("driverError", driverErrorListener);
|
|
1560
1471
|
this.listeners.push({
|
|
1561
1472
|
adapter,
|
|
1562
1473
|
eventName: "driverError",
|
|
1563
1474
|
listener: driverErrorListener
|
|
1564
1475
|
});
|
|
1565
|
-
const startAdapter =
|
|
1476
|
+
const startAdapter = async () => await adapter.start();
|
|
1566
1477
|
forget3(startAdapter());
|
|
1567
1478
|
}
|
|
1568
1479
|
}
|
|
1569
1480
|
/**
|
|
1570
|
-
|
|
1571
|
-
|
|
1481
|
+
* Stops the stack
|
|
1482
|
+
*/
|
|
1572
1483
|
stop() {
|
|
1573
|
-
for (const {
|
|
1484
|
+
for (const {
|
|
1485
|
+
eventName,
|
|
1486
|
+
listener,
|
|
1487
|
+
adapter
|
|
1488
|
+
} of this.listeners) {
|
|
1574
1489
|
adapter.off(eventName, listener);
|
|
1575
1490
|
}
|
|
1576
1491
|
}
|
|
1577
1492
|
/**
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1493
|
+
* Adds a node to the stack. Idempotent to avoid adding the
|
|
1494
|
+
* same node multiple times
|
|
1495
|
+
* @param node The node to add to the stack
|
|
1496
|
+
* @returns
|
|
1497
|
+
*/
|
|
1583
1498
|
async addNodeToStackNode(node) {
|
|
1584
1499
|
const stackNode = await this.getStackNode();
|
|
1585
|
-
const existingModule = await stackNode.resolve(node.address, {
|
|
1586
|
-
direction: "down"
|
|
1587
|
-
});
|
|
1500
|
+
const existingModule = await stackNode.resolve(node.address, { direction: "down" });
|
|
1588
1501
|
if (isModuleInstance(existingModule)) return;
|
|
1589
1502
|
await stackNode.register?.(node);
|
|
1590
1503
|
await stackNode.attach?.(node.address, true);
|
|
1591
1504
|
}
|
|
1592
1505
|
assignStack() {
|
|
1593
|
-
const assign =
|
|
1506
|
+
const assign = async () => {
|
|
1594
1507
|
const stackNode = await this.getStackNode();
|
|
1595
1508
|
this._stack = stackNode;
|
|
1596
|
-
}
|
|
1509
|
+
};
|
|
1597
1510
|
forget3(assign());
|
|
1598
1511
|
}
|
|
1599
1512
|
async getStackNode() {
|
|
1600
1513
|
const mod = assertEx8(await this.context.root.resolve(this.stackNodeModuleId), () => `${this.stackNodeModuleId} not found`);
|
|
1601
|
-
return asAttachableNodeInstance(mod, () => `${this.stackNodeModuleId} not a NodeInstance`, {
|
|
1602
|
-
required: true
|
|
1603
|
-
});
|
|
1514
|
+
return asAttachableNodeInstance(mod, () => `${this.stackNodeModuleId} not a NodeInstance`, { required: true });
|
|
1604
1515
|
}
|
|
1605
1516
|
async handleDriverReady(node) {
|
|
1606
1517
|
try {
|
|
1607
|
-
await this.emit("driverReady", {
|
|
1608
|
-
node
|
|
1609
|
-
});
|
|
1518
|
+
await this.emit("driverReady", { node });
|
|
1610
1519
|
await this.addNodeToStackNode(node);
|
|
1611
1520
|
await this.updateInitializationState(node);
|
|
1612
1521
|
} catch (error) {
|
|
1613
1522
|
console.error(`Error updating ${this.stackNodeModuleId} stack node`, node.id, error);
|
|
1614
|
-
await this.emit("stackError", {
|
|
1615
|
-
error
|
|
1616
|
-
});
|
|
1523
|
+
await this.emit("stackError", { error });
|
|
1617
1524
|
}
|
|
1618
1525
|
}
|
|
1619
1526
|
async updateInitializationState(node) {
|
|
1620
1527
|
this.initializedNodes.push(node);
|
|
1621
1528
|
this.initialized = this.adapterSet.every((n) => n.initialized);
|
|
1622
1529
|
if (this.initialized) {
|
|
1623
|
-
await this.emit("initialized", {
|
|
1624
|
-
stack: await this.getStackNode()
|
|
1625
|
-
});
|
|
1530
|
+
await this.emit("initialized", { stack: await this.getStackNode() });
|
|
1626
1531
|
}
|
|
1627
1532
|
}
|
|
1628
1533
|
};
|
|
1629
1534
|
|
|
1630
1535
|
// src/stack/Manager.ts
|
|
1631
1536
|
var StackManager = class {
|
|
1632
|
-
static {
|
|
1633
|
-
__name(this, "StackManager");
|
|
1634
|
-
}
|
|
1635
1537
|
initializedStacksMap = /* @__PURE__ */ new Map();
|
|
1636
1538
|
stackMap;
|
|
1637
1539
|
constructor(stackMap) {
|
|
@@ -1673,30 +1575,29 @@ import { asArchivistInstance as asArchivistInstance4 } from "@xyo-network/archiv
|
|
|
1673
1575
|
import { asAttachableNodeInstance as asAttachableNodeInstance2 } from "@xyo-network/node-model";
|
|
1674
1576
|
import { v4 as uuid3 } from "uuid";
|
|
1675
1577
|
var NodeAdapterBase = class extends BaseEmitter4 {
|
|
1676
|
-
static {
|
|
1677
|
-
__name(this, "NodeAdapterBase");
|
|
1678
|
-
}
|
|
1679
|
-
kernel;
|
|
1680
|
-
driverName;
|
|
1681
1578
|
initialized = false;
|
|
1682
1579
|
_id = "";
|
|
1580
|
+
driverName;
|
|
1581
|
+
kernel;
|
|
1683
1582
|
constructor(kernel, driverName) {
|
|
1684
|
-
super({})
|
|
1583
|
+
super({});
|
|
1685
1584
|
this._id = uuid3();
|
|
1585
|
+
this.kernel = kernel;
|
|
1586
|
+
this.driverName = driverName;
|
|
1686
1587
|
}
|
|
1687
1588
|
get id() {
|
|
1688
1589
|
return assertEx9(this._id, () => "NodeAdapterBase id not initialized");
|
|
1689
1590
|
}
|
|
1690
1591
|
async start() {
|
|
1691
1592
|
try {
|
|
1692
|
-
const moduleAttachedInsertListener =
|
|
1593
|
+
const moduleAttachedInsertListener = ({ payloads }) => {
|
|
1693
1594
|
const moduleAttachedEvent = this.findModuleEventPayloads(payloads);
|
|
1694
1595
|
for (const payload of moduleAttachedEvent) {
|
|
1695
1596
|
if (payload.name === this.driverName) {
|
|
1696
1597
|
this.validateAndReturnDriver();
|
|
1697
1598
|
}
|
|
1698
1599
|
}
|
|
1699
|
-
}
|
|
1600
|
+
};
|
|
1700
1601
|
const eventsArchivist = await this.getEventsArchivist();
|
|
1701
1602
|
const weakRefInsertListener = new WeakRef(moduleAttachedInsertListener);
|
|
1702
1603
|
const insertListenerRef = weakRefInsertListener.deref();
|
|
@@ -1705,9 +1606,7 @@ var NodeAdapterBase = class extends BaseEmitter4 {
|
|
|
1705
1606
|
if (node) return node;
|
|
1706
1607
|
this.initialized = false;
|
|
1707
1608
|
} catch (error) {
|
|
1708
|
-
await this.emit("driverError", {
|
|
1709
|
-
error
|
|
1710
|
-
});
|
|
1609
|
+
await this.emit("driverError", { error });
|
|
1711
1610
|
}
|
|
1712
1611
|
}
|
|
1713
1612
|
findModuleEventPayloads(payloads) {
|
|
@@ -1718,20 +1617,14 @@ var NodeAdapterBase = class extends BaseEmitter4 {
|
|
|
1718
1617
|
}
|
|
1719
1618
|
async getEventsArchivist() {
|
|
1720
1619
|
const mod = assertEx9(await (await this.kernel.getNode()).resolve("KernelNode:ModuleEvents"), () => "KernelNode:ModuleEvents not found");
|
|
1721
|
-
return asArchivistInstance4(mod, () => `${mod.id} is not an archivist`, {
|
|
1722
|
-
required: true
|
|
1723
|
-
});
|
|
1620
|
+
return asArchivistInstance4(mod, () => `${mod.id} is not an archivist`, { required: true });
|
|
1724
1621
|
}
|
|
1725
1622
|
validateAndReturnDriver() {
|
|
1726
1623
|
const mod = this.kernel.initialized[this.driverName];
|
|
1727
1624
|
if (mod) {
|
|
1728
|
-
const node = asAttachableNodeInstance2(mod, () => `${mod.id} is not a node`, {
|
|
1729
|
-
required: true
|
|
1730
|
-
});
|
|
1625
|
+
const node = asAttachableNodeInstance2(mod, () => `${mod.id} is not a node`, { required: true });
|
|
1731
1626
|
this.initialized = true;
|
|
1732
|
-
const emit =
|
|
1733
|
-
node
|
|
1734
|
-
}), "emit");
|
|
1627
|
+
const emit = async () => await this.emit("driverReady", { node });
|
|
1735
1628
|
forget4(emit());
|
|
1736
1629
|
return node;
|
|
1737
1630
|
}
|
|
@@ -1740,9 +1633,6 @@ var NodeAdapterBase = class extends BaseEmitter4 {
|
|
|
1740
1633
|
|
|
1741
1634
|
// src/adapter/Network.ts
|
|
1742
1635
|
var NetworkAdapter = class extends NodeAdapterBase {
|
|
1743
|
-
static {
|
|
1744
|
-
__name(this, "NetworkAdapter");
|
|
1745
|
-
}
|
|
1746
1636
|
_connection;
|
|
1747
1637
|
constructor(kernel, driverName) {
|
|
1748
1638
|
super(kernel, driverName);
|
|
@@ -1763,9 +1653,6 @@ var NetworkAdapter = class extends NodeAdapterBase {
|
|
|
1763
1653
|
|
|
1764
1654
|
// src/adapter/Settings.ts
|
|
1765
1655
|
var SettingsAdapter = class extends NodeAdapterBase {
|
|
1766
|
-
static {
|
|
1767
|
-
__name(this, "SettingsAdapter");
|
|
1768
|
-
}
|
|
1769
1656
|
_settings = void 0;
|
|
1770
1657
|
constructor(kernel, driverName) {
|
|
1771
1658
|
super(kernel, driverName);
|
|
@@ -1785,31 +1672,26 @@ var SettingsAdapter = class extends NodeAdapterBase {
|
|
|
1785
1672
|
};
|
|
1786
1673
|
|
|
1787
1674
|
// src/adapters/OsPubSubBridgeNetwork.ts
|
|
1788
|
-
var OsPubSubBridgeNetworkAdapters =
|
|
1675
|
+
var OsPubSubBridgeNetworkAdapters = (kernel) => [
|
|
1789
1676
|
new NetworkAdapter(kernel, PubSubBridgeNodeNodeName),
|
|
1790
1677
|
new NetworkAdapter(kernel, ExposedNodeOuterNodeName)
|
|
1791
|
-
]
|
|
1678
|
+
];
|
|
1792
1679
|
|
|
1793
1680
|
// src/adapters/OsSettings.ts
|
|
1794
1681
|
import { OsSettingsNodeName } from "@xyo-network/os-model";
|
|
1795
|
-
var OsSettingsAdapters =
|
|
1796
|
-
new SettingsAdapter(kernel, OsSettingsNodeName)
|
|
1797
|
-
], "OsSettingsAdapters");
|
|
1682
|
+
var OsSettingsAdapters = (kernel) => [new SettingsAdapter(kernel, OsSettingsNodeName)];
|
|
1798
1683
|
|
|
1799
1684
|
// src/adapters/OsXyoPublicNetwork.ts
|
|
1800
1685
|
import { XyoPublicNodeName } from "@xyo-network/os-model";
|
|
1801
|
-
var OsXyoPublicNetworkAdapters =
|
|
1686
|
+
var OsXyoPublicNetworkAdapters = (kernel) => [
|
|
1802
1687
|
new NetworkAdapter(kernel, XyoPublicNodeName)
|
|
1803
|
-
]
|
|
1688
|
+
];
|
|
1804
1689
|
|
|
1805
1690
|
// src/stack/OsPubSubNetworkStack.ts
|
|
1806
1691
|
import { assertEx as assertEx10 } from "@xylabs/assert";
|
|
1807
1692
|
import { asAttachableNodeInstance as asAttachableNodeInstance3, asNodeInstance } from "@xyo-network/node-model";
|
|
1808
1693
|
import { ExposedNodeOuterNodeName as ExposedNodeOuterNodeName2, PubSubBridgeNodeNodeName as PubSubBridgeNodeNodeName2 } from "@xyo-network/os-model";
|
|
1809
1694
|
var OsPubSubNetworkStack = class extends StackBase {
|
|
1810
|
-
static {
|
|
1811
|
-
__name(this, "OsPubSubNetworkStack");
|
|
1812
|
-
}
|
|
1813
1695
|
_exposedNode;
|
|
1814
1696
|
_exposedNodeOuter;
|
|
1815
1697
|
busConnection = osPubSubNetworkReadyConnection();
|
|
@@ -1852,15 +1734,13 @@ var OsPubSubNetworkStack = class extends StackBase {
|
|
|
1852
1734
|
super.stop();
|
|
1853
1735
|
this._exposedNode = void 0;
|
|
1854
1736
|
this._exposedNodeOuter = void 0;
|
|
1855
|
-
if (this.busConnection._id)
|
|
1737
|
+
if (this.busConnection._id)
|
|
1738
|
+
this.context.eventBus.removeConnection(this.busConnection.id);
|
|
1856
1739
|
}
|
|
1857
1740
|
};
|
|
1858
1741
|
|
|
1859
1742
|
// src/stack/OsSettingsStack.ts
|
|
1860
1743
|
var OsSettingsStack = class extends StackBase {
|
|
1861
|
-
static {
|
|
1862
|
-
__name(this, "OsSettingsStack");
|
|
1863
|
-
}
|
|
1864
1744
|
busConnection = osSettingsReadyConnection();
|
|
1865
1745
|
constructor(context, adapters) {
|
|
1866
1746
|
super(context, adapters, "OsSettingsStackNode");
|
|
@@ -1878,9 +1758,6 @@ var OsSettingsStack = class extends StackBase {
|
|
|
1878
1758
|
// src/stack/XyoPublicNetworkStack.ts
|
|
1879
1759
|
import { XyoPublicNodeName as XyoPublicNodeName2 } from "@xyo-network/os-model";
|
|
1880
1760
|
var XyoPublicNetworkStack = class extends StackBase {
|
|
1881
|
-
static {
|
|
1882
|
-
__name(this, "XyoPublicNetworkStack");
|
|
1883
|
-
}
|
|
1884
1761
|
busConnection = osXyoPublicNetworkReadyConnection();
|
|
1885
1762
|
constructor(context, adapters) {
|
|
1886
1763
|
super(context, adapters, "OsXyoPublicNetworkStackNode");
|
|
@@ -1919,9 +1796,6 @@ var OsStackMap = {
|
|
|
1919
1796
|
|
|
1920
1797
|
// src/XyOs.ts
|
|
1921
1798
|
var XyOs = class _XyOs extends XyOsContextBase {
|
|
1922
|
-
static {
|
|
1923
|
-
__name(this, "XyOs");
|
|
1924
|
-
}
|
|
1925
1799
|
_exposedNode;
|
|
1926
1800
|
_exposedNodeOuter;
|
|
1927
1801
|
_kernel;
|
|
@@ -1929,9 +1803,16 @@ var XyOs = class _XyOs extends XyOsContextBase {
|
|
|
1929
1803
|
dappRegistrationService;
|
|
1930
1804
|
signers;
|
|
1931
1805
|
stackManager;
|
|
1932
|
-
constructor({
|
|
1933
|
-
logger
|
|
1934
|
-
|
|
1806
|
+
constructor({
|
|
1807
|
+
logger = console,
|
|
1808
|
+
eventBus = new EventBus(),
|
|
1809
|
+
kernel = new Kernel({ logger }),
|
|
1810
|
+
locator = new ModuleFactoryLocator6(),
|
|
1811
|
+
dappsConfiguration,
|
|
1812
|
+
developmentMode,
|
|
1813
|
+
stackMap = OsStackMap,
|
|
1814
|
+
...params
|
|
1815
|
+
} = {}) {
|
|
1935
1816
|
super({
|
|
1936
1817
|
eventBus,
|
|
1937
1818
|
kernel,
|
|
@@ -1969,19 +1850,14 @@ var XyOs = class _XyOs extends XyOsContextBase {
|
|
|
1969
1850
|
return this.stackManager.stacks;
|
|
1970
1851
|
}
|
|
1971
1852
|
get user() {
|
|
1972
|
-
return {
|
|
1973
|
-
signers: this.signers?.getWalletKindSigner("user")
|
|
1974
|
-
};
|
|
1853
|
+
return { signers: this.signers?.getWalletKindSigner("user") };
|
|
1975
1854
|
}
|
|
1976
1855
|
static async monitor(fn, eventConfig) {
|
|
1977
1856
|
const { name, additionalProperties } = eventConfig;
|
|
1978
1857
|
const monitor = this.monitoring;
|
|
1979
1858
|
monitor?.startTimer(name);
|
|
1980
1859
|
const result = await fn();
|
|
1981
|
-
monitor?.stopTimer({
|
|
1982
|
-
additionalProperties,
|
|
1983
|
-
name
|
|
1984
|
-
});
|
|
1860
|
+
monitor?.stopTimer({ additionalProperties, name });
|
|
1985
1861
|
return result;
|
|
1986
1862
|
}
|
|
1987
1863
|
async boot(wallet, locator = new ModuleFactoryLocator6()) {
|
|
@@ -1990,18 +1866,13 @@ var XyOs = class _XyOs extends XyOsContextBase {
|
|
|
1990
1866
|
return await this._bootMutex.runExclusive(async () => {
|
|
1991
1867
|
await this.eventBus.start();
|
|
1992
1868
|
if (this.kernel?.status === "created") {
|
|
1993
|
-
await this.kernel.boot(await boot(), {
|
|
1994
|
-
locator: fullLocator,
|
|
1995
|
-
kernelDrivers: []
|
|
1996
|
-
});
|
|
1869
|
+
await this.kernel.boot(await boot(), { locator: fullLocator, kernelDrivers: [] });
|
|
1997
1870
|
}
|
|
1998
1871
|
if (this.kernel?.status !== "booted") {
|
|
1999
1872
|
throw new Error("Kernel not booted");
|
|
2000
1873
|
}
|
|
2001
1874
|
assertEx11(this._root === void 0, () => "XyOs already booted");
|
|
2002
|
-
const [root] = await _XyOs.monitor(async () => await loadOsNode(wallet, fullLocator), {
|
|
2003
|
-
name: "Load XyOs"
|
|
2004
|
-
});
|
|
1875
|
+
const [root] = await _XyOs.monitor(async () => await loadOsNode(wallet, fullLocator), { name: "Load XyOs" });
|
|
2005
1876
|
this._root = root;
|
|
2006
1877
|
this.stackManager.initialize(this);
|
|
2007
1878
|
if (this.signers) await this.signers.initialize();
|
|
@@ -2032,32 +1903,26 @@ var XyOs = class _XyOs extends XyOsContextBase {
|
|
|
2032
1903
|
|
|
2033
1904
|
// src/scripts/xyos/lib/headless.ts
|
|
2034
1905
|
var { terminal } = tk;
|
|
2035
|
-
var terminate =
|
|
1906
|
+
var terminate = () => {
|
|
2036
1907
|
terminal.grabInput(false);
|
|
2037
1908
|
setTimeout(function() {
|
|
2038
1909
|
process.exit(0);
|
|
2039
1910
|
}, 100);
|
|
2040
|
-
}
|
|
2041
|
-
var headless =
|
|
1911
|
+
};
|
|
1912
|
+
var headless = async ({
|
|
1913
|
+
manifest,
|
|
1914
|
+
config,
|
|
1915
|
+
kernelDrivers
|
|
1916
|
+
} = {}) => {
|
|
2042
1917
|
console.log(chalk.green("Starting Headless xyOS..."));
|
|
2043
|
-
const configExplorer = cosmiconfig("xyos", {
|
|
2044
|
-
cache: true,
|
|
2045
|
-
loaders: {
|
|
2046
|
-
".ts": TypeScriptLoader()
|
|
2047
|
-
}
|
|
2048
|
-
});
|
|
1918
|
+
const configExplorer = cosmiconfig("xyos", { cache: true, loaders: { ".ts": TypeScriptLoader() } });
|
|
2049
1919
|
const configResult = await (config ? configExplorer.load(config) : configExplorer.search());
|
|
2050
1920
|
const xyosConfig = configResult?.config ?? {};
|
|
2051
1921
|
const manifestToLoad = manifest ?? (typeof xyosConfig.manifest === "string" ? xyosConfig.manifest : void 0);
|
|
2052
1922
|
const manifestObject = manifestToLoad ? JSON.parse(fs.readFileSync(manifestToLoad, "utf8")) : typeof xyosConfig.manifest === "object" ? xyosConfig.manifest : void 0;
|
|
2053
1923
|
const osWallet = await HDWallet5.random();
|
|
2054
|
-
const kernel = new Kernel2({
|
|
2055
|
-
|
|
2056
|
-
logger: console
|
|
2057
|
-
});
|
|
2058
|
-
await kernel.boot(await boot2(), {
|
|
2059
|
-
kernelDrivers
|
|
2060
|
-
});
|
|
1924
|
+
const kernel = new Kernel2({ logColor: "cyan", logger: console });
|
|
1925
|
+
await kernel.boot(await boot2(), { kernelDrivers });
|
|
2061
1926
|
const xyOs = new XyOs({
|
|
2062
1927
|
kernel,
|
|
2063
1928
|
stackMap: {},
|
|
@@ -2066,28 +1931,20 @@ var headless = /* @__PURE__ */ __name(async ({ manifest, config, kernelDrivers }
|
|
|
2066
1931
|
});
|
|
2067
1932
|
await xyOs.boot(osWallet);
|
|
2068
1933
|
console.log(chalk.green("Started Headless xyOS..."));
|
|
2069
|
-
terminal.grabInput({
|
|
2070
|
-
mouse: "button"
|
|
2071
|
-
});
|
|
1934
|
+
terminal.grabInput({ mouse: "button" });
|
|
2072
1935
|
terminal.on("key", function(name) {
|
|
2073
1936
|
console.log("'key' event:", name);
|
|
2074
1937
|
if (name === "CTRL_C") {
|
|
2075
1938
|
terminate();
|
|
2076
1939
|
}
|
|
2077
1940
|
});
|
|
2078
|
-
}
|
|
1941
|
+
};
|
|
2079
1942
|
|
|
2080
1943
|
// src/scripts/xyos/command/create.ts
|
|
2081
|
-
var commandCreate =
|
|
1944
|
+
var commandCreate = (argv) => {
|
|
2082
1945
|
return argv.command("create [template] <target>", "Create an xyos project", (yargs2) => {
|
|
2083
1946
|
return yargs2.positional("template", {
|
|
2084
|
-
choices: [
|
|
2085
|
-
"react",
|
|
2086
|
-
"headless",
|
|
2087
|
-
"dapp",
|
|
2088
|
-
"diviner",
|
|
2089
|
-
"witness"
|
|
2090
|
-
],
|
|
1947
|
+
choices: ["react", "headless", "dapp", "diviner", "witness"],
|
|
2091
1948
|
description: "Template to use",
|
|
2092
1949
|
type: "string"
|
|
2093
1950
|
}).positional("target", {
|
|
@@ -2096,22 +1953,15 @@ var commandCreate = /* @__PURE__ */ __name((argv) => {
|
|
|
2096
1953
|
});
|
|
2097
1954
|
}, async ({ template, target }) => {
|
|
2098
1955
|
console.log(`Using template ${template} at location ${target}`);
|
|
2099
|
-
return await createFromTemplate({
|
|
2100
|
-
target,
|
|
2101
|
-
template
|
|
2102
|
-
});
|
|
1956
|
+
return await createFromTemplate({ target, template });
|
|
2103
1957
|
});
|
|
2104
|
-
}
|
|
1958
|
+
};
|
|
2105
1959
|
|
|
2106
1960
|
// src/scripts/xyos/command/manifest.ts
|
|
2107
|
-
var commandManifest =
|
|
1961
|
+
var commandManifest = (argv) => {
|
|
2108
1962
|
return argv.command("manifest [action] <target>", "Create an xyos project", (yargs2) => {
|
|
2109
1963
|
return yargs2.positional("action", {
|
|
2110
|
-
choices: [
|
|
2111
|
-
"create",
|
|
2112
|
-
"validate",
|
|
2113
|
-
"display"
|
|
2114
|
-
],
|
|
1964
|
+
choices: ["create", "validate", "display"],
|
|
2115
1965
|
description: "Action to take on manifest",
|
|
2116
1966
|
type: "string"
|
|
2117
1967
|
}).positional("target", {
|
|
@@ -2122,10 +1972,10 @@ var commandManifest = /* @__PURE__ */ __name((argv) => {
|
|
|
2122
1972
|
console.log(`Taking action [${action}] on manifest at ${target}`);
|
|
2123
1973
|
return await Promise.resolve();
|
|
2124
1974
|
});
|
|
2125
|
-
}
|
|
1975
|
+
};
|
|
2126
1976
|
|
|
2127
1977
|
// src/scripts/xyos/command/start.ts
|
|
2128
|
-
var commandStart =
|
|
1978
|
+
var commandStart = (argv) => {
|
|
2129
1979
|
return argv.command("start", "Start xyOS in headless mode", (yargs2) => {
|
|
2130
1980
|
return yargs2.option("config", {
|
|
2131
1981
|
alias: "c",
|
|
@@ -2140,7 +1990,11 @@ var commandStart = /* @__PURE__ */ __name((argv) => {
|
|
|
2140
1990
|
description: "Kernel driver to load",
|
|
2141
1991
|
type: "string"
|
|
2142
1992
|
});
|
|
2143
|
-
}, async ({
|
|
1993
|
+
}, async ({
|
|
1994
|
+
config,
|
|
1995
|
+
manifest,
|
|
1996
|
+
kernelDriver
|
|
1997
|
+
}) => {
|
|
2144
1998
|
if (config) {
|
|
2145
1999
|
console.log(`Using config: ${config}`);
|
|
2146
2000
|
}
|
|
@@ -2150,13 +2004,25 @@ var commandStart = /* @__PURE__ */ __name((argv) => {
|
|
|
2150
2004
|
await headless({
|
|
2151
2005
|
manifest,
|
|
2152
2006
|
config,
|
|
2153
|
-
kernelDrivers: kernelDriver ? [
|
|
2154
|
-
kernelDriver
|
|
2155
|
-
] : []
|
|
2007
|
+
kernelDrivers: kernelDriver ? [kernelDriver] : []
|
|
2156
2008
|
});
|
|
2157
2009
|
});
|
|
2158
|
-
}
|
|
2010
|
+
};
|
|
2159
2011
|
|
|
2160
2012
|
// src/scripts/xyos/index.ts
|
|
2161
|
-
commandManifest(
|
|
2013
|
+
commandManifest(
|
|
2014
|
+
commandConfig(
|
|
2015
|
+
commandCreate(
|
|
2016
|
+
commandStart(
|
|
2017
|
+
yargs(
|
|
2018
|
+
hideBin(
|
|
2019
|
+
process.argv
|
|
2020
|
+
)
|
|
2021
|
+
)
|
|
2022
|
+
)
|
|
2023
|
+
)
|
|
2024
|
+
)
|
|
2025
|
+
).usage("Usage: $0 <command> [options]").scriptName("xyos").demandCommand(1).parse().catch(
|
|
2026
|
+
console.error
|
|
2027
|
+
);
|
|
2162
2028
|
//# sourceMappingURL=index.mjs.map
|