@xyo-network/react-standard-node 2.64.8 → 2.64.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.cts +14 -20
  2. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.cts.map +1 -1
  3. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.mts +14 -20
  4. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.mts.map +1 -1
  5. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.ts +14 -20
  6. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.ts.map +1 -1
  7. package/dist/browser/lib/Builders/SentinelBuilder.d.cts +24 -36
  8. package/dist/browser/lib/Builders/SentinelBuilder.d.cts.map +1 -1
  9. package/dist/browser/lib/Builders/SentinelBuilder.d.mts +24 -36
  10. package/dist/browser/lib/Builders/SentinelBuilder.d.mts.map +1 -1
  11. package/dist/browser/lib/Builders/SentinelBuilder.d.ts +24 -36
  12. package/dist/browser/lib/Builders/SentinelBuilder.d.ts.map +1 -1
  13. package/dist/browser/lib/Builders/StorageArchivistBuilder.d.cts +8 -8
  14. package/dist/browser/lib/Builders/StorageArchivistBuilder.d.mts +8 -8
  15. package/dist/browser/lib/Builders/StorageArchivistBuilder.d.ts +8 -8
  16. package/dist/docs.json +510 -1105
  17. package/dist/node/lib/Builders/MemoryNodeBuilder.d.cts +14 -20
  18. package/dist/node/lib/Builders/MemoryNodeBuilder.d.cts.map +1 -1
  19. package/dist/node/lib/Builders/MemoryNodeBuilder.d.mts +14 -20
  20. package/dist/node/lib/Builders/MemoryNodeBuilder.d.mts.map +1 -1
  21. package/dist/node/lib/Builders/MemoryNodeBuilder.d.ts +14 -20
  22. package/dist/node/lib/Builders/MemoryNodeBuilder.d.ts.map +1 -1
  23. package/dist/node/lib/Builders/SentinelBuilder.d.cts +24 -36
  24. package/dist/node/lib/Builders/SentinelBuilder.d.cts.map +1 -1
  25. package/dist/node/lib/Builders/SentinelBuilder.d.mts +24 -36
  26. package/dist/node/lib/Builders/SentinelBuilder.d.mts.map +1 -1
  27. package/dist/node/lib/Builders/SentinelBuilder.d.ts +24 -36
  28. package/dist/node/lib/Builders/SentinelBuilder.d.ts.map +1 -1
  29. package/dist/node/lib/Builders/StorageArchivistBuilder.d.cts +8 -8
  30. package/dist/node/lib/Builders/StorageArchivistBuilder.d.mts +8 -8
  31. package/dist/node/lib/Builders/StorageArchivistBuilder.d.ts +8 -8
  32. package/package.json +20 -20
  33. package/dist/browser/components/ActiveStandardNode.cjs +0 -85
  34. package/dist/browser/components/ActiveStandardNode.cjs.map +0 -1
  35. package/dist/browser/components/ActiveStandardNode.js +0 -64
  36. package/dist/browser/components/ActiveStandardNode.js.map +0 -1
  37. package/dist/browser/components/index.cjs +0 -87
  38. package/dist/browser/components/index.cjs.map +0 -1
  39. package/dist/browser/components/index.js +0 -64
  40. package/dist/browser/components/index.js.map +0 -1
  41. package/dist/browser/contexts/StandardRemoteNodes/Context.cjs +0 -28
  42. package/dist/browser/contexts/StandardRemoteNodes/Context.cjs.map +0 -1
  43. package/dist/browser/contexts/StandardRemoteNodes/Context.js +0 -7
  44. package/dist/browser/contexts/StandardRemoteNodes/Context.js.map +0 -1
  45. package/dist/browser/contexts/StandardRemoteNodes/Providers.cjs +0 -308
  46. package/dist/browser/contexts/StandardRemoteNodes/Providers.cjs.map +0 -1
  47. package/dist/browser/contexts/StandardRemoteNodes/Providers.js +0 -287
  48. package/dist/browser/contexts/StandardRemoteNodes/Providers.js.map +0 -1
  49. package/dist/browser/contexts/StandardRemoteNodes/State.cjs +0 -19
  50. package/dist/browser/contexts/StandardRemoteNodes/State.cjs.map +0 -1
  51. package/dist/browser/contexts/StandardRemoteNodes/State.js +0 -1
  52. package/dist/browser/contexts/StandardRemoteNodes/State.js.map +0 -1
  53. package/dist/browser/contexts/StandardRemoteNodes/index.cjs +0 -316
  54. package/dist/browser/contexts/StandardRemoteNodes/index.cjs.map +0 -1
  55. package/dist/browser/contexts/StandardRemoteNodes/index.js +0 -293
  56. package/dist/browser/contexts/StandardRemoteNodes/index.js.map +0 -1
  57. package/dist/browser/contexts/StandardRemoteNodes/use.cjs +0 -34
  58. package/dist/browser/contexts/StandardRemoteNodes/use.cjs.map +0 -1
  59. package/dist/browser/contexts/StandardRemoteNodes/use.js +0 -13
  60. package/dist/browser/contexts/StandardRemoteNodes/use.js.map +0 -1
  61. package/dist/browser/contexts/index.cjs +0 -316
  62. package/dist/browser/contexts/index.cjs.map +0 -1
  63. package/dist/browser/contexts/index.js +0 -293
  64. package/dist/browser/contexts/index.js.map +0 -1
  65. package/dist/browser/hooks/index.cjs +0 -50
  66. package/dist/browser/hooks/index.cjs.map +0 -1
  67. package/dist/browser/hooks/index.js +0 -27
  68. package/dist/browser/hooks/index.js.map +0 -1
  69. package/dist/browser/hooks/useActiveNodeAddress.cjs +0 -48
  70. package/dist/browser/hooks/useActiveNodeAddress.cjs.map +0 -1
  71. package/dist/browser/hooks/useActiveNodeAddress.js +0 -27
  72. package/dist/browser/hooks/useActiveNodeAddress.js.map +0 -1
  73. package/dist/browser/lib/Builders/MemoryNodeBuilder.cjs +0 -194
  74. package/dist/browser/lib/Builders/MemoryNodeBuilder.cjs.map +0 -1
  75. package/dist/browser/lib/Builders/MemoryNodeBuilder.js +0 -173
  76. package/dist/browser/lib/Builders/MemoryNodeBuilder.js.map +0 -1
  77. package/dist/browser/lib/Builders/SentinelBuilder.cjs +0 -54
  78. package/dist/browser/lib/Builders/SentinelBuilder.cjs.map +0 -1
  79. package/dist/browser/lib/Builders/SentinelBuilder.js +0 -33
  80. package/dist/browser/lib/Builders/SentinelBuilder.js.map +0 -1
  81. package/dist/browser/lib/Builders/StorageArchivistBuilder.cjs +0 -76
  82. package/dist/browser/lib/Builders/StorageArchivistBuilder.cjs.map +0 -1
  83. package/dist/browser/lib/Builders/StorageArchivistBuilder.js +0 -55
  84. package/dist/browser/lib/Builders/StorageArchivistBuilder.js.map +0 -1
  85. package/dist/browser/lib/Builders/index.cjs +0 -198
  86. package/dist/browser/lib/Builders/index.cjs.map +0 -1
  87. package/dist/browser/lib/Builders/index.js +0 -175
  88. package/dist/browser/lib/Builders/index.js.map +0 -1
  89. package/dist/browser/lib/ModuleAccountPaths.cjs +0 -53
  90. package/dist/browser/lib/ModuleAccountPaths.cjs.map +0 -1
  91. package/dist/browser/lib/ModuleAccountPaths.js +0 -30
  92. package/dist/browser/lib/ModuleAccountPaths.js.map +0 -1
  93. package/dist/browser/lib/ModuleNames.cjs +0 -29
  94. package/dist/browser/lib/ModuleNames.cjs.map +0 -1
  95. package/dist/browser/lib/ModuleNames.js +0 -8
  96. package/dist/browser/lib/ModuleNames.js.map +0 -1
  97. package/dist/browser/lib/buildNodes.cjs +0 -257
  98. package/dist/browser/lib/buildNodes.cjs.map +0 -1
  99. package/dist/browser/lib/buildNodes.js +0 -236
  100. package/dist/browser/lib/buildNodes.js.map +0 -1
  101. package/dist/browser/lib/index.cjs +0 -269
  102. package/dist/browser/lib/index.cjs.map +0 -1
  103. package/dist/browser/lib/index.js +0 -246
  104. package/dist/browser/lib/index.js.map +0 -1
  105. package/dist/node/components/ActiveStandardNode.cjs +0 -90
  106. package/dist/node/components/ActiveStandardNode.cjs.map +0 -1
  107. package/dist/node/components/ActiveStandardNode.js +0 -65
  108. package/dist/node/components/ActiveStandardNode.js.map +0 -1
  109. package/dist/node/components/index.cjs +0 -92
  110. package/dist/node/components/index.cjs.map +0 -1
  111. package/dist/node/components/index.js +0 -65
  112. package/dist/node/components/index.js.map +0 -1
  113. package/dist/node/contexts/StandardRemoteNodes/Context.cjs +0 -32
  114. package/dist/node/contexts/StandardRemoteNodes/Context.cjs.map +0 -1
  115. package/dist/node/contexts/StandardRemoteNodes/Context.js +0 -7
  116. package/dist/node/contexts/StandardRemoteNodes/Context.js.map +0 -1
  117. package/dist/node/contexts/StandardRemoteNodes/Providers.cjs +0 -319
  118. package/dist/node/contexts/StandardRemoteNodes/Providers.cjs.map +0 -1
  119. package/dist/node/contexts/StandardRemoteNodes/Providers.js +0 -293
  120. package/dist/node/contexts/StandardRemoteNodes/Providers.js.map +0 -1
  121. package/dist/node/contexts/StandardRemoteNodes/State.cjs +0 -19
  122. package/dist/node/contexts/StandardRemoteNodes/State.cjs.map +0 -1
  123. package/dist/node/contexts/StandardRemoteNodes/State.js +0 -1
  124. package/dist/node/contexts/StandardRemoteNodes/State.js.map +0 -1
  125. package/dist/node/contexts/StandardRemoteNodes/index.cjs +0 -329
  126. package/dist/node/contexts/StandardRemoteNodes/index.cjs.map +0 -1
  127. package/dist/node/contexts/StandardRemoteNodes/index.js +0 -299
  128. package/dist/node/contexts/StandardRemoteNodes/index.js.map +0 -1
  129. package/dist/node/contexts/StandardRemoteNodes/use.cjs +0 -38
  130. package/dist/node/contexts/StandardRemoteNodes/use.cjs.map +0 -1
  131. package/dist/node/contexts/StandardRemoteNodes/use.js +0 -13
  132. package/dist/node/contexts/StandardRemoteNodes/use.js.map +0 -1
  133. package/dist/node/contexts/index.cjs +0 -329
  134. package/dist/node/contexts/index.cjs.map +0 -1
  135. package/dist/node/contexts/index.js +0 -299
  136. package/dist/node/contexts/index.js.map +0 -1
  137. package/dist/node/hooks/index.cjs +0 -54
  138. package/dist/node/hooks/index.cjs.map +0 -1
  139. package/dist/node/hooks/index.js +0 -27
  140. package/dist/node/hooks/index.js.map +0 -1
  141. package/dist/node/hooks/useActiveNodeAddress.cjs +0 -52
  142. package/dist/node/hooks/useActiveNodeAddress.cjs.map +0 -1
  143. package/dist/node/hooks/useActiveNodeAddress.js +0 -27
  144. package/dist/node/hooks/useActiveNodeAddress.js.map +0 -1
  145. package/dist/node/lib/Builders/MemoryNodeBuilder.cjs +0 -201
  146. package/dist/node/lib/Builders/MemoryNodeBuilder.cjs.map +0 -1
  147. package/dist/node/lib/Builders/MemoryNodeBuilder.js +0 -176
  148. package/dist/node/lib/Builders/MemoryNodeBuilder.js.map +0 -1
  149. package/dist/node/lib/Builders/SentinelBuilder.cjs +0 -58
  150. package/dist/node/lib/Builders/SentinelBuilder.cjs.map +0 -1
  151. package/dist/node/lib/Builders/SentinelBuilder.js +0 -33
  152. package/dist/node/lib/Builders/SentinelBuilder.js.map +0 -1
  153. package/dist/node/lib/Builders/StorageArchivistBuilder.cjs +0 -82
  154. package/dist/node/lib/Builders/StorageArchivistBuilder.cjs.map +0 -1
  155. package/dist/node/lib/Builders/StorageArchivistBuilder.js +0 -57
  156. package/dist/node/lib/Builders/StorageArchivistBuilder.js.map +0 -1
  157. package/dist/node/lib/Builders/index.cjs +0 -207
  158. package/dist/node/lib/Builders/index.cjs.map +0 -1
  159. package/dist/node/lib/Builders/index.js +0 -178
  160. package/dist/node/lib/Builders/index.js.map +0 -1
  161. package/dist/node/lib/ModuleAccountPaths.cjs +0 -59
  162. package/dist/node/lib/ModuleAccountPaths.cjs.map +0 -1
  163. package/dist/node/lib/ModuleAccountPaths.js +0 -30
  164. package/dist/node/lib/ModuleAccountPaths.js.map +0 -1
  165. package/dist/node/lib/ModuleNames.cjs +0 -34
  166. package/dist/node/lib/ModuleNames.cjs.map +0 -1
  167. package/dist/node/lib/ModuleNames.js +0 -8
  168. package/dist/node/lib/ModuleNames.js.map +0 -1
  169. package/dist/node/lib/buildNodes.cjs +0 -266
  170. package/dist/node/lib/buildNodes.cjs.map +0 -1
  171. package/dist/node/lib/buildNodes.js +0 -241
  172. package/dist/node/lib/buildNodes.js.map +0 -1
  173. package/dist/node/lib/index.cjs +0 -286
  174. package/dist/node/lib/index.cjs.map +0 -1
  175. package/dist/node/lib/index.js +0 -251
  176. package/dist/node/lib/index.js.map +0 -1
