@xyo-network/react-standard-node 2.64.0-rc.7 → 2.64.1

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 (262) hide show
  1. package/dist/browser/components/ActiveStandardNode.cjs +85 -0
  2. package/dist/browser/components/ActiveStandardNode.cjs.map +1 -0
  3. package/dist/browser/components/ActiveStandardNode.d.cts +7 -0
  4. package/dist/browser/components/ActiveStandardNode.d.cts.map +1 -0
  5. package/dist/browser/components/ActiveStandardNode.js +27 -4
  6. package/dist/browser/components/ActiveStandardNode.js.map +1 -1
  7. package/dist/browser/components/index.cjs +87 -0
  8. package/dist/browser/components/index.cjs.map +1 -0
  9. package/dist/browser/components/index.d.cts +2 -0
  10. package/dist/browser/components/index.d.cts.map +1 -0
  11. package/dist/browser/components/index.js +63 -1
  12. package/dist/browser/components/index.js.map +1 -1
  13. package/dist/browser/contexts/StandardRemoteNodes/Context.cjs +28 -0
  14. package/dist/{node/contexts/StandardRemoteNodes/Context.mjs.map → browser/contexts/StandardRemoteNodes/Context.cjs.map} +1 -1
  15. package/dist/browser/contexts/StandardRemoteNodes/Context.d.cts +4 -0
  16. package/dist/browser/contexts/StandardRemoteNodes/Context.d.cts.map +1 -0
  17. package/dist/browser/contexts/StandardRemoteNodes/Context.js +2 -1
  18. package/dist/browser/contexts/StandardRemoteNodes/Context.js.map +1 -1
  19. package/dist/browser/contexts/StandardRemoteNodes/Providers.cjs +308 -0
  20. package/dist/browser/contexts/StandardRemoteNodes/Providers.cjs.map +1 -0
  21. package/dist/browser/contexts/StandardRemoteNodes/Providers.d.cts +11 -0
  22. package/dist/browser/contexts/StandardRemoteNodes/Providers.d.cts.map +1 -0
  23. package/dist/browser/contexts/StandardRemoteNodes/Providers.js +245 -7
  24. package/dist/browser/contexts/StandardRemoteNodes/Providers.js.map +1 -1
  25. package/dist/browser/contexts/StandardRemoteNodes/State.cjs +19 -0
  26. package/dist/browser/contexts/StandardRemoteNodes/State.cjs.map +1 -0
  27. package/dist/browser/contexts/StandardRemoteNodes/State.d.cts +7 -0
  28. package/dist/browser/contexts/StandardRemoteNodes/State.d.cts.map +1 -0
  29. package/dist/browser/contexts/StandardRemoteNodes/index.cjs +316 -0
  30. package/dist/browser/contexts/StandardRemoteNodes/index.cjs.map +1 -0
  31. package/dist/browser/contexts/StandardRemoteNodes/index.d.cts +5 -0
  32. package/dist/browser/contexts/StandardRemoteNodes/index.d.cts.map +1 -0
  33. package/dist/browser/contexts/StandardRemoteNodes/index.js +292 -4
  34. package/dist/browser/contexts/StandardRemoteNodes/index.js.map +1 -1
  35. package/dist/browser/contexts/StandardRemoteNodes/use.cjs +34 -0
  36. package/dist/browser/contexts/StandardRemoteNodes/use.cjs.map +1 -0
  37. package/dist/browser/contexts/StandardRemoteNodes/use.d.cts +2 -0
  38. package/dist/browser/contexts/StandardRemoteNodes/use.d.cts.map +1 -0
  39. package/dist/browser/contexts/StandardRemoteNodes/use.js +8 -2
  40. package/dist/browser/contexts/StandardRemoteNodes/use.js.map +1 -1
  41. package/dist/browser/contexts/index.cjs +316 -0
  42. package/dist/browser/contexts/index.cjs.map +1 -0
  43. package/dist/browser/contexts/index.d.cts +2 -0
  44. package/dist/browser/contexts/index.d.cts.map +1 -0
  45. package/dist/browser/contexts/index.js +292 -1
  46. package/dist/browser/contexts/index.js.map +1 -1
  47. package/dist/browser/hooks/index.cjs +50 -0
  48. package/dist/browser/hooks/index.cjs.map +1 -0
  49. package/dist/browser/hooks/index.d.cts +2 -0
  50. package/dist/browser/hooks/index.d.cts.map +1 -0
  51. package/dist/browser/hooks/index.js +26 -1
  52. package/dist/browser/hooks/index.js.map +1 -1
  53. package/dist/browser/hooks/useActiveNodeAddress.cjs +48 -0
  54. package/dist/browser/hooks/useActiveNodeAddress.cjs.map +1 -0
  55. package/dist/browser/hooks/useActiveNodeAddress.d.cts +2 -0
  56. package/dist/browser/hooks/useActiveNodeAddress.d.cts.map +1 -0
  57. package/dist/browser/hooks/useActiveNodeAddress.js +12 -2
  58. package/dist/browser/hooks/useActiveNodeAddress.js.map +1 -1
  59. package/dist/browser/index.cjs +382 -0
  60. package/dist/browser/index.cjs.map +1 -0
  61. package/dist/browser/index.d.cts +5 -0
  62. package/dist/browser/index.d.cts.map +1 -0
  63. package/dist/browser/index.js +358 -4
  64. package/dist/browser/index.js.map +1 -1
  65. package/dist/browser/lib/Builders/MemoryNodeBuilder.cjs +194 -0
  66. package/dist/browser/lib/Builders/MemoryNodeBuilder.cjs.map +1 -0
  67. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.cts +166 -0
  68. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.cts.map +1 -0
  69. package/dist/browser/lib/Builders/MemoryNodeBuilder.js +88 -5
  70. package/dist/browser/lib/Builders/MemoryNodeBuilder.js.map +1 -1
  71. package/dist/browser/lib/Builders/SentinelBuilder.cjs +54 -0
  72. package/dist/{node/lib/Builders/SentinelBuilder.mjs.map → browser/lib/Builders/SentinelBuilder.cjs.map} +1 -1
  73. package/dist/browser/lib/Builders/SentinelBuilder.d.cts +205 -0
  74. package/dist/browser/lib/Builders/SentinelBuilder.d.cts.map +1 -0
  75. package/dist/browser/lib/Builders/SentinelBuilder.js +3 -2
  76. package/dist/browser/lib/Builders/SentinelBuilder.js.map +1 -1
  77. package/dist/browser/lib/Builders/StorageArchivistBuilder.cjs +76 -0
  78. package/dist/{node/lib/Builders/StorageArchivistBuilder.mjs.map → browser/lib/Builders/StorageArchivistBuilder.cjs.map} +1 -1
  79. package/dist/browser/lib/Builders/StorageArchivistBuilder.d.cts +221 -0
  80. package/dist/browser/lib/Builders/StorageArchivistBuilder.d.cts.map +1 -0
  81. package/dist/browser/lib/Builders/StorageArchivistBuilder.js +3 -2
  82. package/dist/browser/lib/Builders/StorageArchivistBuilder.js.map +1 -1
  83. package/dist/browser/lib/Builders/index.cjs +198 -0
  84. package/dist/browser/lib/Builders/index.cjs.map +1 -0
  85. package/dist/browser/lib/Builders/index.d.cts +4 -0
  86. package/dist/browser/lib/Builders/index.d.cts.map +1 -0
  87. package/dist/browser/lib/Builders/index.js +174 -3
  88. package/dist/browser/lib/Builders/index.js.map +1 -1
  89. package/dist/browser/lib/ModuleAccountPaths.cjs +53 -0
  90. package/dist/browser/lib/ModuleAccountPaths.cjs.map +1 -0
  91. package/dist/browser/lib/ModuleAccountPaths.d.cts +4 -0
  92. package/dist/browser/lib/ModuleAccountPaths.d.cts.map +1 -0
  93. package/dist/browser/lib/ModuleAccountPaths.js +7 -4
  94. package/dist/browser/lib/ModuleAccountPaths.js.map +1 -1
  95. package/dist/browser/lib/ModuleNames.cjs +29 -0
  96. package/dist/{node/lib/ModuleNames.mjs.map → browser/lib/ModuleNames.cjs.map} +1 -1
  97. package/dist/browser/lib/ModuleNames.d.cts +3 -0
  98. package/dist/browser/lib/ModuleNames.d.cts.map +1 -0
  99. package/dist/browser/lib/ModuleNames.js +3 -2
  100. package/dist/browser/lib/ModuleNames.js.map +1 -1
  101. package/dist/browser/lib/buildNodes.cjs +257 -0
  102. package/dist/browser/lib/buildNodes.cjs.map +1 -0
  103. package/dist/browser/lib/buildNodes.d.cts +4 -0
  104. package/dist/browser/lib/buildNodes.d.cts.map +1 -0
  105. package/dist/browser/lib/buildNodes.js +202 -8
  106. package/dist/browser/lib/buildNodes.js.map +1 -1
  107. package/dist/browser/lib/index.cjs +269 -0
  108. package/dist/browser/lib/index.cjs.map +1 -0
  109. package/dist/browser/lib/index.d.cts +5 -0
  110. package/dist/browser/lib/index.d.cts.map +1 -0
  111. package/dist/browser/lib/index.js +245 -4
  112. package/dist/browser/lib/index.js.map +1 -1
  113. package/dist/docs.json +6100 -0
  114. package/dist/node/components/ActiveStandardNode.cjs +90 -0
  115. package/dist/node/components/ActiveStandardNode.cjs.map +1 -0
  116. package/dist/node/components/ActiveStandardNode.d.cts +7 -0
  117. package/dist/node/components/ActiveStandardNode.d.cts.map +1 -0
  118. package/dist/node/components/ActiveStandardNode.js +43 -43
  119. package/dist/node/components/ActiveStandardNode.js.map +1 -1
  120. package/dist/node/components/index.cjs +92 -0
  121. package/dist/node/components/index.cjs.map +1 -0
  122. package/dist/node/components/index.d.cts +2 -0
  123. package/dist/node/components/index.d.cts.map +1 -0
  124. package/dist/node/components/index.js +63 -21
  125. package/dist/node/components/index.js.map +1 -1
  126. package/dist/node/contexts/StandardRemoteNodes/Context.cjs +32 -0
  127. package/dist/node/contexts/StandardRemoteNodes/Context.cjs.map +1 -0
  128. package/dist/node/contexts/StandardRemoteNodes/Context.d.cts +4 -0
  129. package/dist/node/contexts/StandardRemoteNodes/Context.d.cts.map +1 -0
  130. package/dist/node/contexts/StandardRemoteNodes/Context.js +5 -28
  131. package/dist/node/contexts/StandardRemoteNodes/Context.js.map +1 -1
  132. package/dist/node/contexts/StandardRemoteNodes/Providers.cjs +319 -0
  133. package/dist/node/contexts/StandardRemoteNodes/Providers.cjs.map +1 -0
  134. package/dist/node/contexts/StandardRemoteNodes/Providers.d.cts +11 -0
  135. package/dist/node/contexts/StandardRemoteNodes/Providers.d.cts.map +1 -0
  136. package/dist/node/contexts/StandardRemoteNodes/Providers.js +263 -44
  137. package/dist/node/contexts/StandardRemoteNodes/Providers.js.map +1 -1
  138. package/dist/node/contexts/StandardRemoteNodes/State.cjs +19 -0
  139. package/dist/node/contexts/StandardRemoteNodes/State.cjs.map +1 -0
  140. package/dist/node/contexts/StandardRemoteNodes/State.d.cts +7 -0
  141. package/dist/node/contexts/StandardRemoteNodes/State.d.cts.map +1 -0
  142. package/dist/node/contexts/StandardRemoteNodes/State.js +0 -16
  143. package/dist/node/contexts/StandardRemoteNodes/State.js.map +1 -1
  144. package/dist/node/contexts/StandardRemoteNodes/index.cjs +329 -0
  145. package/dist/node/contexts/StandardRemoteNodes/index.cjs.map +1 -0
  146. package/dist/node/contexts/StandardRemoteNodes/index.d.cts +5 -0
  147. package/dist/node/contexts/StandardRemoteNodes/index.d.cts.map +1 -0
  148. package/dist/node/contexts/StandardRemoteNodes/index.js +298 -28
  149. package/dist/node/contexts/StandardRemoteNodes/index.js.map +1 -1
  150. package/dist/node/contexts/StandardRemoteNodes/use.cjs +38 -0
  151. package/dist/node/contexts/StandardRemoteNodes/use.cjs.map +1 -0
  152. package/dist/node/contexts/StandardRemoteNodes/use.d.cts +2 -0
  153. package/dist/node/contexts/StandardRemoteNodes/use.d.cts.map +1 -0
  154. package/dist/node/contexts/StandardRemoteNodes/use.js +11 -29
  155. package/dist/node/contexts/StandardRemoteNodes/use.js.map +1 -1
  156. package/dist/node/contexts/index.cjs +329 -0
  157. package/dist/node/contexts/index.cjs.map +1 -0
  158. package/dist/node/contexts/index.d.cts +2 -0
  159. package/dist/node/contexts/index.d.cts.map +1 -0
  160. package/dist/node/contexts/index.js +298 -22
  161. package/dist/node/contexts/index.js.map +1 -1
  162. package/dist/node/hooks/index.cjs +54 -0
  163. package/dist/node/hooks/index.cjs.map +1 -0
  164. package/dist/node/hooks/index.d.cts +2 -0
  165. package/dist/node/hooks/index.d.cts.map +1 -0
  166. package/dist/node/hooks/index.js +25 -21
  167. package/dist/node/hooks/index.js.map +1 -1
  168. package/dist/node/hooks/useActiveNodeAddress.cjs +52 -0
  169. package/dist/node/hooks/useActiveNodeAddress.cjs.map +1 -0
  170. package/dist/node/hooks/useActiveNodeAddress.d.cts +2 -0
  171. package/dist/node/hooks/useActiveNodeAddress.d.cts.map +1 -0
  172. package/dist/node/hooks/useActiveNodeAddress.js +19 -33
  173. package/dist/node/hooks/useActiveNodeAddress.js.map +1 -1
  174. package/dist/node/index.cjs +407 -0
  175. package/dist/node/index.cjs.map +1 -0
  176. package/dist/node/index.d.cts +5 -0
  177. package/dist/node/index.d.cts.map +1 -0
  178. package/dist/node/index.js +365 -28
  179. package/dist/node/index.js.map +1 -1
  180. package/dist/node/lib/Builders/MemoryNodeBuilder.cjs +201 -0
  181. package/dist/node/lib/Builders/MemoryNodeBuilder.cjs.map +1 -0
  182. package/dist/node/lib/Builders/MemoryNodeBuilder.d.cts +166 -0
  183. package/dist/node/lib/Builders/MemoryNodeBuilder.d.cts.map +1 -0
  184. package/dist/node/lib/Builders/MemoryNodeBuilder.js +108 -46
  185. package/dist/node/lib/Builders/MemoryNodeBuilder.js.map +1 -1
  186. package/dist/node/lib/Builders/SentinelBuilder.cjs +58 -0
  187. package/dist/node/lib/Builders/SentinelBuilder.cjs.map +1 -0
  188. package/dist/node/lib/Builders/SentinelBuilder.d.cts +205 -0
  189. package/dist/node/lib/Builders/SentinelBuilder.d.cts.map +1 -0
  190. package/dist/node/lib/Builders/SentinelBuilder.js +10 -33
  191. package/dist/node/lib/Builders/SentinelBuilder.js.map +1 -1
  192. package/dist/node/lib/Builders/StorageArchivistBuilder.cjs +82 -0
  193. package/dist/node/lib/Builders/StorageArchivistBuilder.cjs.map +1 -0
  194. package/dist/node/lib/Builders/StorageArchivistBuilder.d.cts +221 -0
  195. package/dist/node/lib/Builders/StorageArchivistBuilder.d.cts.map +1 -0
  196. package/dist/node/lib/Builders/StorageArchivistBuilder.js +18 -39
  197. package/dist/node/lib/Builders/StorageArchivistBuilder.js.map +1 -1
  198. package/dist/node/lib/Builders/index.cjs +207 -0
  199. package/dist/node/lib/Builders/index.cjs.map +1 -0
  200. package/dist/node/lib/Builders/index.d.cts +4 -0
  201. package/dist/node/lib/Builders/index.d.cts.map +1 -0
  202. package/dist/node/lib/Builders/index.js +176 -25
  203. package/dist/node/lib/Builders/index.js.map +1 -1
  204. package/dist/node/lib/ModuleAccountPaths.cjs +59 -0
  205. package/dist/node/lib/ModuleAccountPaths.cjs.map +1 -0
  206. package/dist/node/lib/ModuleAccountPaths.d.cts +4 -0
  207. package/dist/node/lib/ModuleAccountPaths.d.cts.map +1 -0
  208. package/dist/node/lib/ModuleAccountPaths.js +12 -35
  209. package/dist/node/lib/ModuleAccountPaths.js.map +1 -1
  210. package/dist/node/lib/ModuleNames.cjs +34 -0
  211. package/dist/node/lib/ModuleNames.cjs.map +1 -0
  212. package/dist/node/lib/ModuleNames.d.cts +3 -0
  213. package/dist/node/lib/ModuleNames.d.cts.map +1 -0
  214. package/dist/node/lib/ModuleNames.js +5 -29
  215. package/dist/node/lib/ModuleNames.js.map +1 -1
  216. package/dist/node/lib/buildNodes.cjs +266 -0
  217. package/dist/node/lib/buildNodes.cjs.map +1 -0
  218. package/dist/node/lib/buildNodes.d.cts +4 -0
  219. package/dist/node/lib/buildNodes.d.cts.map +1 -0
  220. package/dist/node/lib/buildNodes.js +217 -42
  221. package/dist/node/lib/buildNodes.js.map +1 -1
  222. package/dist/node/lib/index.cjs +286 -0
  223. package/dist/node/lib/index.cjs.map +1 -0
  224. package/dist/node/lib/index.d.cts +5 -0
  225. package/dist/node/lib/index.d.cts.map +1 -0
  226. package/dist/node/lib/index.js +250 -28
  227. package/dist/node/lib/index.js.map +1 -1
  228. package/package.json +30 -30
  229. package/dist/node/components/ActiveStandardNode.mjs +0 -41
  230. package/dist/node/components/ActiveStandardNode.mjs.map +0 -1
  231. package/dist/node/components/index.mjs +0 -2
  232. package/dist/node/components/index.mjs.map +0 -1
  233. package/dist/node/contexts/StandardRemoteNodes/Context.mjs +0 -6
  234. package/dist/node/contexts/StandardRemoteNodes/Providers.mjs +0 -49
  235. package/dist/node/contexts/StandardRemoteNodes/Providers.mjs.map +0 -1
  236. package/dist/node/contexts/StandardRemoteNodes/State.mjs +0 -1
  237. package/dist/node/contexts/StandardRemoteNodes/State.mjs.map +0 -1
  238. package/dist/node/contexts/StandardRemoteNodes/index.mjs +0 -5
  239. package/dist/node/contexts/StandardRemoteNodes/index.mjs.map +0 -1
  240. package/dist/node/contexts/StandardRemoteNodes/use.mjs +0 -7
  241. package/dist/node/contexts/StandardRemoteNodes/use.mjs.map +0 -1
  242. package/dist/node/contexts/index.mjs +0 -2
  243. package/dist/node/contexts/index.mjs.map +0 -1
  244. package/dist/node/hooks/index.mjs +0 -2
  245. package/dist/node/hooks/index.mjs.map +0 -1
  246. package/dist/node/hooks/useActiveNodeAddress.mjs +0 -17
  247. package/dist/node/hooks/useActiveNodeAddress.mjs.map +0 -1
  248. package/dist/node/index.mjs +0 -5
  249. package/dist/node/index.mjs.map +0 -1
  250. package/dist/node/lib/Builders/MemoryNodeBuilder.mjs +0 -90
  251. package/dist/node/lib/Builders/MemoryNodeBuilder.mjs.map +0 -1
  252. package/dist/node/lib/Builders/SentinelBuilder.mjs +0 -32
  253. package/dist/node/lib/Builders/StorageArchivistBuilder.mjs +0 -54
  254. package/dist/node/lib/Builders/index.mjs +0 -4
  255. package/dist/node/lib/Builders/index.mjs.map +0 -1
  256. package/dist/node/lib/ModuleAccountPaths.mjs +0 -27
  257. package/dist/node/lib/ModuleAccountPaths.mjs.map +0 -1
  258. package/dist/node/lib/ModuleNames.mjs +0 -7
  259. package/dist/node/lib/buildNodes.mjs +0 -42
  260. package/dist/node/lib/buildNodes.mjs.map +0 -1
  261. package/dist/node/lib/index.mjs +0 -5
  262. package/dist/node/lib/index.mjs.map +0 -1