@@ -1,246 +0,0 @@
1
- // src/lib/Builders/MemoryNodeBuilder.ts
2
- import { MemoryArchivist, MemoryArchivistConfigSchema } from "@xyo-network/archivist";
3
- import { HttpBridge, HttpBridgeConfigSchema } from "@xyo-network/http-bridge";
4
- import { MemoryNode } from "@xyo-network/node-memory";
5
- import { NodeConfigSchema } from "@xyo-network/node-model";
6
- import { assertDefinedEx as assertDefinedEx3 } from "@xyo-network/react-shared";
7
-
8
- // src/lib/Builders/SentinelBuilder.ts
9
- import { assertDefinedEx } from "@xyo-network/react-shared";
10
- import { MemorySentinel } from "@xyo-network/sentinel";
11
- var SentinelBuilder = class {
12
- constructor(config, account) {
13
- this.config = config;
14
- this.account = account;
15
- assertDefinedEx(config, "config was not defined");
16
- }
17
- _sentinel;
18
- get sentinel() {
19
- return assertDefinedEx(this._sentinel, "this._sentinel not defined upon create");
20
- }
21
- static async create(config, account) {
22
- const instance = new this(config, account);
23
- instance._sentinel = await instance.buildSentinel();
24
- return instance;
25
- }
26
- async buildSentinel() {
27
- const params = this.buildParams();
28
- return await MemorySentinel.create(params);
29
- }
30
- buildParams() {
31
- return {
32
- account: this.account,
33
- config: this.config
34
- };
35
- }
36
- };
37
-
38
- // src/lib/Builders/StorageArchivistBuilder.ts
39
- import { asArchivistInstance, StorageArchivist, StorageArchivistConfigSchema } from "@xyo-network/archivist";
40
- import { asNodeInstance } from "@xyo-network/node-model";
41
- import { assertDefinedEx as assertDefinedEx2 } from "@xyo-network/react-shared";
42
- var StorageArchivistBuilder = class {
43
- constructor(config, account, node) {
44
- this.config = config;
45
- this.account = account;
46
- this.node = node;
47
- }
48
- _archivist;
49
- remoteArchivist;
50
- get archivist() {
51
- return assertDefinedEx2(this._archivist, "archivist was not defined upon create");
52
- }
53
- static async create(config, account, node) {
54
- const instance = new this(config, account, node);
55
- instance.remoteArchivist = await instance.findParentArchivist();
56
- instance._archivist = await instance.buildArchivist();
57
- return instance;
58
- }
59
- async buildArchivist() {
60
- const config = this.buildConfig();
61
- return await StorageArchivist.create({ account: this.account, config });
62
- }
63
- buildConfig() {
64
- return {
65
- name: this.config.name,
66
- namespace: this.config.namespace,
67
- parents: {
68
- commit: this.remoteArchivist ? [this.remoteArchivist?.address] : void 0,
69
- read: this.remoteArchivist ? [this.remoteArchivist?.address] : void 0
70
- },
71
- schema: StorageArchivistConfigSchema,
72
- storeParentReads: true,
73
- type: "local"
74
- };
75
- }
76
- async findParentArchivist() {
77
- const node = asNodeInstance(this.node, "node not defined");
78
- const [bridge] = await node.resolve({ name: ["RemoteNodeBridge"] }) ?? [];
79
- if (bridge) {
80
- try {
81
- const [archivist] = await bridge.resolve({ name: ["Archivist"] }) ?? [];
82
- return asArchivistInstance(archivist);
83
- } catch (e) {
84
- console.error("Error Resolving Parent Archivist", this.node?.config.name, this.config);
85
- }
86
- }
87
- }
88
- };
89
-
90
- // src/lib/Builders/MemoryNodeBuilder.ts
91
- var MemoryNodeBuilder = class {
92
- _node;
93
- get node() {
94
- return assertDefinedEx3(this._node, "this._node was not defined upon create");
95
- }
96
- static async create({ name, node }, account) {
97
- const instance = new this();
98
- const memoryNode = node ?? await MemoryNode.create({ account, config: { name, schema: NodeConfigSchema } });
99
- instance._node = memoryNode;
100
- return instance;
101
- }
102
- /** @deprecated - call specific method that corresponds to a type of archivist (i.e. addArchivistStorage) */
103
- async addArchivist(account, moduleName, namespace) {
104
- await this.addArchivistStorage(account, moduleName, namespace);
105
- }
106
- async addArchivistMemory(moduleName, account) {
107
- const config = { name: moduleName, schema: MemoryArchivistConfigSchema };
108
- const memoryArchivist = await MemoryArchivist.create({ account, config });
109
- await this.attach(memoryArchivist, true);
110
- }
111
- async addArchivistStorage(account, moduleName, namespace) {
112
- const config = { name: moduleName, namespace };
113
- const { archivist } = await StorageArchivistBuilder.create(config, account, this.node);
114
- await this.attach(archivist, true);
115
- }
116
- async addBridge(apiDomain, moduleName = "RemoteNodeBridge", account) {
117
- try {
118
- const bridge = await HttpBridge.create({
119
- account,
120
- config: { name: moduleName, nodeUrl: `${apiDomain}/node`, schema: HttpBridgeConfigSchema, security: { allowAnonymous: true } }
121
- });
122
- await this.attach(bridge, true);
123
- } catch (e) {
124
- console.error("Error Creating Bridge", e);
125
- }
126
- }
127
- async addSentinel(config, account) {
128
- const { sentinel } = await SentinelBuilder.create(config, account);
129
- await this.attach(sentinel, true, true);
130
- return sentinel;
131
- }
132
- async addWitnesses(pluginSetResolver, witnesses = []) {
133
- await Promise.all(
134
- pluginSetResolver.witnesses().map(async (pluginSet, index) => {
135
- const witness = await witnesses?.[index]?.();
136
- if (witness) {
137
- try {
138
- await this.witnessCleanup(witness);
139
- await this.node.register(witness);
140
- await this.node.attach(witness.address, true);
141
- } catch (e) {
142
- console.error("Error attaching witness", JSON.stringify(pluginSet, null, 2), e);
143
- }
144
- }
145
- })
146
- );
147
- }
148
- async attach(module, external, safeAttach) {
149
- try {
150
- if (safeAttach) {
151
- const existingModule = (await this.node.resolve({ address: [module.address] })).pop();
152
- if (existingModule) {
153
- await this.node.detach(existingModule.address);
154
- await this.node.unregister(existingModule);
155
- }
156
- }
157
- await this.node.register(module);
158
- await this.node.attach(module.address, external);
159
- } catch (e) {
160
- throw Error(`Error adding ${module.config.name ?? module.address} to MemoryNode: ${e}`);
161
- }
162
- }
163
- async witnessCleanup(witness) {
164
- if (this.node.registered().includes(witness.address)) {
165
- const [existingWitness] = await this.node.resolve({ address: [witness.address] });
166
- await this.node.unregister(existingWitness);
167
- }
168
- }
169
- };
170
-
171
- // src/lib/buildNodes.ts
172
- import { defaultNetworkConfigs } from "@xyo-network/react-network";
173
- import { assertDefinedEx as assertDefinedEx4 } from "@xyo-network/react-shared";
174
-
175
- // src/lib/ModuleNames.ts
176
- var GlobalNode = "GlobalNode";
177
- var RootStorageArchivist = "RootStorageArchivist";
178
-
179
- // src/lib/ModuleAccountPaths.ts
180
- var GlobalNodeOffsetPath = "15";
181
- var RemoteNodeOffsetPaths = {
182
- Kerplunk: "112",
183
- Local: "111",
184
- Main: "113"
185
- };
186
- var RemoteNodeArchivistOffsetPaths = {
187
- Kerplunk: {
188
- MemoryNode: "117",
189
- [RootStorageArchivist]: "119"
190
- },
191
- Local: {
192
- MemoryNode: "114",
193
- [RootStorageArchivist]: "116"
194
- },
195
- Main: {
196
- MemoryNode: "120",
197
- [RootStorageArchivist]: "122"
198
- }
199
- };
200
-
201
- // src/lib/buildNodes.ts
202
- var knownRemoteNodes = () => {
203
- const networkNames = defaultNetworkConfigs.map((config) => config.name);
204
- return networkNames.map((networkName) => {
205
- const name = assertDefinedEx4(networkName, "missing name in network config");
206
- const uri = defaultNetworkConfigs.filter((config) => config.name === networkName)[0].nodes?.filter((node) => node.type === "archivist")[0].uri;
207
- const apiDomain = assertDefinedEx4(uri, 'missing node type "archivist" in network config');
208
- return {
209
- apiDomain,
210
- name
211
- };
212
- });
213
- };
214
- var BuildStandardNodes = async (wallet, onNodeBuilt) => {
215
- try {
216
- return await Promise.all(
217
- knownRemoteNodes().map(async ({ apiDomain, name }) => {
218
- const remoteNodeOffset = RemoteNodeOffsetPaths[name];
219
- const remoteNodeWallet = await wallet.derivePath?.(remoteNodeOffset);
220
- const memoryNodeBuilder = await MemoryNodeBuilder.create({ name }, await remoteNodeWallet.derivePath?.("0"));
221
- await memoryNodeBuilder.addBridge(apiDomain);
222
- const rootArchivistPath = `${remoteNodeOffset}/${RemoteNodeArchivistOffsetPaths[name][RootStorageArchivist]}`;
223
- const rootArchivistAccount = await wallet.derivePath?.(rootArchivistPath);
224
- await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, "root");
225
- const { node } = memoryNodeBuilder;
226
- assertDefinedEx4(node, "Memory Node was not built successfully");
227
- onNodeBuilt?.(node);
228
- return node;
229
- })
230
- );
231
- } catch (e) {
232
- throw new Error(`Error Creating Known Remote Nodes: ${e}`);
233
- }
234
- };
235
- export {
236
- BuildStandardNodes,
237
- GlobalNode,
238
- GlobalNodeOffsetPath,
239
- MemoryNodeBuilder,
240
- RemoteNodeArchivistOffsetPaths,
241
- RemoteNodeOffsetPaths,
242
- RootStorageArchivist,
243
- SentinelBuilder,
244
- StorageArchivistBuilder
245
- };
246
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/Builders/MemoryNodeBuilder.ts","../../../src/lib/Builders/SentinelBuilder.ts","../../../src/lib/Builders/StorageArchivistBuilder.ts","../../../src/lib/buildNodes.ts","../../../src/lib/ModuleNames.ts","../../../src/lib/ModuleAccountPaths.ts"],"sourcesContent":["import { AccountInstance } from '@xyo-network/account-model'\nimport { MemoryArchivist, MemoryArchivistConfig, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { HttpBridge, HttpBridgeConfigSchema } from '@xyo-network/http-bridge'\nimport { ModuleInstance } from '@xyo-network/module'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { SentinelConfig } from '@xyo-network/sentinel'\nimport { WitnessInstance, WitnessModule } from '@xyo-network/witness'\n\nimport { SentinelBuilder } from './SentinelBuilder'\nimport { StorageArchivistBuilder } from './StorageArchivistBuilder'\n\nexport interface MemoryNodeBuilderConfig {\n name?: string\n node?: MemoryNode\n}\n\nexport class MemoryNodeBuilder {\n private _node: MemoryNode | undefined\n\n get node() {\n return assertDefinedEx(this._node, 'this._node was not defined upon create')\n }\n\n static async create({ name, node }: MemoryNodeBuilderConfig, account?: AccountInstance): Promise<MemoryNodeBuilder> {\n const instance = new this()\n\n const memoryNode: MemoryNode = node ?? (await MemoryNode.create({ account, config: { name, schema: NodeConfigSchema } }))\n instance._node = memoryNode\n return instance\n }\n\n /** @deprecated - call specific method that corresponds to a type of archivist (i.e. addArchivistStorage) */\n async addArchivist(account: AccountInstance, moduleName?: string, namespace?: string) {\n await this.addArchivistStorage(account, moduleName, namespace)\n }\n\n async addArchivistMemory(moduleName?: string, account?: AccountInstance) {\n const config: MemoryArchivistConfig = { name: moduleName, schema: MemoryArchivistConfigSchema }\n const memoryArchivist = await MemoryArchivist.create({ account, config })\n\n await this.attach(memoryArchivist, true)\n }\n\n async addArchivistStorage(account: AccountInstance, moduleName?: string, namespace?: string) {\n const config = { name: moduleName, namespace }\n const { archivist } = await StorageArchivistBuilder.create(config, account, this.node)\n\n await this.attach(archivist, true)\n }\n\n async addBridge(apiDomain: string, moduleName = 'RemoteNodeBridge', account?: AccountInstance) {\n try {\n const bridge = await HttpBridge.create({\n account,\n config: { name: moduleName, nodeUrl: `${apiDomain}/node`, schema: HttpBridgeConfigSchema, security: { allowAnonymous: true } },\n })\n await this.attach(bridge, true)\n } catch (e) {\n console.error('Error Creating Bridge', e)\n }\n }\n\n async addSentinel(config: SentinelConfig, account: AccountInstance) {\n const { sentinel } = await SentinelBuilder.create(config, account)\n await this.attach(sentinel, true, true)\n return sentinel\n }\n\n async addWitnesses(pluginSetResolver: PayloadSetPluginResolver, witnesses: (() => Promise<WitnessInstance>)[] = []) {\n await Promise.all(\n pluginSetResolver.witnesses().map(async (pluginSet, index) => {\n // Pass the prebuilt witness at the same index\n const witness = await witnesses?.[index]?.()\n if (witness) {\n try {\n await this.witnessCleanup(witness)\n await this.node.register(witness)\n await this.node.attach(witness.address, true)\n } catch (e) {\n console.error('Error attaching witness', JSON.stringify(pluginSet, null, 2), e)\n }\n }\n }),\n )\n }\n\n async attach(module: ModuleInstance, external?: boolean, safeAttach?: boolean) {\n try {\n if (safeAttach) {\n const existingModule = (await this.node.resolve({ address: [module.address] })).pop()\n if (existingModule) {\n await this.node.detach(existingModule.address)\n await this.node.unregister(existingModule)\n }\n }\n await this.node.register(module)\n await this.node.attach(module.address, external)\n } catch (e) {\n throw Error(`Error adding ${module.config.name ?? module.address} to MemoryNode: ${e}`)\n }\n }\n\n private async witnessCleanup(witness: WitnessModule) {\n if (this.node.registered().includes(witness.address)) {\n const [existingWitness] = await this.node.resolve({ address: [witness.address] })\n await this.node.unregister(existingWitness)\n }\n }\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { MemorySentinel, MemorySentinelParams, SentinelConfig } from '@xyo-network/sentinel'\n\nexport class SentinelBuilder {\n private _sentinel: MemorySentinel | undefined\n\n protected constructor(\n private config: SentinelConfig,\n private account: AccountInstance,\n ) {\n assertDefinedEx(config, 'config was not defined')\n }\n\n get sentinel() {\n return assertDefinedEx(this._sentinel, 'this._sentinel not defined upon create')\n }\n\n static async create(config: SentinelConfig, account: AccountInstance): Promise<SentinelBuilder> {\n const instance = new this(config, account)\n instance._sentinel = await instance.buildSentinel()\n return instance\n }\n\n async buildSentinel() {\n const params = this.buildParams()\n return (await MemorySentinel.create(params)) as MemorySentinel\n }\n\n private buildParams(): MemorySentinelParams {\n return {\n account: this.account,\n config: this.config,\n }\n }\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { ArchivistModule, asArchivistInstance, StorageArchivist, StorageArchivistConfig, StorageArchivistConfigSchema } from '@xyo-network/archivist'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { asNodeInstance } from '@xyo-network/node-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport interface ArchivistBuilderConfig {\n name?: string\n namespace?: string\n}\nexport class StorageArchivistBuilder {\n private _archivist: StorageArchivist | undefined\n private remoteArchivist: ArchivistModule | undefined\n\n protected constructor(\n private config: ArchivistBuilderConfig,\n private account: AccountInstance,\n private node?: MemoryNode,\n ) {}\n\n get archivist() {\n return assertDefinedEx(this._archivist, 'archivist was not defined upon create')\n }\n\n static async create(config: ArchivistBuilderConfig, account: AccountInstance, node: MemoryNode): Promise<StorageArchivistBuilder> {\n const instance = new this(config, account, node)\n instance.remoteArchivist = await instance.findParentArchivist()\n instance._archivist = await instance.buildArchivist()\n return instance\n }\n\n async buildArchivist() {\n const config = this.buildConfig()\n return (await StorageArchivist.create({ account: this.account, config })) as StorageArchivist\n }\n\n buildConfig(): StorageArchivistConfig {\n return {\n name: this.config.name,\n namespace: this.config.namespace,\n parents: {\n commit: this.remoteArchivist ? [this.remoteArchivist?.address] : undefined,\n read: this.remoteArchivist ? [this.remoteArchivist?.address] : undefined,\n },\n schema: StorageArchivistConfigSchema,\n storeParentReads: true,\n type: 'local',\n }\n }\n\n async findParentArchivist() {\n const node = asNodeInstance(this.node, 'node not defined')\n const [bridge] = (await node.resolve({ name: ['RemoteNodeBridge'] })) ?? []\n if (bridge) {\n try {\n const [archivist] = (await bridge.resolve({ name: ['Archivist'] })) ?? []\n return asArchivistInstance(archivist)\n } catch (e) {\n console.error('Error Resolving Parent Archivist', this.node?.config.name, this.config)\n }\n }\n }\n}\n","import { MemoryNode } from '@xyo-network/node-memory'\nimport { defaultNetworkConfigs } from '@xyo-network/react-network'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { MemoryNodeBuilder } from './Builders'\nimport { RemoteNodeArchivistOffsetPaths, RemoteNodeOffsetPaths } from './ModuleAccountPaths'\nimport { RootStorageArchivist } from './ModuleNames'\n\nconst knownRemoteNodes = (): { apiDomain: string; name: string }[] => {\n const networkNames = defaultNetworkConfigs.map((config) => config.name)\n return networkNames.map((networkName) => {\n const name = assertDefinedEx<string>(networkName, 'missing name in network config')\n const uri = defaultNetworkConfigs.filter((config) => config.name === networkName)[0].nodes?.filter((node) => node.type === 'archivist')[0].uri\n const apiDomain = assertDefinedEx<string>(uri, 'missing node type \"archivist\" in network config')\n return {\n apiDomain,\n name,\n }\n })\n}\n\nexport const BuildStandardNodes = async (wallet: WalletInstance, onNodeBuilt?: (node: MemoryNode) => void): Promise<MemoryNode[]> => {\n try {\n return await Promise.all(\n knownRemoteNodes().map(async ({ apiDomain, name }) => {\n const remoteNodeOffset = RemoteNodeOffsetPaths[name]\n const remoteNodeWallet = await wallet.derivePath?.(remoteNodeOffset)\n\n const memoryNodeBuilder = await MemoryNodeBuilder.create({ name }, await remoteNodeWallet.derivePath?.('0'))\n await memoryNodeBuilder.addBridge(apiDomain)\n\n const rootArchivistPath = `${remoteNodeOffset}/${RemoteNodeArchivistOffsetPaths[name][RootStorageArchivist]}`\n const rootArchivistAccount = await wallet.derivePath?.(rootArchivistPath)\n await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, 'root')\n\n const { node } = memoryNodeBuilder\n assertDefinedEx(node, 'Memory Node was not built successfully')\n onNodeBuilt?.(node)\n\n return node\n }),\n )\n } catch (e) {\n throw new Error(`Error Creating Known Remote Nodes: ${e}`)\n }\n}\n","export const GlobalNode = 'GlobalNode'\n\nexport const RootStorageArchivist = 'RootStorageArchivist'\n","import { RootStorageArchivist } from './ModuleNames'\n\nexport const GlobalNodeOffsetPath = '15'\n\nexport const RemoteNodeOffsetPaths: Record<string, string> = {\n Kerplunk: '112',\n Local: '111',\n Main: '113',\n}\n\nexport const RemoteNodeArchivistOffsetPaths: Record<string, Record<string, string>> = {\n Kerplunk: {\n MemoryNode: '117',\n [RootStorageArchivist]: '119',\n },\n Local: {\n MemoryNode: '114',\n [RootStorageArchivist]: '116',\n },\n Main: {\n MemoryNode: '120',\n [RootStorageArchivist]: '122',\n },\n}\n"],"mappings":"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","names":["assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx"]}
@@ -1,90 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/components/ActiveStandardNode.tsx
21
- var ActiveStandardNode_exports = {};
22
- __export(ActiveStandardNode_exports, {
23
- ActiveStandardNode: () => ActiveStandardNode
24
- });
25
- module.exports = __toCommonJS(ActiveStandardNode_exports);
26
- var import_react_async_effect = require("@xylabs/react-async-effect");
27
- var import_react_network = require("@xyo-network/react-network");
28
- var import_react_node2 = require("@xyo-network/react-node");
29
- var import_react2 = require("react");
30
-
31
- // src/contexts/StandardRemoteNodes/Context.ts
32
- var import_react_shared = require("@xyo-network/react-shared");
33
- var StandardNodesContext = (0, import_react_shared.createContextEx)();
34
-
35
- // src/contexts/StandardRemoteNodes/use.tsx
36
- var import_react_shared2 = require("@xyo-network/react-shared");
37
- var useStandardNodes = (required = false) => (0, import_react_shared2.useContextEx)(StandardNodesContext, "StandardNodes", required);
38
-
39
- // src/hooks/useActiveNodeAddress.ts
40
- var import_react_node = require("@xyo-network/react-node");
41
- var import_react = require("react");
42
- var useActiveNodeAddress = (networkName) => {
43
- const [node] = (0, import_react_node.useProvidedNode)();
44
- const { nodes, findAddressByName } = useStandardNodes();
45
- const activeNodeAddress = (0, import_react.useMemo)(() => {
46
- if (node && nodes && findAddressByName && networkName) {
47
- return findAddressByName(networkName);
48
- }
49
- }, [findAddressByName, networkName, node, nodes]);
50
- return activeNodeAddress;
51
- };
52
-
53
- // src/components/ActiveStandardNode.tsx
54
- var import_jsx_runtime = require("react/jsx-runtime");
55
- var ActiveStandardNode = ({ children, nodeNameOrAddress }) => {
56
- const { network } = (0, import_react_network.useNetwork)();
57
- const [node] = (0, import_react_node2.useNodeFromNode)(nodeNameOrAddress);
58
- const [activeRemoteNodeAddress, setActiveRemoteNodeAddress] = (0, import_react2.useState)();
59
- const { nodes } = useStandardNodes();
60
- const selectedNodeAddress = useActiveNodeAddress(network == null ? void 0 : network.name);
61
- (0, import_react_async_effect.useAsyncEffect)(
62
- // eslint-disable-next-line react-hooks/exhaustive-deps
63
- async (mounted) => {
64
- var _a;
65
- if (node && selectedNodeAddress) {
66
- try {
67
- if ((_a = await (node == null ? void 0 : node.attached())) == null ? void 0 : _a.includes(selectedNodeAddress)) {
68
- return;
69
- }
70
- await (node == null ? void 0 : node.attach(selectedNodeAddress, true));
71
- if (mounted()) {
72
- if (activeRemoteNodeAddress) {
73
- await (node == null ? void 0 : node.detach(activeRemoteNodeAddress));
74
- }
75
- setActiveRemoteNodeAddress(selectedNodeAddress);
76
- }
77
- } catch (e) {
78
- console.error("Error Attaching Selected Node Address", e);
79
- }
80
- }
81
- },
82
- [activeRemoteNodeAddress, node, selectedNodeAddress, nodes]
83
- );
84
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
85
- };
86
- // Annotate the CommonJS export names for ESM import in node:
87
- 0 && (module.exports = {
88
- ActiveStandardNode
89
- });
90
- //# sourceMappingURL=ActiveStandardNode.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/ActiveStandardNode.tsx","../../../src/contexts/StandardRemoteNodes/Context.ts","../../../src/contexts/StandardRemoteNodes/use.tsx","../../../src/hooks/useActiveNodeAddress.ts"],"sourcesContent":["import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useNodeFromNode } from '@xyo-network/react-node'\nimport { useState } from 'react'\n\nimport { useStandardNodes } from '../contexts'\nimport { useActiveNodeAddress } from '../hooks'\n\nexport interface ActiveStandardNodeProps extends WithChildren {\n nodeNameOrAddress?: string\n}\n\nexport const ActiveStandardNode: React.FC<ActiveStandardNodeProps> = ({ children, nodeNameOrAddress }) => {\n const { network } = useNetwork()\n const [node] = useNodeFromNode(nodeNameOrAddress)\n const [activeRemoteNodeAddress, setActiveRemoteNodeAddress] = useState<string>()\n const { nodes } = useStandardNodes()\n\n const selectedNodeAddress = useActiveNodeAddress(network?.name)\n\n // Probably needs to rely on node events rather than provider values to ensure its registered\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (node && selectedNodeAddress) {\n try {\n if ((await node?.attached())?.includes(selectedNodeAddress)) {\n return\n }\n await node?.attach(selectedNodeAddress, true)\n\n if (mounted()) {\n // cleanup\n if (activeRemoteNodeAddress) {\n await node?.detach(activeRemoteNodeAddress)\n }\n setActiveRemoteNodeAddress(selectedNodeAddress)\n }\n } catch (e) {\n console.error('Error Attaching Selected Node Address', e)\n }\n }\n },\n [activeRemoteNodeAddress, node, selectedNodeAddress, nodes],\n )\n\n return <>{children}</>\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { StandardNodesState } from './State'\n\nexport const StandardNodesContext = createContextEx<StandardNodesState>()\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { StandardNodesContext } from './Context'\n\nexport const useStandardNodes = (required = false) => useContextEx(StandardNodesContext, 'StandardNodes', required)\n","import { useProvidedNode } from '@xyo-network/react-node'\nimport { useMemo } from 'react'\n\nimport { useStandardNodes } from '../contexts'\n\nexport const useActiveNodeAddress = (networkName?: string) => {\n const [node] = useProvidedNode()\n const { nodes, findAddressByName } = useStandardNodes()\n\n const activeNodeAddress = useMemo(() => {\n if (node && nodes && findAddressByName && networkName) {\n return findAddressByName(networkName)\n }\n }, [findAddressByName, networkName, node, nodes])\n\n return activeNodeAddress\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAA+B;AAE/B,2BAA2B;AAC3B,IAAAA,qBAAgC;AAChC,IAAAC,gBAAyB;;;ACJzB,0BAAgC;AAIzB,IAAM,2BAAuB,qCAAoC;;;ACJxE,IAAAC,uBAA6B;AAItB,IAAM,mBAAmB,CAAC,WAAW,cAAU,mCAAa,sBAAsB,iBAAiB,QAAQ;;;ACJlH,wBAAgC;AAChC,mBAAwB;AAIjB,IAAM,uBAAuB,CAAC,gBAAyB;AAC5D,QAAM,CAAC,IAAI,QAAI,mCAAgB;AAC/B,QAAM,EAAE,OAAO,kBAAkB,IAAI,iBAAiB;AAEtD,QAAM,wBAAoB,sBAAQ,MAAM;AACtC,QAAI,QAAQ,SAAS,qBAAqB,aAAa;AACrD,aAAO,kBAAkB,WAAW;AAAA,IACtC;AAAA,EACF,GAAG,CAAC,mBAAmB,aAAa,MAAM,KAAK,CAAC;AAEhD,SAAO;AACT;;;AH+BS;AAlCF,IAAM,qBAAwD,CAAC,EAAE,UAAU,kBAAkB,MAAM;AACxG,QAAM,EAAE,QAAQ,QAAI,iCAAW;AAC/B,QAAM,CAAC,IAAI,QAAI,oCAAgB,iBAAiB;AAChD,QAAM,CAAC,yBAAyB,0BAA0B,QAAI,wBAAiB;AAC/E,QAAM,EAAE,MAAM,IAAI,iBAAiB;AAEnC,QAAM,sBAAsB,qBAAqB,mCAAS,IAAI;AAG9D;AAAA;AAAA,IAEE,OAAO,YAAY;AAxBvB;AAyBM,UAAI,QAAQ,qBAAqB;AAC/B,YAAI;AACF,eAAK,YAAM,6BAAM,gBAAZ,mBAAyB,SAAS,sBAAsB;AAC3D;AAAA,UACF;AACA,iBAAM,6BAAM,OAAO,qBAAqB;AAExC,cAAI,QAAQ,GAAG;AAEb,gBAAI,yBAAyB;AAC3B,qBAAM,6BAAM,OAAO;AAAA,YACrB;AACA,uCAA2B,mBAAmB;AAAA,UAChD;AAAA,QACF,SAAS,GAAG;AACV,kBAAQ,MAAM,yCAAyC,CAAC;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,yBAAyB,MAAM,qBAAqB,KAAK;AAAA,EAC5D;AAEA,SAAO,2EAAG,UAAS;AACrB;","names":["import_react_node","import_react","import_react_shared"]}
@@ -1,65 +0,0 @@
1
- // src/components/ActiveStandardNode.tsx
2
- import { useAsyncEffect } from "@xylabs/react-async-effect";
3
- import { useNetwork } from "@xyo-network/react-network";
4
- import { useNodeFromNode } from "@xyo-network/react-node";
5
- import { useState } from "react";
6
-
7
- // src/contexts/StandardRemoteNodes/Context.ts
8
- import { createContextEx } from "@xyo-network/react-shared";
9
- var StandardNodesContext = createContextEx();
10
-
11
- // src/contexts/StandardRemoteNodes/use.tsx
12
- import { useContextEx } from "@xyo-network/react-shared";
13
- var useStandardNodes = (required = false) => useContextEx(StandardNodesContext, "StandardNodes", required);
14
-
15
- // src/hooks/useActiveNodeAddress.ts
16
- import { useProvidedNode } from "@xyo-network/react-node";
17
- import { useMemo } from "react";
18
- var useActiveNodeAddress = (networkName) => {
19
- const [node] = useProvidedNode();
20
- const { nodes, findAddressByName } = useStandardNodes();
21
- const activeNodeAddress = useMemo(() => {
22
- if (node && nodes && findAddressByName && networkName) {
23
- return findAddressByName(networkName);
24
- }
25
- }, [findAddressByName, networkName, node, nodes]);
26
- return activeNodeAddress;
27
- };
28
-
29
- // src/components/ActiveStandardNode.tsx
30
- import { Fragment, jsx } from "react/jsx-runtime";
31
- var ActiveStandardNode = ({ children, nodeNameOrAddress }) => {
32
- const { network } = useNetwork();
33
- const [node] = useNodeFromNode(nodeNameOrAddress);
34
- const [activeRemoteNodeAddress, setActiveRemoteNodeAddress] = useState();
35
- const { nodes } = useStandardNodes();
36
- const selectedNodeAddress = useActiveNodeAddress(network == null ? void 0 : network.name);
37
- useAsyncEffect(
38
- // eslint-disable-next-line react-hooks/exhaustive-deps
39
- async (mounted) => {
40
- var _a;
41
- if (node && selectedNodeAddress) {
42
- try {
43
- if ((_a = await (node == null ? void 0 : node.attached())) == null ? void 0 : _a.includes(selectedNodeAddress)) {
44
- return;
45
- }
46
- await (node == null ? void 0 : node.attach(selectedNodeAddress, true));
47
- if (mounted()) {
48
- if (activeRemoteNodeAddress) {
49
- await (node == null ? void 0 : node.detach(activeRemoteNodeAddress));
50
- }
51
- setActiveRemoteNodeAddress(selectedNodeAddress);
52
- }
53
- } catch (e) {
54
- console.error("Error Attaching Selected Node Address", e);
55
- }
56
- }
57
- },
58
- [activeRemoteNodeAddress, node, selectedNodeAddress, nodes]
59
- );
60
- return /* @__PURE__ */ jsx(Fragment, { children });
61
- };
62
- export {
63
- ActiveStandardNode
64
- };
65
- //# sourceMappingURL=ActiveStandardNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/ActiveStandardNode.tsx","../../../src/contexts/StandardRemoteNodes/Context.ts","../../../src/contexts/StandardRemoteNodes/use.tsx","../../../src/hooks/useActiveNodeAddress.ts"],"sourcesContent":["import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useNodeFromNode } from '@xyo-network/react-node'\nimport { useState } from 'react'\n\nimport { useStandardNodes } from '../contexts'\nimport { useActiveNodeAddress } from '../hooks'\n\nexport interface ActiveStandardNodeProps extends WithChildren {\n nodeNameOrAddress?: string\n}\n\nexport const ActiveStandardNode: React.FC<ActiveStandardNodeProps> = ({ children, nodeNameOrAddress }) => {\n const { network } = useNetwork()\n const [node] = useNodeFromNode(nodeNameOrAddress)\n const [activeRemoteNodeAddress, setActiveRemoteNodeAddress] = useState<string>()\n const { nodes } = useStandardNodes()\n\n const selectedNodeAddress = useActiveNodeAddress(network?.name)\n\n // Probably needs to rely on node events rather than provider values to ensure its registered\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (node && selectedNodeAddress) {\n try {\n if ((await node?.attached())?.includes(selectedNodeAddress)) {\n return\n }\n await node?.attach(selectedNodeAddress, true)\n\n if (mounted()) {\n // cleanup\n if (activeRemoteNodeAddress) {\n await node?.detach(activeRemoteNodeAddress)\n }\n setActiveRemoteNodeAddress(selectedNodeAddress)\n }\n } catch (e) {\n console.error('Error Attaching Selected Node Address', e)\n }\n }\n },\n [activeRemoteNodeAddress, node, selectedNodeAddress, nodes],\n )\n\n return <>{children}</>\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { StandardNodesState } from './State'\n\nexport const StandardNodesContext = createContextEx<StandardNodesState>()\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { StandardNodesContext } from './Context'\n\nexport const useStandardNodes = (required = false) => useContextEx(StandardNodesContext, 'StandardNodes', required)\n","import { useProvidedNode } from '@xyo-network/react-node'\nimport { useMemo } from 'react'\n\nimport { useStandardNodes } from '../contexts'\n\nexport const useActiveNodeAddress = (networkName?: string) => {\n const [node] = useProvidedNode()\n const { nodes, findAddressByName } = useStandardNodes()\n\n const activeNodeAddress = useMemo(() => {\n if (node && nodes && findAddressByName && networkName) {\n return findAddressByName(networkName)\n }\n }, [findAddressByName, networkName, node, nodes])\n\n return activeNodeAddress\n}\n"],"mappings":";AAAA,SAAS,sBAAsB;AAE/B,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAChC,SAAS,gBAAgB;;;ACJzB,SAAS,uBAAuB;AAIzB,IAAM,uBAAuB,gBAAoC;;;ACJxE,SAAS,oBAAoB;AAItB,IAAM,mBAAmB,CAAC,WAAW,UAAU,aAAa,sBAAsB,iBAAiB,QAAQ;;;ACJlH,SAAS,uBAAuB;AAChC,SAAS,eAAe;AAIjB,IAAM,uBAAuB,CAAC,gBAAyB;AAC5D,QAAM,CAAC,IAAI,IAAI,gBAAgB;AAC/B,QAAM,EAAE,OAAO,kBAAkB,IAAI,iBAAiB;AAEtD,QAAM,oBAAoB,QAAQ,MAAM;AACtC,QAAI,QAAQ,SAAS,qBAAqB,aAAa;AACrD,aAAO,kBAAkB,WAAW;AAAA,IACtC;AAAA,EACF,GAAG,CAAC,mBAAmB,aAAa,MAAM,KAAK,CAAC;AAEhD,SAAO;AACT;;;AH+BS;AAlCF,IAAM,qBAAwD,CAAC,EAAE,UAAU,kBAAkB,MAAM;AACxG,QAAM,EAAE,QAAQ,IAAI,WAAW;AAC/B,QAAM,CAAC,IAAI,IAAI,gBAAgB,iBAAiB;AAChD,QAAM,CAAC,yBAAyB,0BAA0B,IAAI,SAAiB;AAC/E,QAAM,EAAE,MAAM,IAAI,iBAAiB;AAEnC,QAAM,sBAAsB,qBAAqB,mCAAS,IAAI;AAG9D;AAAA;AAAA,IAEE,OAAO,YAAY;AAxBvB;AAyBM,UAAI,QAAQ,qBAAqB;AAC/B,YAAI;AACF,eAAK,YAAM,6BAAM,gBAAZ,mBAAyB,SAAS,sBAAsB;AAC3D;AAAA,UACF;AACA,iBAAM,6BAAM,OAAO,qBAAqB;AAExC,cAAI,QAAQ,GAAG;AAEb,gBAAI,yBAAyB;AAC3B,qBAAM,6BAAM,OAAO;AAAA,YACrB;AACA,uCAA2B,mBAAmB;AAAA,UAChD;AAAA,QACF,SAAS,GAAG;AACV,kBAAQ,MAAM,yCAAyC,CAAC;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,yBAAyB,MAAM,qBAAqB,KAAK;AAAA,EAC5D;AAEA,SAAO,gCAAG,UAAS;AACrB;","names":[]}
@@ -1,92 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/components/index.ts
21
- var components_exports = {};
22
- __export(components_exports, {
23
- ActiveStandardNode: () => ActiveStandardNode
24
- });
25
- module.exports = __toCommonJS(components_exports);
26
-
27
- // src/components/ActiveStandardNode.tsx
28
- var import_react_async_effect = require("@xylabs/react-async-effect");
29
- var import_react_network = require("@xyo-network/react-network");
30
- var import_react_node2 = require("@xyo-network/react-node");
31
- var import_react2 = require("react");
32
-
33
- // src/contexts/StandardRemoteNodes/Context.ts
34
- var import_react_shared = require("@xyo-network/react-shared");
35
- var StandardNodesContext = (0, import_react_shared.createContextEx)();
36
-
37
- // src/contexts/StandardRemoteNodes/use.tsx
38
- var import_react_shared2 = require("@xyo-network/react-shared");
39
- var useStandardNodes = (required = false) => (0, import_react_shared2.useContextEx)(StandardNodesContext, "StandardNodes", required);
40
-
41
- // src/hooks/useActiveNodeAddress.ts
42
- var import_react_node = require("@xyo-network/react-node");
43
- var import_react = require("react");
44
- var useActiveNodeAddress = (networkName) => {
45
- const [node] = (0, import_react_node.useProvidedNode)();
46
- const { nodes, findAddressByName } = useStandardNodes();
47
- const activeNodeAddress = (0, import_react.useMemo)(() => {
48
- if (node && nodes && findAddressByName && networkName) {
49
- return findAddressByName(networkName);
50
- }
51
- }, [findAddressByName, networkName, node, nodes]);
52
- return activeNodeAddress;
53
- };
54
-
55
- // src/components/ActiveStandardNode.tsx
56
- var import_jsx_runtime = require("react/jsx-runtime");
57
- var ActiveStandardNode = ({ children, nodeNameOrAddress }) => {
58
- const { network } = (0, import_react_network.useNetwork)();
59
- const [node] = (0, import_react_node2.useNodeFromNode)(nodeNameOrAddress);
60
- const [activeRemoteNodeAddress, setActiveRemoteNodeAddress] = (0, import_react2.useState)();
61
- const { nodes } = useStandardNodes();
62
- const selectedNodeAddress = useActiveNodeAddress(network == null ? void 0 : network.name);
63
- (0, import_react_async_effect.useAsyncEffect)(
64
- // eslint-disable-next-line react-hooks/exhaustive-deps
65
- async (mounted) => {
66
- var _a;
67
- if (node && selectedNodeAddress) {
68
- try {
69
- if ((_a = await (node == null ? void 0 : node.attached())) == null ? void 0 : _a.includes(selectedNodeAddress)) {
70
- return;
71
- }
72
- await (node == null ? void 0 : node.attach(selectedNodeAddress, true));
73
- if (mounted()) {
74
- if (activeRemoteNodeAddress) {
75
- await (node == null ? void 0 : node.detach(activeRemoteNodeAddress));
76
- }
77
- setActiveRemoteNodeAddress(selectedNodeAddress);
78
- }
79
- } catch (e) {
80
- console.error("Error Attaching Selected Node Address", e);
81
- }
82
- }
83
- },
84
- [activeRemoteNodeAddress, node, selectedNodeAddress, nodes]
85
- );
86
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
87
- };
88
- // Annotate the CommonJS export names for ESM import in node:
89
- 0 && (module.exports = {
90
- ActiveStandardNode
91
- });
92
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/index.ts","../../../src/components/ActiveStandardNode.tsx","../../../src/contexts/StandardRemoteNodes/Context.ts","../../../src/contexts/StandardRemoteNodes/use.tsx","../../../src/hooks/useActiveNodeAddress.ts"],"sourcesContent":["export * from './ActiveStandardNode'\n","import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useNodeFromNode } from '@xyo-network/react-node'\nimport { useState } from 'react'\n\nimport { useStandardNodes } from '../contexts'\nimport { useActiveNodeAddress } from '../hooks'\n\nexport interface ActiveStandardNodeProps extends WithChildren {\n nodeNameOrAddress?: string\n}\n\nexport const ActiveStandardNode: React.FC<ActiveStandardNodeProps> = ({ children, nodeNameOrAddress }) => {\n const { network } = useNetwork()\n const [node] = useNodeFromNode(nodeNameOrAddress)\n const [activeRemoteNodeAddress, setActiveRemoteNodeAddress] = useState<string>()\n const { nodes } = useStandardNodes()\n\n const selectedNodeAddress = useActiveNodeAddress(network?.name)\n\n // Probably needs to rely on node events rather than provider values to ensure its registered\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (node && selectedNodeAddress) {\n try {\n if ((await node?.attached())?.includes(selectedNodeAddress)) {\n return\n }\n await node?.attach(selectedNodeAddress, true)\n\n if (mounted()) {\n // cleanup\n if (activeRemoteNodeAddress) {\n await node?.detach(activeRemoteNodeAddress)\n }\n setActiveRemoteNodeAddress(selectedNodeAddress)\n }\n } catch (e) {\n console.error('Error Attaching Selected Node Address', e)\n }\n }\n },\n [activeRemoteNodeAddress, node, selectedNodeAddress, nodes],\n )\n\n return <>{children}</>\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { StandardNodesState } from './State'\n\nexport const StandardNodesContext = createContextEx<StandardNodesState>()\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { StandardNodesContext } from './Context'\n\nexport const useStandardNodes = (required = false) => useContextEx(StandardNodesContext, 'StandardNodes', required)\n","import { useProvidedNode } from '@xyo-network/react-node'\nimport { useMemo } from 'react'\n\nimport { useStandardNodes } from '../contexts'\n\nexport const useActiveNodeAddress = (networkName?: string) => {\n const [node] = useProvidedNode()\n const { nodes, findAddressByName } = useStandardNodes()\n\n const activeNodeAddress = useMemo(() => {\n if (node && nodes && findAddressByName && networkName) {\n return findAddressByName(networkName)\n }\n }, [findAddressByName, networkName, node, nodes])\n\n return activeNodeAddress\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,gCAA+B;AAE/B,2BAA2B;AAC3B,IAAAA,qBAAgC;AAChC,IAAAC,gBAAyB;;;ACJzB,0BAAgC;AAIzB,IAAM,2BAAuB,qCAAoC;;;ACJxE,IAAAC,uBAA6B;AAItB,IAAM,mBAAmB,CAAC,WAAW,cAAU,mCAAa,sBAAsB,iBAAiB,QAAQ;;;ACJlH,wBAAgC;AAChC,mBAAwB;AAIjB,IAAM,uBAAuB,CAAC,gBAAyB;AAC5D,QAAM,CAAC,IAAI,QAAI,mCAAgB;AAC/B,QAAM,EAAE,OAAO,kBAAkB,IAAI,iBAAiB;AAEtD,QAAM,wBAAoB,sBAAQ,MAAM;AACtC,QAAI,QAAQ,SAAS,qBAAqB,aAAa;AACrD,aAAO,kBAAkB,WAAW;AAAA,IACtC;AAAA,EACF,GAAG,CAAC,mBAAmB,aAAa,MAAM,KAAK,CAAC;AAEhD,SAAO;AACT;;;AH+BS;AAlCF,IAAM,qBAAwD,CAAC,EAAE,UAAU,kBAAkB,MAAM;AACxG,QAAM,EAAE,QAAQ,QAAI,iCAAW;AAC/B,QAAM,CAAC,IAAI,QAAI,oCAAgB,iBAAiB;AAChD,QAAM,CAAC,yBAAyB,0BAA0B,QAAI,wBAAiB;AAC/E,QAAM,EAAE,MAAM,IAAI,iBAAiB;AAEnC,QAAM,sBAAsB,qBAAqB,mCAAS,IAAI;AAG9D;AAAA;AAAA,IAEE,OAAO,YAAY;AAxBvB;AAyBM,UAAI,QAAQ,qBAAqB;AAC/B,YAAI;AACF,eAAK,YAAM,6BAAM,gBAAZ,mBAAyB,SAAS,sBAAsB;AAC3D;AAAA,UACF;AACA,iBAAM,6BAAM,OAAO,qBAAqB;AAExC,cAAI,QAAQ,GAAG;AAEb,gBAAI,yBAAyB;AAC3B,qBAAM,6BAAM,OAAO;AAAA,YACrB;AACA,uCAA2B,mBAAmB;AAAA,UAChD;AAAA,QACF,SAAS,GAAG;AACV,kBAAQ,MAAM,yCAAyC,CAAC;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,yBAAyB,MAAM,qBAAqB,KAAK;AAAA,EAC5D;AAEA,SAAO,2EAAG,UAAS;AACrB;","names":["import_react_node","import_react","import_react_shared"]}
@@ -1,65 +0,0 @@
1
- // src/components/ActiveStandardNode.tsx
2
- import { useAsyncEffect } from "@xylabs/react-async-effect";
3
- import { useNetwork } from "@xyo-network/react-network";
4
- import { useNodeFromNode } from "@xyo-network/react-node";
5
- import { useState } from "react";
6
-
7
- // src/contexts/StandardRemoteNodes/Context.ts
8
- import { createContextEx } from "@xyo-network/react-shared";
9
- var StandardNodesContext = createContextEx();
10
-
11
- // src/contexts/StandardRemoteNodes/use.tsx
12
- import { useContextEx } from "@xyo-network/react-shared";
13
- var useStandardNodes = (required = false) => useContextEx(StandardNodesContext, "StandardNodes", required);
14
-
15
- // src/hooks/useActiveNodeAddress.ts
16
- import { useProvidedNode } from "@xyo-network/react-node";
17
- import { useMemo } from "react";
18
- var useActiveNodeAddress = (networkName) => {
19
- const [node] = useProvidedNode();
20
- const { nodes, findAddressByName } = useStandardNodes();
21
- const activeNodeAddress = useMemo(() => {
22
- if (node && nodes && findAddressByName && networkName) {
23
- return findAddressByName(networkName);
24
- }
25
- }, [findAddressByName, networkName, node, nodes]);
26
- return activeNodeAddress;
27
- };
28
-
29
- // src/components/ActiveStandardNode.tsx
30
- import { Fragment, jsx } from "react/jsx-runtime";
31
- var ActiveStandardNode = ({ children, nodeNameOrAddress }) => {
32
- const { network } = useNetwork();
33
- const [node] = useNodeFromNode(nodeNameOrAddress);
34
- const [activeRemoteNodeAddress, setActiveRemoteNodeAddress] = useState();
35
- const { nodes } = useStandardNodes();
36
- const selectedNodeAddress = useActiveNodeAddress(network == null ? void 0 : network.name);
37
- useAsyncEffect(
38
- // eslint-disable-next-line react-hooks/exhaustive-deps
39
- async (mounted) => {
40
- var _a;
41
- if (node && selectedNodeAddress) {
42
- try {
43
- if ((_a = await (node == null ? void 0 : node.attached())) == null ? void 0 : _a.includes(selectedNodeAddress)) {
44
- return;
45
- }
46
- await (node == null ? void 0 : node.attach(selectedNodeAddress, true));
47
- if (mounted()) {
48
- if (activeRemoteNodeAddress) {
49
- await (node == null ? void 0 : node.detach(activeRemoteNodeAddress));
50
- }
51
- setActiveRemoteNodeAddress(selectedNodeAddress);
52
- }
53
- } catch (e) {
54
- console.error("Error Attaching Selected Node Address", e);
55
- }
56
- }
57
- },
58
- [activeRemoteNodeAddress, node, selectedNodeAddress, nodes]
59
- );
60
- return /* @__PURE__ */ jsx(Fragment, { children });
61
- };
62
- export {
63
- ActiveStandardNode
64
- };
65
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/ActiveStandardNode.tsx","../../../src/contexts/StandardRemoteNodes/Context.ts","../../../src/contexts/StandardRemoteNodes/use.tsx","../../../src/hooks/useActiveNodeAddress.ts"],"sourcesContent":["import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useNodeFromNode } from '@xyo-network/react-node'\nimport { useState } from 'react'\n\nimport { useStandardNodes } from '../contexts'\nimport { useActiveNodeAddress } from '../hooks'\n\nexport interface ActiveStandardNodeProps extends WithChildren {\n nodeNameOrAddress?: string\n}\n\nexport const ActiveStandardNode: React.FC<ActiveStandardNodeProps> = ({ children, nodeNameOrAddress }) => {\n const { network } = useNetwork()\n const [node] = useNodeFromNode(nodeNameOrAddress)\n const [activeRemoteNodeAddress, setActiveRemoteNodeAddress] = useState<string>()\n const { nodes } = useStandardNodes()\n\n const selectedNodeAddress = useActiveNodeAddress(network?.name)\n\n // Probably needs to rely on node events rather than provider values to ensure its registered\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (node && selectedNodeAddress) {\n try {\n if ((await node?.attached())?.includes(selectedNodeAddress)) {\n return\n }\n await node?.attach(selectedNodeAddress, true)\n\n if (mounted()) {\n // cleanup\n if (activeRemoteNodeAddress) {\n await node?.detach(activeRemoteNodeAddress)\n }\n setActiveRemoteNodeAddress(selectedNodeAddress)\n }\n } catch (e) {\n console.error('Error Attaching Selected Node Address', e)\n }\n }\n },\n [activeRemoteNodeAddress, node, selectedNodeAddress, nodes],\n )\n\n return <>{children}</>\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { StandardNodesState } from './State'\n\nexport const StandardNodesContext = createContextEx<StandardNodesState>()\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { StandardNodesContext } from './Context'\n\nexport const useStandardNodes = (required = false) => useContextEx(StandardNodesContext, 'StandardNodes', required)\n","import { useProvidedNode } from '@xyo-network/react-node'\nimport { useMemo } from 'react'\n\nimport { useStandardNodes } from '../contexts'\n\nexport const useActiveNodeAddress = (networkName?: string) => {\n const [node] = useProvidedNode()\n const { nodes, findAddressByName } = useStandardNodes()\n\n const activeNodeAddress = useMemo(() => {\n if (node && nodes && findAddressByName && networkName) {\n return findAddressByName(networkName)\n }\n }, [findAddressByName, networkName, node, nodes])\n\n return activeNodeAddress\n}\n"],"mappings":";AAAA,SAAS,sBAAsB;AAE/B,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAChC,SAAS,gBAAgB;;;ACJzB,SAAS,uBAAuB;AAIzB,IAAM,uBAAuB,gBAAoC;;;ACJxE,SAAS,oBAAoB;AAItB,IAAM,mBAAmB,CAAC,WAAW,UAAU,aAAa,sBAAsB,iBAAiB,QAAQ;;;ACJlH,SAAS,uBAAuB;AAChC,SAAS,eAAe;AAIjB,IAAM,uBAAuB,CAAC,gBAAyB;AAC5D,QAAM,CAAC,IAAI,IAAI,gBAAgB;AAC/B,QAAM,EAAE,OAAO,kBAAkB,IAAI,iBAAiB;AAEtD,QAAM,oBAAoB,QAAQ,MAAM;AACtC,QAAI,QAAQ,SAAS,qBAAqB,aAAa;AACrD,aAAO,kBAAkB,WAAW;AAAA,IACtC;AAAA,EACF,GAAG,CAAC,mBAAmB,aAAa,MAAM,KAAK,CAAC;AAEhD,SAAO;AACT;;;AH+BS;AAlCF,IAAM,qBAAwD,CAAC,EAAE,UAAU,kBAAkB,MAAM;AACxG,QAAM,EAAE,QAAQ,IAAI,WAAW;AAC/B,QAAM,CAAC,IAAI,IAAI,gBAAgB,iBAAiB;AAChD,QAAM,CAAC,yBAAyB,0BAA0B,IAAI,SAAiB;AAC/E,QAAM,EAAE,MAAM,IAAI,iBAAiB;AAEnC,QAAM,sBAAsB,qBAAqB,mCAAS,IAAI;AAG9D;AAAA;AAAA,IAEE,OAAO,YAAY;AAxBvB;AAyBM,UAAI,QAAQ,qBAAqB;AAC/B,YAAI;AACF,eAAK,YAAM,6BAAM,gBAAZ,mBAAyB,SAAS,sBAAsB;AAC3D;AAAA,UACF;AACA,iBAAM,6BAAM,OAAO,qBAAqB;AAExC,cAAI,QAAQ,GAAG;AAEb,gBAAI,yBAAyB;AAC3B,qBAAM,6BAAM,OAAO;AAAA,YACrB;AACA,uCAA2B,mBAAmB;AAAA,UAChD;AAAA,QACF,SAAS,GAAG;AACV,kBAAQ,MAAM,yCAAyC,CAAC;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,yBAAyB,MAAM,qBAAqB,KAAK;AAAA,EAC5D;AAEA,SAAO,gCAAG,UAAS;AACrB;","names":[]}