@@ -0,0 +1,257 @@
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/lib/buildNodes.ts
21
+ var buildNodes_exports = {};
22
+ __export(buildNodes_exports, {
23
+ BuildStandardNodes: () => BuildStandardNodes
24
+ });
25
+ module.exports = __toCommonJS(buildNodes_exports);
26
+ var import_react_network = require("@xyo-network/react-network");
27
+ var import_react_shared4 = require("@xyo-network/react-shared");
28
+
29
+ // src/lib/Builders/MemoryNodeBuilder.ts
30
+ var import_archivist2 = require("@xyo-network/archivist");
31
+ var import_http_bridge = require("@xyo-network/http-bridge");
32
+ var import_node_memory = require("@xyo-network/node-memory");
33
+ var import_node_model2 = require("@xyo-network/node-model");
34
+ var import_react_shared3 = require("@xyo-network/react-shared");
35
+
36
+ // src/lib/Builders/SentinelBuilder.ts
37
+ var import_react_shared = require("@xyo-network/react-shared");
38
+ var import_sentinel = require("@xyo-network/sentinel");
39
+ var SentinelBuilder = class {
40
+ constructor(config, account) {
41
+ this.config = config;
42
+ this.account = account;
43
+ (0, import_react_shared.assertDefinedEx)(config, "config was not defined");
44
+ }
45
+ _sentinel;
46
+ get sentinel() {
47
+ return (0, import_react_shared.assertDefinedEx)(this._sentinel, "this._sentinel not defined upon create");
48
+ }
49
+ static async create(config, account) {
50
+ const instance = new this(config, account);
51
+ instance._sentinel = await instance.buildSentinel();
52
+ return instance;
53
+ }
54
+ async buildSentinel() {
55
+ const params = this.buildParams();
56
+ return await import_sentinel.MemorySentinel.create(params);
57
+ }
58
+ buildParams() {
59
+ return {
60
+ account: this.account,
61
+ config: this.config
62
+ };
63
+ }
64
+ };
65
+
66
+ // src/lib/Builders/StorageArchivistBuilder.ts
67
+ var import_archivist = require("@xyo-network/archivist");
68
+ var import_node_model = require("@xyo-network/node-model");
69
+ var import_react_shared2 = require("@xyo-network/react-shared");
70
+ var StorageArchivistBuilder = class {
71
+ constructor(config, account, node) {
72
+ this.config = config;
73
+ this.account = account;
74
+ this.node = node;
75
+ }
76
+ _archivist;
77
+ remoteArchivist;
78
+ get archivist() {
79
+ return (0, import_react_shared2.assertDefinedEx)(this._archivist, "archivist was not defined upon create");
80
+ }
81
+ static async create(config, account, node) {
82
+ const instance = new this(config, account, node);
83
+ instance.remoteArchivist = await instance.findParentArchivist();
84
+ instance._archivist = await instance.buildArchivist();
85
+ return instance;
86
+ }
87
+ async buildArchivist() {
88
+ const config = this.buildConfig();
89
+ return await import_archivist.StorageArchivist.create({ account: this.account, config });
90
+ }
91
+ buildConfig() {
92
+ return {
93
+ name: this.config.name,
94
+ namespace: this.config.namespace,
95
+ parents: {
96
+ commit: this.remoteArchivist ? [this.remoteArchivist?.address] : void 0,
97
+ read: this.remoteArchivist ? [this.remoteArchivist?.address] : void 0
98
+ },
99
+ schema: import_archivist.StorageArchivistConfigSchema,
100
+ storeParentReads: true,
101
+ type: "local"
102
+ };
103
+ }
104
+ async findParentArchivist() {
105
+ const node = (0, import_node_model.asNodeInstance)(this.node, "node not defined");
106
+ const [bridge] = await node.resolve({ name: ["RemoteNodeBridge"] }) ?? [];
107
+ if (bridge) {
108
+ try {
109
+ const [archivist] = await bridge.resolve({ name: ["Archivist"] }) ?? [];
110
+ return (0, import_archivist.asArchivistInstance)(archivist);
111
+ } catch (e) {
112
+ console.error("Error Resolving Parent Archivist", this.node?.config.name, this.config);
113
+ }
114
+ }
115
+ }
116
+ };
117
+
118
+ // src/lib/Builders/MemoryNodeBuilder.ts
119
+ var MemoryNodeBuilder = class {
120
+ _node;
121
+ get node() {
122
+ return (0, import_react_shared3.assertDefinedEx)(this._node, "this._node was not defined upon create");
123
+ }
124
+ static async create({ name, node }, account) {
125
+ const instance = new this();
126
+ const memoryNode = node ?? await import_node_memory.MemoryNode.create({ account, config: { name, schema: import_node_model2.NodeConfigSchema } });
127
+ instance._node = memoryNode;
128
+ return instance;
129
+ }
130
+ /** @deprecated - call specific method that corresponds to a type of archivist (i.e. addArchivistStorage) */
131
+ async addArchivist(account, moduleName, namespace) {
132
+ await this.addArchivistStorage(account, moduleName, namespace);
133
+ }
134
+ async addArchivistMemory(moduleName, account) {
135
+ const config = { name: moduleName, schema: import_archivist2.MemoryArchivistConfigSchema };
136
+ const memoryArchivist = await import_archivist2.MemoryArchivist.create({ account, config });
137
+ await this.attach(memoryArchivist, true);
138
+ }
139
+ async addArchivistStorage(account, moduleName, namespace) {
140
+ const config = { name: moduleName, namespace };
141
+ const { archivist } = await StorageArchivistBuilder.create(config, account, this.node);
142
+ await this.attach(archivist, true);
143
+ }
144
+ async addBridge(apiDomain, moduleName = "RemoteNodeBridge", account) {
145
+ try {
146
+ const bridge = await import_http_bridge.HttpBridge.create({
147
+ account,
148
+ config: { name: moduleName, nodeUrl: `${apiDomain}/node`, schema: import_http_bridge.HttpBridgeConfigSchema, security: { allowAnonymous: true } }
149
+ });
150
+ await this.attach(bridge, true);
151
+ } catch (e) {
152
+ console.error("Error Creating Bridge", e);
153
+ }
154
+ }
155
+ async addSentinel(config, account) {
156
+ const { sentinel } = await SentinelBuilder.create(config, account);
157
+ await this.attach(sentinel, true, true);
158
+ return sentinel;
159
+ }
160
+ async addWitnesses(pluginSetResolver, witnesses = []) {
161
+ await Promise.all(
162
+ pluginSetResolver.witnesses().map(async (pluginSet, index) => {
163
+ const witness = await witnesses?.[index]?.();
164
+ if (witness) {
165
+ try {
166
+ await this.witnessCleanup(witness);
167
+ await this.node.register(witness);
168
+ await this.node.attach(witness.address, true);
169
+ } catch (e) {
170
+ console.error("Error attaching witness", JSON.stringify(pluginSet, null, 2), e);
171
+ }
172
+ }
173
+ })
174
+ );
175
+ }
176
+ async attach(module2, external, safeAttach) {
177
+ try {
178
+ if (safeAttach) {
179
+ const existingModule = (await this.node.resolve({ address: [module2.address] })).pop();
180
+ if (existingModule) {
181
+ await this.node.detach(existingModule.address);
182
+ await this.node.unregister(existingModule);
183
+ }
184
+ }
185
+ await this.node.register(module2);
186
+ await this.node.attach(module2.address, external);
187
+ } catch (e) {
188
+ throw Error(`Error adding ${module2.config.name ?? module2.address} to MemoryNode: ${e}`);
189
+ }
190
+ }
191
+ async witnessCleanup(witness) {
192
+ if (this.node.registered().includes(witness.address)) {
193
+ const [existingWitness] = await this.node.resolve({ address: [witness.address] });
194
+ await this.node.unregister(existingWitness);
195
+ }
196
+ }
197
+ };
198
+
199
+ // src/lib/ModuleNames.ts
200
+ var RootStorageArchivist = "RootStorageArchivist";
201
+
202
+ // src/lib/ModuleAccountPaths.ts
203
+ var RemoteNodeOffsetPaths = {
204
+ Kerplunk: "112",
205
+ Local: "111",
206
+ Main: "113"
207
+ };
208
+ var RemoteNodeArchivistOffsetPaths = {
209
+ Kerplunk: {
210
+ MemoryNode: "117",
211
+ [RootStorageArchivist]: "119"
212
+ },
213
+ Local: {
214
+ MemoryNode: "114",
215
+ [RootStorageArchivist]: "116"
216
+ },
217
+ Main: {
218
+ MemoryNode: "120",
219
+ [RootStorageArchivist]: "122"
220
+ }
221
+ };
222
+
223
+ // src/lib/buildNodes.ts
224
+ var knownRemoteNodes = () => {
225
+ const networkNames = import_react_network.defaultNetworkConfigs.map((config) => config.name);
226
+ return networkNames.map((networkName) => {
227
+ const name = (0, import_react_shared4.assertDefinedEx)(networkName, "missing name in network config");
228
+ const uri = import_react_network.defaultNetworkConfigs.filter((config) => config.name === networkName)[0].nodes?.filter((node) => node.type === "archivist")[0].uri;
229
+ const apiDomain = (0, import_react_shared4.assertDefinedEx)(uri, 'missing node type "archivist" in network config');
230
+ return {
231
+ apiDomain,
232
+ name
233
+ };
234
+ });
235
+ };
236
+ var BuildStandardNodes = async (wallet, onNodeBuilt) => {
237
+ try {
238
+ return await Promise.all(
239
+ knownRemoteNodes().map(async ({ apiDomain, name }) => {
240
+ const remoteNodeOffset = RemoteNodeOffsetPaths[name];
241
+ const remoteNodeWallet = await wallet.derivePath?.(remoteNodeOffset);
242
+ const memoryNodeBuilder = await MemoryNodeBuilder.create({ name }, await remoteNodeWallet.derivePath?.("0"));
243
+ await memoryNodeBuilder.addBridge(apiDomain);
244
+ const rootArchivistPath = `${remoteNodeOffset}/${RemoteNodeArchivistOffsetPaths[name][RootStorageArchivist]}`;
245
+ const rootArchivistAccount = await wallet.derivePath?.(rootArchivistPath);
246
+ await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, "root");
247
+ const { node } = memoryNodeBuilder;
248
+ (0, import_react_shared4.assertDefinedEx)(node, "Memory Node was not built successfully");
249
+ onNodeBuilt?.(node);
250
+ return node;
251
+ })
252
+ );
253
+ } catch (e) {
254
+ throw new Error(`Error Creating Known Remote Nodes: ${e}`);
255
+ }
256
+ };
257
+ //# sourceMappingURL=buildNodes.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/buildNodes.ts","../../../src/lib/Builders/MemoryNodeBuilder.ts","../../../src/lib/Builders/SentinelBuilder.ts","../../../src/lib/Builders/StorageArchivistBuilder.ts","../../../src/lib/ModuleNames.ts","../../../src/lib/ModuleAccountPaths.ts"],"sourcesContent":["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","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","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":["import_react_shared","import_archivist","import_node_model","import_react_shared","import_react_shared","module"]}
@@ -0,0 +1,4 @@
1
+ import { MemoryNode } from '@xyo-network/node-memory';
2
+ import { WalletInstance } from '@xyo-network/wallet-model';
3
+ export declare const BuildStandardNodes: (wallet: WalletInstance, onNodeBuilt?: ((node: MemoryNode) => void) | undefined) => Promise<MemoryNode[]>;
4
+ //# sourceMappingURL=buildNodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildNodes.d.ts","sourceRoot":"","sources":["../../../src/lib/buildNodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAmB1D,eAAO,MAAM,kBAAkB,WAAkB,cAAc,wBAAuB,UAAU,KAAK,IAAI,kBAAG,QAAQ,UAAU,EAAE,CAwB/H,CAAA"}
@@ -1,21 +1,215 @@
1
+ // src/lib/buildNodes.ts
1
2
  import { defaultNetworkConfigs } from "@xyo-network/react-network";
3
+ import { assertDefinedEx as assertDefinedEx4 } from "@xyo-network/react-shared";
4
+
5
+ // src/lib/Builders/MemoryNodeBuilder.ts
6
+ import { MemoryArchivist, MemoryArchivistConfigSchema } from "@xyo-network/archivist";
7
+ import { HttpBridge, HttpBridgeConfigSchema } from "@xyo-network/http-bridge";
8
+ import { MemoryNode } from "@xyo-network/node-memory";
9
+ import { NodeConfigSchema } from "@xyo-network/node-model";
10
+ import { assertDefinedEx as assertDefinedEx3 } from "@xyo-network/react-shared";
11
+
12
+ // src/lib/Builders/SentinelBuilder.ts
2
13
  import { assertDefinedEx } from "@xyo-network/react-shared";
3
- import { MemoryNodeBuilder } from "./Builders";
4
- import { RemoteNodeArchivistOffsetPaths, RemoteNodeOffsetPaths } from "./ModuleAccountPaths";
5
- import { RootStorageArchivist } from "./ModuleNames";
6
- const knownRemoteNodes = () => {
14
+ import { MemorySentinel } from "@xyo-network/sentinel";
15
+ var SentinelBuilder = class {
16
+ constructor(config, account) {
17
+ this.config = config;
18
+ this.account = account;
19
+ assertDefinedEx(config, "config was not defined");
20
+ }
21
+ _sentinel;
22
+ get sentinel() {
23
+ return assertDefinedEx(this._sentinel, "this._sentinel not defined upon create");
24
+ }
25
+ static async create(config, account) {
26
+ const instance = new this(config, account);
27
+ instance._sentinel = await instance.buildSentinel();
28
+ return instance;
29
+ }
30
+ async buildSentinel() {
31
+ const params = this.buildParams();
32
+ return await MemorySentinel.create(params);
33
+ }
34
+ buildParams() {
35
+ return {
36
+ account: this.account,
37
+ config: this.config
38
+ };
39
+ }
40
+ };
41
+
42
+ // src/lib/Builders/StorageArchivistBuilder.ts
43
+ import { asArchivistInstance, StorageArchivist, StorageArchivistConfigSchema } from "@xyo-network/archivist";
44
+ import { asNodeInstance } from "@xyo-network/node-model";
45
+ import { assertDefinedEx as assertDefinedEx2 } from "@xyo-network/react-shared";
46
+ var StorageArchivistBuilder = class {
47
+ constructor(config, account, node) {
48
+ this.config = config;
49
+ this.account = account;
50
+ this.node = node;
51
+ }
52
+ _archivist;
53
+ remoteArchivist;
54
+ get archivist() {
55
+ return assertDefinedEx2(this._archivist, "archivist was not defined upon create");
56
+ }
57
+ static async create(config, account, node) {
58
+ const instance = new this(config, account, node);
59
+ instance.remoteArchivist = await instance.findParentArchivist();
60
+ instance._archivist = await instance.buildArchivist();
61
+ return instance;
62
+ }
63
+ async buildArchivist() {
64
+ const config = this.buildConfig();
65
+ return await StorageArchivist.create({ account: this.account, config });
66
+ }
67
+ buildConfig() {
68
+ return {
69
+ name: this.config.name,
70
+ namespace: this.config.namespace,
71
+ parents: {
72
+ commit: this.remoteArchivist ? [this.remoteArchivist?.address] : void 0,
73
+ read: this.remoteArchivist ? [this.remoteArchivist?.address] : void 0
74
+ },
75
+ schema: StorageArchivistConfigSchema,
76
+ storeParentReads: true,
77
+ type: "local"
78
+ };
79
+ }
80
+ async findParentArchivist() {
81
+ const node = asNodeInstance(this.node, "node not defined");
82
+ const [bridge] = await node.resolve({ name: ["RemoteNodeBridge"] }) ?? [];
83
+ if (bridge) {
84
+ try {
85
+ const [archivist] = await bridge.resolve({ name: ["Archivist"] }) ?? [];
86
+ return asArchivistInstance(archivist);
87
+ } catch (e) {
88
+ console.error("Error Resolving Parent Archivist", this.node?.config.name, this.config);
89
+ }
90
+ }
91
+ }
92
+ };
93
+
94
+ // src/lib/Builders/MemoryNodeBuilder.ts
95
+ var MemoryNodeBuilder = class {
96
+ _node;
97
+ get node() {
98
+ return assertDefinedEx3(this._node, "this._node was not defined upon create");
99
+ }
100
+ static async create({ name, node }, account) {
101
+ const instance = new this();
102
+ const memoryNode = node ?? await MemoryNode.create({ account, config: { name, schema: NodeConfigSchema } });
103
+ instance._node = memoryNode;
104
+ return instance;
105
+ }
106
+ /** @deprecated - call specific method that corresponds to a type of archivist (i.e. addArchivistStorage) */
107
+ async addArchivist(account, moduleName, namespace) {
108
+ await this.addArchivistStorage(account, moduleName, namespace);
109
+ }
110
+ async addArchivistMemory(moduleName, account) {
111
+ const config = { name: moduleName, schema: MemoryArchivistConfigSchema };
112
+ const memoryArchivist = await MemoryArchivist.create({ account, config });
113
+ await this.attach(memoryArchivist, true);
114
+ }
115
+ async addArchivistStorage(account, moduleName, namespace) {
116
+ const config = { name: moduleName, namespace };
117
+ const { archivist } = await StorageArchivistBuilder.create(config, account, this.node);
118
+ await this.attach(archivist, true);
119
+ }
120
+ async addBridge(apiDomain, moduleName = "RemoteNodeBridge", account) {
121
+ try {
122
+ const bridge = await HttpBridge.create({
123
+ account,
124
+ config: { name: moduleName, nodeUrl: `${apiDomain}/node`, schema: HttpBridgeConfigSchema, security: { allowAnonymous: true } }
125
+ });
126
+ await this.attach(bridge, true);
127
+ } catch (e) {
128
+ console.error("Error Creating Bridge", e);
129
+ }
130
+ }
131
+ async addSentinel(config, account) {
132
+ const { sentinel } = await SentinelBuilder.create(config, account);
133
+ await this.attach(sentinel, true, true);
134
+ return sentinel;
135
+ }
136
+ async addWitnesses(pluginSetResolver, witnesses = []) {
137
+ await Promise.all(
138
+ pluginSetResolver.witnesses().map(async (pluginSet, index) => {
139
+ const witness = await witnesses?.[index]?.();
140
+ if (witness) {
141
+ try {
142
+ await this.witnessCleanup(witness);
143
+ await this.node.register(witness);
144
+ await this.node.attach(witness.address, true);
145
+ } catch (e) {
146
+ console.error("Error attaching witness", JSON.stringify(pluginSet, null, 2), e);
147
+ }
148
+ }
149
+ })
150
+ );
151
+ }
152
+ async attach(module, external, safeAttach) {
153
+ try {
154
+ if (safeAttach) {
155
+ const existingModule = (await this.node.resolve({ address: [module.address] })).pop();
156
+ if (existingModule) {
157
+ await this.node.detach(existingModule.address);
158
+ await this.node.unregister(existingModule);
159
+ }
160
+ }
161
+ await this.node.register(module);
162
+ await this.node.attach(module.address, external);
163
+ } catch (e) {
164
+ throw Error(`Error adding ${module.config.name ?? module.address} to MemoryNode: ${e}`);
165
+ }
166
+ }
167
+ async witnessCleanup(witness) {
168
+ if (this.node.registered().includes(witness.address)) {
169
+ const [existingWitness] = await this.node.resolve({ address: [witness.address] });
170
+ await this.node.unregister(existingWitness);
171
+ }
172
+ }
173
+ };
174
+
175
+ // src/lib/ModuleNames.ts
176
+ var RootStorageArchivist = "RootStorageArchivist";
177
+
178
+ // src/lib/ModuleAccountPaths.ts
179
+ var RemoteNodeOffsetPaths = {
180
+ Kerplunk: "112",
181
+ Local: "111",
182
+ Main: "113"
183
+ };
184
+ var RemoteNodeArchivistOffsetPaths = {
185
+ Kerplunk: {
186
+ MemoryNode: "117",
187
+ [RootStorageArchivist]: "119"
188
+ },
189
+ Local: {
190
+ MemoryNode: "114",
191
+ [RootStorageArchivist]: "116"
192
+ },
193
+ Main: {
194
+ MemoryNode: "120",
195
+ [RootStorageArchivist]: "122"
196
+ }
197
+ };
198
+
199
+ // src/lib/buildNodes.ts
200
+ var knownRemoteNodes = () => {
7
201
  const networkNames = defaultNetworkConfigs.map((config) => config.name);
8
202
  return networkNames.map((networkName) => {
9
- const name = assertDefinedEx(networkName, "missing name in network config");
203
+ const name = assertDefinedEx4(networkName, "missing name in network config");
10
204
  const uri = defaultNetworkConfigs.filter((config) => config.name === networkName)[0].nodes?.filter((node) => node.type === "archivist")[0].uri;
11
- const apiDomain = assertDefinedEx(uri, 'missing node type "archivist" in network config');
205
+ const apiDomain = assertDefinedEx4(uri, 'missing node type "archivist" in network config');
12
206
  return {
13
207
  apiDomain,
14
208
  name
15
209
  };
16
210
  });
17
211
  };
18
- const BuildStandardNodes = async (wallet, onNodeBuilt) => {
212
+ var BuildStandardNodes = async (wallet, onNodeBuilt) => {
19
213
  try {
20
214
  return await Promise.all(
21
215
  knownRemoteNodes().map(async ({ apiDomain, name }) => {
@@ -27,7 +221,7 @@ const BuildStandardNodes = async (wallet, onNodeBuilt) => {
27
221
  const rootArchivistAccount = await wallet.derivePath?.(rootArchivistPath);
28
222
  await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, "root");
29
223
  const { node } = memoryNodeBuilder;
30
- assertDefinedEx(node, "Memory Node was not built successfully");
224
+ assertDefinedEx4(node, "Memory Node was not built successfully");
31
225
  onNodeBuilt?.(node);
32
226
  return node;
33
227
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/buildNodes.ts"],"sourcesContent":["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"],"mappings":"AACA,SAAS,6BAA6B;AACtC,SAAS,uBAAuB;AAGhC,SAAS,yBAAyB;AAClC,SAAS,gCAAgC,6BAA6B;AACtE,SAAS,4BAA4B;AAErC,MAAM,mBAAmB,MAA6C;AACpE,QAAM,eAAe,sBAAsB,IAAI,CAAC,WAAW,OAAO,IAAI;AACtE,SAAO,aAAa,IAAI,CAAC,gBAAgB;AACvC,UAAM,OAAO,gBAAwB,aAAa,gCAAgC;AAClF,UAAM,MAAM,sBAAsB,OAAO,CAAC,WAAW,OAAO,SAAS,WAAW,EAAE,CAAC,EAAE,OAAO,OAAO,CAAC,SAAS,KAAK,SAAS,WAAW,EAAE,CAAC,EAAE;AAC3I,UAAM,YAAY,gBAAwB,KAAK,iDAAiD;AAChG,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,MAAM,qBAAqB,OAAO,QAAwB,gBAAoE;AACnI,MAAI;AACF,WAAO,MAAM,QAAQ;AAAA,MACnB,iBAAiB,EAAE,IAAI,OAAO,EAAE,WAAW,KAAK,MAAM;AACpD,cAAM,mBAAmB,sBAAsB,IAAI;AACnD,cAAM,mBAAmB,MAAM,OAAO,aAAa,gBAAgB;AAEnE,cAAM,oBAAoB,MAAM,kBAAkB,OAAO,EAAE,KAAK,GAAG,MAAM,iBAAiB,aAAa,GAAG,CAAC;AAC3G,cAAM,kBAAkB,UAAU,SAAS;AAE3C,cAAM,oBAAoB,GAAG,gBAAgB,IAAI,+BAA+B,IAAI,EAAE,oBAAoB,CAAC;AAC3G,cAAM,uBAAuB,MAAM,OAAO,aAAa,iBAAiB;AACxE,cAAM,kBAAkB,oBAAoB,sBAAsB,sBAAsB,MAAM;AAE9F,cAAM,EAAE,KAAK,IAAI;AACjB,wBAAgB,MAAM,wCAAwC;AAC9D,sBAAc,IAAI;AAElB,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF,SAAS,GAAG;AACV,UAAM,IAAI,MAAM,sCAAsC,CAAC,EAAE;AAAA,EAC3D;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/buildNodes.ts","../../../src/lib/Builders/MemoryNodeBuilder.ts","../../../src/lib/Builders/SentinelBuilder.ts","../../../src/lib/Builders/StorageArchivistBuilder.ts","../../../src/lib/ModuleNames.ts","../../../src/lib/ModuleAccountPaths.ts"],"sourcesContent":["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","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","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"]}