@xyo-network/react-sentinel 2.81.10 → 2.82.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/dist/browser/components/Card/Card.d.cts +1 -0
  2. package/dist/browser/components/Card/Card.d.cts.map +1 -1
  3. package/dist/browser/components/Card/Card.d.mts +1 -0
  4. package/dist/browser/components/Card/Card.d.mts.map +1 -1
  5. package/dist/browser/components/Card/Card.d.ts +1 -0
  6. package/dist/browser/components/Card/Card.d.ts.map +1 -1
  7. package/dist/browser/components/Card/CardActions.d.cts +1 -0
  8. package/dist/browser/components/Card/CardActions.d.cts.map +1 -1
  9. package/dist/browser/components/Card/CardActions.d.mts +1 -0
  10. package/dist/browser/components/Card/CardActions.d.mts.map +1 -1
  11. package/dist/browser/components/Card/CardActions.d.ts +1 -0
  12. package/dist/browser/components/Card/CardActions.d.ts.map +1 -1
  13. package/dist/browser/components/Card/CardHeader.d.cts +1 -0
  14. package/dist/browser/components/Card/CardHeader.d.cts.map +1 -1
  15. package/dist/browser/components/Card/CardHeader.d.mts +1 -0
  16. package/dist/browser/components/Card/CardHeader.d.mts.map +1 -1
  17. package/dist/browser/components/Card/CardHeader.d.ts +1 -0
  18. package/dist/browser/components/Card/CardHeader.d.ts.map +1 -1
  19. package/dist/browser/components/Card/index.d.cts +3 -3
  20. package/dist/browser/components/Card/index.d.cts.map +1 -1
  21. package/dist/browser/components/Card/index.d.mts +3 -3
  22. package/dist/browser/components/Card/index.d.mts.map +1 -1
  23. package/dist/browser/components/Card/index.d.ts +3 -3
  24. package/dist/browser/components/Card/index.d.ts.map +1 -1
  25. package/dist/browser/components/index.d.cts +1 -1
  26. package/dist/browser/components/index.d.mts +1 -1
  27. package/dist/browser/components/index.d.ts +1 -1
  28. package/dist/browser/contexts/Context.d.cts +1 -1
  29. package/dist/browser/contexts/Context.d.mts +1 -1
  30. package/dist/browser/contexts/Context.d.ts +1 -1
  31. package/dist/browser/contexts/Provider.d.cts +1 -0
  32. package/dist/browser/contexts/Provider.d.cts.map +1 -1
  33. package/dist/browser/contexts/Provider.d.mts +1 -0
  34. package/dist/browser/contexts/Provider.d.mts.map +1 -1
  35. package/dist/browser/contexts/Provider.d.ts +1 -0
  36. package/dist/browser/contexts/Provider.d.ts.map +1 -1
  37. package/dist/browser/contexts/index.d.cts +4 -4
  38. package/dist/browser/contexts/index.d.cts.map +1 -1
  39. package/dist/browser/contexts/index.d.mts +4 -4
  40. package/dist/browser/contexts/index.d.mts.map +1 -1
  41. package/dist/browser/contexts/index.d.ts +4 -4
  42. package/dist/browser/contexts/index.d.ts.map +1 -1
  43. package/dist/browser/contexts/use.d.cts +2 -2
  44. package/dist/browser/contexts/use.d.mts +2 -2
  45. package/dist/browser/contexts/use.d.ts +2 -2
  46. package/dist/browser/hooks/index.d.cts +1 -1
  47. package/dist/browser/hooks/index.d.mts +1 -1
  48. package/dist/browser/hooks/index.d.ts +1 -1
  49. package/dist/browser/hooks/node/index.d.cts +4 -4
  50. package/dist/browser/hooks/node/index.d.cts.map +1 -1
  51. package/dist/browser/hooks/node/index.d.mts +4 -4
  52. package/dist/browser/hooks/node/index.d.mts.map +1 -1
  53. package/dist/browser/hooks/node/index.d.ts +4 -4
  54. package/dist/browser/hooks/node/index.d.ts.map +1 -1
  55. package/dist/browser/hooks/node/useSentinelFromNode.d.cts.map +1 -1
  56. package/dist/browser/hooks/node/useSentinelFromNode.d.mts.map +1 -1
  57. package/dist/browser/hooks/node/useSentinelFromNode.d.ts.map +1 -1
  58. package/dist/browser/hooks/node/useSentinelsFromNode.d.cts.map +1 -1
  59. package/dist/browser/hooks/node/useSentinelsFromNode.d.mts.map +1 -1
  60. package/dist/browser/hooks/node/useSentinelsFromNode.d.ts.map +1 -1
  61. package/dist/browser/index.cjs +201 -135
  62. package/dist/browser/index.cjs.map +1 -1
  63. package/dist/browser/index.d.cts +3 -3
  64. package/dist/browser/index.d.mts +3 -3
  65. package/dist/browser/index.d.ts +3 -3
  66. package/dist/browser/index.mjs +303 -0
  67. package/dist/browser/index.mjs.map +1 -0
  68. package/dist/neutral/components/Card/Card.d.cts +1 -0
  69. package/dist/neutral/components/Card/Card.d.cts.map +1 -1
  70. package/dist/neutral/components/Card/Card.d.mts +1 -0
  71. package/dist/neutral/components/Card/Card.d.mts.map +1 -1
  72. package/dist/neutral/components/Card/Card.d.ts +1 -0
  73. package/dist/neutral/components/Card/Card.d.ts.map +1 -1
  74. package/dist/neutral/components/Card/CardActions.d.cts +1 -0
  75. package/dist/neutral/components/Card/CardActions.d.cts.map +1 -1
  76. package/dist/neutral/components/Card/CardActions.d.mts +1 -0
  77. package/dist/neutral/components/Card/CardActions.d.mts.map +1 -1
  78. package/dist/neutral/components/Card/CardActions.d.ts +1 -0
  79. package/dist/neutral/components/Card/CardActions.d.ts.map +1 -1
  80. package/dist/neutral/components/Card/CardHeader.d.cts +1 -0
  81. package/dist/neutral/components/Card/CardHeader.d.cts.map +1 -1
  82. package/dist/neutral/components/Card/CardHeader.d.mts +1 -0
  83. package/dist/neutral/components/Card/CardHeader.d.mts.map +1 -1
  84. package/dist/neutral/components/Card/CardHeader.d.ts +1 -0
  85. package/dist/neutral/components/Card/CardHeader.d.ts.map +1 -1
  86. package/dist/neutral/components/Card/index.d.cts +3 -3
  87. package/dist/neutral/components/Card/index.d.cts.map +1 -1
  88. package/dist/neutral/components/Card/index.d.mts +3 -3
  89. package/dist/neutral/components/Card/index.d.mts.map +1 -1
  90. package/dist/neutral/components/Card/index.d.ts +3 -3
  91. package/dist/neutral/components/Card/index.d.ts.map +1 -1
  92. package/dist/neutral/components/index.d.cts +1 -1
  93. package/dist/neutral/components/index.d.mts +1 -1
  94. package/dist/neutral/components/index.d.ts +1 -1
  95. package/dist/neutral/contexts/Context.d.cts +1 -1
  96. package/dist/neutral/contexts/Context.d.mts +1 -1
  97. package/dist/neutral/contexts/Context.d.ts +1 -1
  98. package/dist/neutral/contexts/Provider.d.cts +1 -0
  99. package/dist/neutral/contexts/Provider.d.cts.map +1 -1
  100. package/dist/neutral/contexts/Provider.d.mts +1 -0
  101. package/dist/neutral/contexts/Provider.d.mts.map +1 -1
  102. package/dist/neutral/contexts/Provider.d.ts +1 -0
  103. package/dist/neutral/contexts/Provider.d.ts.map +1 -1
  104. package/dist/neutral/contexts/index.d.cts +4 -4
  105. package/dist/neutral/contexts/index.d.cts.map +1 -1
  106. package/dist/neutral/contexts/index.d.mts +4 -4
  107. package/dist/neutral/contexts/index.d.mts.map +1 -1
  108. package/dist/neutral/contexts/index.d.ts +4 -4
  109. package/dist/neutral/contexts/index.d.ts.map +1 -1
  110. package/dist/neutral/contexts/use.d.cts +2 -2
  111. package/dist/neutral/contexts/use.d.mts +2 -2
  112. package/dist/neutral/contexts/use.d.ts +2 -2
  113. package/dist/neutral/hooks/index.d.cts +1 -1
  114. package/dist/neutral/hooks/index.d.mts +1 -1
  115. package/dist/neutral/hooks/index.d.ts +1 -1
  116. package/dist/neutral/hooks/node/index.d.cts +4 -4
  117. package/dist/neutral/hooks/node/index.d.cts.map +1 -1
  118. package/dist/neutral/hooks/node/index.d.mts +4 -4
  119. package/dist/neutral/hooks/node/index.d.mts.map +1 -1
  120. package/dist/neutral/hooks/node/index.d.ts +4 -4
  121. package/dist/neutral/hooks/node/index.d.ts.map +1 -1
  122. package/dist/neutral/hooks/node/useSentinelFromNode.d.cts.map +1 -1
  123. package/dist/neutral/hooks/node/useSentinelFromNode.d.mts.map +1 -1
  124. package/dist/neutral/hooks/node/useSentinelFromNode.d.ts.map +1 -1
  125. package/dist/neutral/hooks/node/useSentinelsFromNode.d.cts.map +1 -1
  126. package/dist/neutral/hooks/node/useSentinelsFromNode.d.mts.map +1 -1
  127. package/dist/neutral/hooks/node/useSentinelsFromNode.d.ts.map +1 -1
  128. package/dist/neutral/index.cjs +201 -135
  129. package/dist/neutral/index.cjs.map +1 -1
  130. package/dist/neutral/index.d.cts +3 -3
  131. package/dist/neutral/index.d.mts +3 -3
  132. package/dist/neutral/index.d.ts +3 -3
  133. package/dist/neutral/index.mjs +303 -0
  134. package/dist/neutral/index.mjs.map +1 -0
  135. package/dist/node/components/Card/Card.d.cts +1 -0
  136. package/dist/node/components/Card/Card.d.cts.map +1 -1
  137. package/dist/node/components/Card/Card.d.mts +1 -0
  138. package/dist/node/components/Card/Card.d.mts.map +1 -1
  139. package/dist/node/components/Card/Card.d.ts +1 -0
  140. package/dist/node/components/Card/Card.d.ts.map +1 -1
  141. package/dist/node/components/Card/CardActions.d.cts +1 -0
  142. package/dist/node/components/Card/CardActions.d.cts.map +1 -1
  143. package/dist/node/components/Card/CardActions.d.mts +1 -0
  144. package/dist/node/components/Card/CardActions.d.mts.map +1 -1
  145. package/dist/node/components/Card/CardActions.d.ts +1 -0
  146. package/dist/node/components/Card/CardActions.d.ts.map +1 -1
  147. package/dist/node/components/Card/CardHeader.d.cts +1 -0
  148. package/dist/node/components/Card/CardHeader.d.cts.map +1 -1
  149. package/dist/node/components/Card/CardHeader.d.mts +1 -0
  150. package/dist/node/components/Card/CardHeader.d.mts.map +1 -1
  151. package/dist/node/components/Card/CardHeader.d.ts +1 -0
  152. package/dist/node/components/Card/CardHeader.d.ts.map +1 -1
  153. package/dist/node/components/Card/index.d.cts +3 -3
  154. package/dist/node/components/Card/index.d.cts.map +1 -1
  155. package/dist/node/components/Card/index.d.mts +3 -3
  156. package/dist/node/components/Card/index.d.mts.map +1 -1
  157. package/dist/node/components/Card/index.d.ts +3 -3
  158. package/dist/node/components/Card/index.d.ts.map +1 -1
  159. package/dist/node/components/index.d.cts +1 -1
  160. package/dist/node/components/index.d.mts +1 -1
  161. package/dist/node/components/index.d.ts +1 -1
  162. package/dist/node/contexts/Context.d.cts +1 -1
  163. package/dist/node/contexts/Context.d.mts +1 -1
  164. package/dist/node/contexts/Context.d.ts +1 -1
  165. package/dist/node/contexts/Provider.d.cts +1 -0
  166. package/dist/node/contexts/Provider.d.cts.map +1 -1
  167. package/dist/node/contexts/Provider.d.mts +1 -0
  168. package/dist/node/contexts/Provider.d.mts.map +1 -1
  169. package/dist/node/contexts/Provider.d.ts +1 -0
  170. package/dist/node/contexts/Provider.d.ts.map +1 -1
  171. package/dist/node/contexts/index.d.cts +4 -4
  172. package/dist/node/contexts/index.d.cts.map +1 -1
  173. package/dist/node/contexts/index.d.mts +4 -4
  174. package/dist/node/contexts/index.d.mts.map +1 -1
  175. package/dist/node/contexts/index.d.ts +4 -4
  176. package/dist/node/contexts/index.d.ts.map +1 -1
  177. package/dist/node/contexts/use.d.cts +2 -2
  178. package/dist/node/contexts/use.d.mts +2 -2
  179. package/dist/node/contexts/use.d.ts +2 -2
  180. package/dist/node/hooks/index.d.cts +1 -1
  181. package/dist/node/hooks/index.d.mts +1 -1
  182. package/dist/node/hooks/index.d.ts +1 -1
  183. package/dist/node/hooks/node/index.d.cts +4 -4
  184. package/dist/node/hooks/node/index.d.cts.map +1 -1
  185. package/dist/node/hooks/node/index.d.mts +4 -4
  186. package/dist/node/hooks/node/index.d.mts.map +1 -1
  187. package/dist/node/hooks/node/index.d.ts +4 -4
  188. package/dist/node/hooks/node/index.d.ts.map +1 -1
  189. package/dist/node/hooks/node/useSentinelFromNode.d.cts.map +1 -1
  190. package/dist/node/hooks/node/useSentinelFromNode.d.mts.map +1 -1
  191. package/dist/node/hooks/node/useSentinelFromNode.d.ts.map +1 -1
  192. package/dist/node/hooks/node/useSentinelsFromNode.d.cts.map +1 -1
  193. package/dist/node/hooks/node/useSentinelsFromNode.d.mts.map +1 -1
  194. package/dist/node/hooks/node/useSentinelsFromNode.d.ts.map +1 -1
  195. package/dist/node/index.cjs +202 -136
  196. package/dist/node/index.cjs.map +1 -1
  197. package/dist/node/index.d.cts +3 -3
  198. package/dist/node/index.d.mts +3 -3
  199. package/dist/node/index.d.ts +3 -3
  200. package/dist/node/index.mjs +305 -0
  201. package/dist/node/index.mjs.map +1 -0
  202. package/package.json +32 -32
  203. package/src/components/Card/Card.stories.tsx +6 -6
  204. package/src/components/Card/Card.tsx +4 -4
  205. package/src/components/Card/CardActions.tsx +2 -1
  206. package/src/components/Card/CardContent.tsx +3 -3
  207. package/src/components/Card/CardHeader.tsx +1 -0
  208. package/src/components/Card/index.ts +3 -3
  209. package/src/components/index.ts +1 -1
  210. package/src/contexts/Context.ts +1 -1
  211. package/src/contexts/Provider.tsx +11 -10
  212. package/src/contexts/index.ts +4 -4
  213. package/src/contexts/use.ts +1 -1
  214. package/src/hooks/index.ts +1 -1
  215. package/src/hooks/node/index.ts +4 -4
  216. package/src/hooks/node/useSentinelFromNode.tsx +0 -2
  217. package/src/hooks/node/useSentinelsFromNode.tsx +2 -4
  218. package/src/index.ts +3 -3
  219. package/dist/browser/index.js +0 -245
  220. package/dist/browser/index.js.map +0 -1
  221. package/dist/neutral/index.js +0 -245
  222. package/dist/neutral/index.js.map +0 -1
  223. package/dist/node/index.js +0 -247
  224. package/dist/node/index.js.map +0 -1
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
9
  var __export = (target, all) => {
7
10
  for (var name in all)
8
11
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -15,6 +18,14 @@ var __copyProps = (to, from, except, desc) => {
15
18
  }
16
19
  return to;
17
20
  };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
18
29
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
30
 
20
31
  // src/index.ts
@@ -37,51 +48,74 @@ module.exports = __toCommonJS(src_exports);
37
48
  // src/components/Card/Card.tsx
38
49
  var import_material = require("@mui/material");
39
50
  var import_react_promise = require("@xylabs/react-promise");
40
- var import_react = require("react");
51
+ var import_react4 = __toESM(require("react"), 1);
41
52
 
42
53
  // src/components/Card/CardActions.tsx
43
54
  var import_react_button = require("@xylabs/react-button");
44
55
  var import_react_module = require("@xyo-network/react-module");
45
- var import_jsx_runtime = require("react/jsx-runtime");
46
- var SentinelCardActions = ({ onReport, mod, ...props }) => {
47
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_module.ModuleCardActions, { mod, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_button.ButtonEx, { onClick: () => onReport?.(mod), size: "small", variant: "outlined", children: "Report" }) });
48
- };
56
+ var import_react = __toESM(require("react"), 1);
57
+ var SentinelCardActions = /* @__PURE__ */ __name(({ onReport, mod, ...props }) => {
58
+ return /* @__PURE__ */ import_react.default.createElement(import_react_module.ModuleCardActions, {
59
+ mod,
60
+ ...props
61
+ }, /* @__PURE__ */ import_react.default.createElement(import_react_button.ButtonEx, {
62
+ onClick: /* @__PURE__ */ __name(() => onReport?.(mod), "onClick"),
63
+ size: "small",
64
+ variant: "outlined"
65
+ }, "Report"));
66
+ }, "SentinelCardActions");
49
67
 
50
68
  // src/components/Card/CardContent.tsx
51
69
  var import_react_flexbox = require("@xylabs/react-flexbox");
52
70
  var import_react_module2 = require("@xyo-network/react-module");
53
71
  var import_react_payload_raw_info = require("@xyo-network/react-payload-raw-info");
54
- var import_jsx_runtime2 = require("react/jsx-runtime");
55
- var SentinelCardContent = ({ children, report, mod, ...props }) => {
56
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_module2.ModuleCardContent, { mod, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_react_flexbox.FlexGrowRow, { flexWrap: "wrap", justifyContent: "start", gap: 2, children: [
57
- report ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_payload_raw_info.JsonViewerEx, { value: report }) : null,
58
- children
59
- ] }) });
60
- };
72
+ var import_react2 = __toESM(require("react"), 1);
73
+ var SentinelCardContent = /* @__PURE__ */ __name(({ children, report, mod, ...props }) => {
74
+ return /* @__PURE__ */ import_react2.default.createElement(import_react_module2.ModuleCardContent, {
75
+ mod,
76
+ ...props
77
+ }, /* @__PURE__ */ import_react2.default.createElement(import_react_flexbox.FlexGrowRow, {
78
+ flexWrap: "wrap",
79
+ justifyContent: "start",
80
+ gap: 2
81
+ }, report ? /* @__PURE__ */ import_react2.default.createElement(import_react_payload_raw_info.JsonViewerEx, {
82
+ value: report
83
+ }) : null, children));
84
+ }, "SentinelCardContent");
61
85
 
62
86
  // src/components/Card/CardHeader.tsx
63
87
  var import_react_module3 = require("@xyo-network/react-module");
64
- var import_jsx_runtime3 = require("react/jsx-runtime");
65
- var SentinelCardHeader = ({ title, mod, ...props }) => {
66
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_module3.ModuleCardHeader, { mod, title: title ?? mod?.config.name ?? "Sentinel", ...props });
67
- };
88
+ var import_react3 = __toESM(require("react"), 1);
89
+ var SentinelCardHeader = /* @__PURE__ */ __name(({ title, mod, ...props }) => {
90
+ return /* @__PURE__ */ import_react3.default.createElement(import_react_module3.ModuleCardHeader, {
91
+ mod,
92
+ title: title ?? mod?.config.name ?? "Sentinel",
93
+ ...props
94
+ });
95
+ }, "SentinelCardHeader");
68
96
 
69
97
  // src/components/Card/Card.tsx
70
- var import_jsx_runtime4 = require("react/jsx-runtime");
71
- var SentinelCard = ({ children, inPayloads, mod, ...props }) => {
72
- const [retry, setRetry] = (0, import_react.useState)(-1);
98
+ var SentinelCard = /* @__PURE__ */ __name(({ children, inPayloads, mod, ...props }) => {
99
+ const [retry, setRetry] = (0, import_react4.useState)(-1);
73
100
  const [report] = (0, import_react_promise.usePromise)(async () => {
74
101
  if (retry >= 0) {
75
102
  return await mod?.report(inPayloads);
76
103
  }
77
- }, [mod, retry, inPayloads]);
78
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_material.Card, { ...props, children: [
79
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SentinelCardHeader, { mod }),
80
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SentinelCardContent, { mod, report }),
81
- children,
82
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SentinelCardActions, { mod, onReport: () => setRetry(retry + 1) })
83
- ] });
84
- };
104
+ }, [
105
+ mod,
106
+ retry,
107
+ inPayloads
108
+ ]);
109
+ return /* @__PURE__ */ import_react4.default.createElement(import_material.Card, props, /* @__PURE__ */ import_react4.default.createElement(SentinelCardHeader, {
110
+ mod
111
+ }), /* @__PURE__ */ import_react4.default.createElement(SentinelCardContent, {
112
+ mod,
113
+ report
114
+ }), children, /* @__PURE__ */ import_react4.default.createElement(SentinelCardActions, {
115
+ mod,
116
+ onReport: /* @__PURE__ */ __name(() => setRetry(retry + 1), "onReport")
117
+ }));
118
+ }, "SentinelCard");
85
119
 
86
120
  // src/contexts/Context.ts
87
121
  var import_react_shared = require("@xyo-network/react-shared");
@@ -93,139 +127,162 @@ var import_react_witness = require("@xyo-network/react-witness");
93
127
  var import_sentinel_memory = require("@xyo-network/sentinel-memory");
94
128
  var import_sentinel_model = require("@xyo-network/sentinel-model");
95
129
  var import_witness_model = require("@xyo-network/witness-model");
96
- var import_react2 = require("react");
130
+ var import_react5 = __toESM(require("react"), 1);
97
131
 
98
132
  // src/contexts/State.ts
99
- var SentinelReportStatus = /* @__PURE__ */ ((SentinelReportStatus2) => {
133
+ var SentinelReportStatus;
134
+ (function(SentinelReportStatus2) {
100
135
  SentinelReportStatus2["Idle"] = "idle";
101
136
  SentinelReportStatus2["Queued"] = "queued";
102
137
  SentinelReportStatus2["Started"] = "started";
103
138
  SentinelReportStatus2["Succeeded"] = "succeeded";
104
139
  SentinelReportStatus2["Failed"] = "failed";
105
- return SentinelReportStatus2;
106
- })(SentinelReportStatus || {});
140
+ })(SentinelReportStatus || (SentinelReportStatus = {}));
107
141
 
108
142
  // src/contexts/Provider.tsx
109
- var import_jsx_runtime5 = require("react/jsx-runtime");
110
- var SentinelProvider = ({ account, archivist, children, filter, name, required = false }) => {
111
- const [sentinel, setSentinel] = (0, import_react2.useState)();
112
- const [history, setHistory] = (0, import_react2.useState)();
113
- const [progress, setProgress] = (0, import_react2.useState)({});
114
- const [status, setStatus] = (0, import_react2.useState)("idle" /* Idle */);
115
- const [reportingErrors, setReportingErrors] = (0, import_react2.useState)();
143
+ var SentinelProvider = /* @__PURE__ */ __name(({ account, archivist, children, filter, name, required = false }) => {
144
+ const [sentinel, setSentinel] = (0, import_react5.useState)();
145
+ const [history, setHistory] = (0, import_react5.useState)();
146
+ const [progress, setProgress] = (0, import_react5.useState)({});
147
+ const [status, setStatus] = (0, import_react5.useState)(SentinelReportStatus.Idle);
148
+ const [reportingErrors, setReportingErrors] = (0, import_react5.useState)();
116
149
  const [witnesses] = (0, import_react_witness.useWitnessesFromNode)(filter);
117
- (0, import_react_async_effect.useAsyncEffect)(
118
- // eslint-disable-next-line react-hooks/exhaustive-deps
119
- async (mounted) => {
120
- const sentinel2 = await import_sentinel_memory.MemorySentinel.create({
121
- account,
122
- config: {
123
- archivists: archivist ? [archivist] : void 0,
124
- name,
125
- schema: import_sentinel_model.SentinelConfigSchema,
126
- synchronous: true,
127
- // eslint-disable-next-line id-denylist
128
- tasks: witnesses?.map((mod) => ({ mod: mod.address }))
129
- }
130
- });
131
- const offCallbacks = [];
132
- offCallbacks.push(
133
- sentinel2.on("reportEnd", ({ mod, outPayloads }) => {
134
- if (mounted()) {
135
- setProgress({
136
- archivists: progress.archivists,
137
- witnesses: progress.witnesses
138
- });
139
- setStatus(outPayloads?.length ? "succeeded" /* Succeeded */ : "failed" /* Failed */);
140
- setReportingErrors([new Error(`Witness failed [${mod?.config?.name ?? mod.address}]`)]);
141
- }
142
- })
143
- );
144
- offCallbacks.push(
145
- sentinel2.on("reportStart", () => {
146
- if (mounted()) {
147
- setProgress({ archivists: {}, witnesses: {} });
148
- setStatus("started" /* Started */);
149
- }
150
- })
151
- );
152
- if (witnesses)
153
- for (const witness of witnesses) {
154
- offCallbacks.push(
155
- witness.on("observeEnd", ({ mod, outPayloads }) => {
156
- const witnesses2 = progress.witnesses ?? {};
157
- witnesses2[witness.address] = {
158
- status: outPayloads?.length ? "succeeded" /* Succeeded */ : "failed" /* Failed */,
159
- witness: (0, import_witness_model.asWitnessInstance)(mod, () => `Module is not a witness [${mod.id}]`)
160
- };
161
- if (mounted()) {
162
- setProgress({
163
- archivists: progress.archivists,
164
- witnesses: witnesses2
165
- });
166
- }
167
- })
168
- );
169
- offCallbacks.push(
170
- witness.on("observeStart", ({ mod }) => {
171
- const witnesses2 = progress.witnesses ?? {};
172
- witnesses2[witness.address] = {
173
- status: "started" /* Started */,
174
- witness: (0, import_witness_model.asWitnessInstance)(mod, () => `Module is not a witness [${mod.id}]`)
175
- };
176
- if (mounted()) {
177
- setProgress({
178
- archivists: progress.archivists,
179
- witnesses: witnesses2
180
- });
181
- }
182
- })
183
- );
150
+ (0, import_react_async_effect.useAsyncEffect)(async (mounted) => {
151
+ const sentinel2 = await import_sentinel_memory.MemorySentinel.create({
152
+ account,
153
+ config: {
154
+ archivists: archivist ? [
155
+ archivist
156
+ ] : void 0,
157
+ name,
158
+ schema: import_sentinel_model.SentinelConfigSchema,
159
+ synchronous: true,
160
+ tasks: witnesses?.map((mod) => ({
161
+ mod: mod.address
162
+ }))
163
+ }
164
+ });
165
+ const offCallbacks = [];
166
+ offCallbacks.push(sentinel2.on("reportEnd", ({ mod, outPayloads }) => {
167
+ if (mounted()) {
168
+ setProgress({
169
+ archivists: progress.archivists,
170
+ witnesses: progress.witnesses
171
+ });
172
+ setStatus(outPayloads?.length ? SentinelReportStatus.Succeeded : SentinelReportStatus.Failed);
173
+ setReportingErrors([
174
+ new Error(`Witness failed [${mod?.config?.name ?? mod.address}]`)
175
+ ]);
176
+ }
177
+ }));
178
+ offCallbacks.push(sentinel2.on("reportStart", () => {
179
+ if (mounted()) {
180
+ setProgress({
181
+ archivists: {},
182
+ witnesses: {}
183
+ });
184
+ setStatus(SentinelReportStatus.Started);
185
+ }
186
+ }));
187
+ if (witnesses) for (const witness of witnesses) {
188
+ offCallbacks.push(witness.on("observeEnd", ({ mod, outPayloads }) => {
189
+ const witnesses2 = progress.witnesses ?? {};
190
+ witnesses2[witness.address] = {
191
+ status: outPayloads?.length ? SentinelReportStatus.Succeeded : SentinelReportStatus.Failed,
192
+ witness: (0, import_witness_model.asWitnessInstance)(mod, () => `Module is not a witness [${mod.id}]`)
193
+ };
194
+ if (mounted()) {
195
+ setProgress({
196
+ archivists: progress.archivists,
197
+ witnesses: witnesses2
198
+ });
184
199
  }
185
- setSentinel(sentinel2);
186
- return () => {
187
- for (const callback of offCallbacks) {
188
- callback();
200
+ }));
201
+ offCallbacks.push(witness.on("observeStart", ({ mod }) => {
202
+ const witnesses2 = progress.witnesses ?? {};
203
+ witnesses2[witness.address] = {
204
+ status: SentinelReportStatus.Started,
205
+ witness: (0, import_witness_model.asWitnessInstance)(mod, () => `Module is not a witness [${mod.id}]`)
206
+ };
207
+ if (mounted()) {
208
+ setProgress({
209
+ archivists: progress.archivists,
210
+ witnesses: witnesses2
211
+ });
189
212
  }
190
- };
191
- },
192
- // eslint-disable-next-line react-hooks/exhaustive-deps
193
- [account, archivist, witnesses]
194
- );
195
- (0, import_react2.useEffect)(() => {
213
+ }));
214
+ }
215
+ setSentinel(sentinel2);
216
+ return () => {
217
+ for (const callback of offCallbacks) {
218
+ callback();
219
+ }
220
+ };
221
+ }, [
222
+ account,
223
+ archivist,
224
+ witnesses
225
+ ]);
226
+ (0, import_react5.useEffect)(() => {
196
227
  setHistory(sentinel?.history);
197
- }, [sentinel]);
198
- return !required || sentinel ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(SentinelContext.Provider, { value: { history, progress, provided: true, reportingErrors, sentinel, status }, children }) : null;
199
- };
228
+ }, [
229
+ sentinel
230
+ ]);
231
+ return !required || sentinel ? /* @__PURE__ */ import_react5.default.createElement(SentinelContext.Provider, {
232
+ value: {
233
+ history,
234
+ progress,
235
+ provided: true,
236
+ reportingErrors,
237
+ sentinel,
238
+ status
239
+ }
240
+ }, children) : null;
241
+ }, "SentinelProvider");
200
242
 
201
243
  // src/contexts/use.ts
202
244
  var import_react_shared2 = require("@xyo-network/react-shared");
203
- var useSentinelContext = () => {
245
+ var useSentinelContext = /* @__PURE__ */ __name(() => {
204
246
  const { sentinel, history, progress, reportingErrors, status } = (0, import_react_shared2.useContextEx)(SentinelContext, "Sentinel");
205
- return { history, progress, reportingErrors, sentinel, status };
206
- };
247
+ return {
248
+ history,
249
+ progress,
250
+ reportingErrors,
251
+ sentinel,
252
+ status
253
+ };
254
+ }, "useSentinelContext");
207
255
 
208
256
  // src/hooks/node/useSentinelFromNode.tsx
209
257
  var import_react_node = require("@xyo-network/react-node");
210
258
  var import_sentinel_model2 = require("@xyo-network/sentinel-model");
211
- var useSentinelFromNode = (nameOrAddressOrInstance, config) => {
259
+ var useSentinelFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance, config) => {
212
260
  const [mod, error] = (0, import_react_node.useModuleFromNode)(nameOrAddressOrInstance, config);
213
261
  const instance = (0, import_sentinel_model2.asSentinelInstance)(mod);
214
262
  if (mod && !instance) {
215
263
  const error2 = new Error(`Resolved module is not a SentinelInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`);
216
264
  console.error(error2.message);
217
- return [void 0, error2];
265
+ return [
266
+ void 0,
267
+ error2
268
+ ];
218
269
  }
219
- return [instance, error];
220
- };
270
+ return [
271
+ instance,
272
+ error
273
+ ];
274
+ }, "useSentinelFromNode");
221
275
 
222
276
  // src/hooks/node/useSentinelsFromNode.tsx
223
277
  var import_react_node2 = require("@xyo-network/react-node");
224
278
  var import_sentinel_model3 = require("@xyo-network/sentinel-model");
225
- var useSentinelsFromNode = (filter, config) => {
279
+ var useSentinelsFromNode = /* @__PURE__ */ __name((filter, config) => {
226
280
  const [modules, error] = (0, import_react_node2.useModulesFromNode)(filter, config);
227
281
  if (error) {
228
- return [null, error];
282
+ return [
283
+ null,
284
+ error
285
+ ];
229
286
  }
230
287
  return modules ? [
231
288
  // eslint-disable-next-line unicorn/no-array-reduce
@@ -236,24 +293,33 @@ var useSentinelsFromNode = (filter, config) => {
236
293
  return prev;
237
294
  }, []),
238
295
  void 0
239
- ] : [modules, error];
240
- };
296
+ ] : [
297
+ modules,
298
+ error
299
+ ];
300
+ }, "useSentinelsFromNode");
241
301
 
242
302
  // src/hooks/node/useWeakSentinelFromNode.tsx
243
303
  var import_react_node3 = require("@xyo-network/react-node");
244
304
  var import_sentinel_model4 = require("@xyo-network/sentinel-model");
245
- var useWeakSentinelFromNode = (nameOrAddressOrInstance, config) => {
246
- return (0, import_react_node3.useWeakModuleFromNode)(nameOrAddressOrInstance, { identity: import_sentinel_model4.isSentinelInstance, ...config });
247
- };
305
+ var useWeakSentinelFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance, config) => {
306
+ return (0, import_react_node3.useWeakModuleFromNode)(nameOrAddressOrInstance, {
307
+ identity: import_sentinel_model4.isSentinelInstance,
308
+ ...config
309
+ });
310
+ }, "useWeakSentinelFromNode");
248
311
 
249
312
  // src/hooks/node/useWeakSentinelsFromNode.tsx
250
313
  var import_exists = require("@xylabs/exists");
251
314
  var import_react_node4 = require("@xyo-network/react-node");
252
315
  var import_sentinel_model5 = require("@xyo-network/sentinel-model");
253
- var useWeakSentinelsFromNode = (filter, config) => {
316
+ var useWeakSentinelsFromNode = /* @__PURE__ */ __name((filter, config) => {
254
317
  const [modules, error] = (0, import_react_node4.useWeakModulesFromNode)(filter, config);
255
318
  if (error) {
256
- return [null, error];
319
+ return [
320
+ null,
321
+ error
322
+ ];
257
323
  }
258
324
  return [
259
325
  modules?.map((mod) => {
@@ -264,5 +330,5 @@ var useWeakSentinelsFromNode = (filter, config) => {
264
330
  }).filter(import_exists.exists) ?? [],
265
331
  void 0
266
332
  ];
267
- };
333
+ }, "useWeakSentinelsFromNode");
268
334
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/components/Card/Card.tsx","../../src/components/Card/CardActions.tsx","../../src/components/Card/CardContent.tsx","../../src/components/Card/CardHeader.tsx","../../src/contexts/Context.ts","../../src/contexts/Provider.tsx","../../src/contexts/State.ts","../../src/contexts/use.ts","../../src/hooks/node/useSentinelFromNode.tsx","../../src/hooks/node/useSentinelsFromNode.tsx","../../src/hooks/node/useWeakSentinelFromNode.tsx","../../src/hooks/node/useWeakSentinelsFromNode.tsx"],"sourcesContent":["export * from './components/index.js'\nexport * from './contexts/index.js'\nexport * from './hooks/index.js'\n","import { Card, CardProps } from '@mui/material'\nimport { usePromise } from '@xylabs/react-promise'\nimport { Payload } from '@xyo-network/payload-model'\nimport { ModuleRenderProps } from '@xyo-network/react-module'\nimport { SentinelInstance } from '@xyo-network/sentinel-model'\nimport { useState } from 'react'\n\nimport { SentinelCardActions } from './CardActions.js'\nimport { SentinelCardContent } from './CardContent.js'\nimport { SentinelCardHeader } from './CardHeader.js'\n\nexport type SentinelCardProps = CardProps &\n ModuleRenderProps<SentinelInstance> & {\n inPayloads?: Payload[]\n }\n\nexport const SentinelCard: React.FC<SentinelCardProps> = ({ children, inPayloads, mod, ...props }) => {\n const [retry, setRetry] = useState(-1)\n const [report] = usePromise(async () => {\n if (retry >= 0) {\n return await mod?.report(inPayloads)\n }\n }, [mod, retry, inPayloads])\n return (\n <Card {...props}>\n <SentinelCardHeader mod={mod} />\n <SentinelCardContent mod={mod} report={report} />\n {children}\n <SentinelCardActions mod={mod} onReport={() => setRetry(retry + 1)} />\n </Card>\n )\n}\n","import { CardActionsProps } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { ModuleCardActions, ModuleRenderProps } from '@xyo-network/react-module'\nimport { SentinelInstance } from '@xyo-network/sentinel-model'\n\nexport type SentinelCardActionsProps = ModuleRenderProps<SentinelInstance> &\n CardActionsProps & {\n onReport?: (mod?: SentinelInstance) => void\n }\n\nexport const SentinelCardActions: React.FC<SentinelCardActionsProps> = ({ onReport, mod, ...props }) => {\n return (\n <ModuleCardActions mod={mod} {...props}>\n <ButtonEx onClick={() => onReport?.(mod)} size={'small'} variant={'outlined'}>\n Report\n </ButtonEx>\n </ModuleCardActions>\n )\n}\n","import { CardContentProps } from '@mui/material'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\nimport { ModuleCardContent, ModuleRenderProps } from '@xyo-network/react-module'\nimport { JsonViewerEx } from '@xyo-network/react-payload-raw-info'\nimport { SentinelInstance } from '@xyo-network/sentinel-model'\nimport React from 'react'\n\nexport type SentinelCardContentProps = ModuleRenderProps<SentinelInstance> &\n CardContentProps & {\n report?: Payload[]\n }\n\nexport const SentinelCardContent: React.FC<SentinelCardContentProps> = ({ children, report, mod, ...props }) => {\n return (\n <ModuleCardContent mod={mod} {...props}>\n <FlexGrowRow flexWrap=\"wrap\" justifyContent=\"start\" gap={2}>\n {report ?\n <JsonViewerEx value={report} />\n : null}\n {children}\n </FlexGrowRow>\n </ModuleCardContent>\n )\n}\n","import { CardHeaderProps } from '@mui/material'\nimport { ModuleCardHeader, ModuleRenderProps } from '@xyo-network/react-module'\nimport { SentinelInstance } from '@xyo-network/sentinel-model'\n\nexport const SentinelCardHeader: React.FC<ModuleRenderProps<SentinelInstance> & CardHeaderProps> = ({ title, mod, ...props }) => {\n return <ModuleCardHeader mod={mod} title={title ?? mod?.config.name ?? 'Sentinel'} {...props} />\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { SentinelContextState } from './State.js'\n\nexport const SentinelContext = createContextEx<SentinelContextState>()\n","/* eslint-disable unicorn/no-array-push-push */\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { useWitnessesFromNode } from '@xyo-network/react-witness'\nimport { MemorySentinel } from '@xyo-network/sentinel-memory'\nimport { SentinelConfig, SentinelConfigSchema } from '@xyo-network/sentinel-model'\nimport { asWitnessInstance, WitnessInstance } from '@xyo-network/witness-model'\nimport { useEffect, useState } from 'react'\n\nimport { SentinelContext } from './Context.js'\nimport { SentinelReportProgress, SentinelReportStatus } from './State.js'\n\nexport interface SentinelProviderProps {\n /** Account used by the sentinel for signing */\n account: AccountInstance\n /** @deprecated - sentinel no longer uses archive but relies on an archivist */\n archive?: string\n archivist?: string\n filter?: ModuleFilter\n name?: string\n required?: boolean\n witnesses?: WitnessInstance[]\n}\n\nexport const SentinelProvider: React.FC<WithChildren<SentinelProviderProps>> = ({ account, archivist, children, filter, name, required = false }) => {\n const [sentinel, setSentinel] = useState<MemorySentinel>()\n const [history, setHistory] = useState<BoundWitness[]>()\n const [progress, setProgress] = useState<SentinelReportProgress>({})\n const [status, setStatus] = useState(SentinelReportStatus.Idle)\n const [reportingErrors, setReportingErrors] = useState<Error[]>()\n const [witnesses] = useWitnessesFromNode(filter)\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const sentinel = await MemorySentinel.create({\n account,\n config: {\n archivists: archivist ? [archivist] : undefined,\n name,\n\n schema: SentinelConfigSchema,\n synchronous: true,\n // eslint-disable-next-line id-denylist\n tasks: witnesses?.map((mod) => ({ mod: mod.address })),\n } as SentinelConfig,\n })\n const offCallbacks: (() => void)[] = []\n offCallbacks.push(\n sentinel.on('reportEnd', ({ mod, outPayloads }) => {\n if (mounted()) {\n setProgress({\n archivists: progress.archivists,\n witnesses: progress.witnesses,\n })\n setStatus(outPayloads?.length ? SentinelReportStatus.Succeeded : SentinelReportStatus.Failed)\n setReportingErrors([new Error(`Witness failed [${mod?.config?.name ?? mod.address}]`)])\n }\n }),\n )\n offCallbacks.push(\n sentinel.on('reportStart', () => {\n if (mounted()) {\n setProgress({ archivists: {}, witnesses: {} })\n setStatus(SentinelReportStatus.Started)\n }\n }),\n )\n if (witnesses)\n for (const witness of witnesses) {\n offCallbacks.push(\n witness.on('observeEnd', ({ mod, outPayloads }) => {\n const witnesses = progress.witnesses ?? {}\n witnesses[witness.address] = {\n status: outPayloads?.length ? SentinelReportStatus.Succeeded : SentinelReportStatus.Failed,\n witness: asWitnessInstance(mod, () => `Module is not a witness [${mod.id}]`),\n }\n if (mounted()) {\n setProgress({\n archivists: progress.archivists,\n witnesses,\n })\n }\n }),\n )\n offCallbacks.push(\n witness.on('observeStart', ({ mod }) => {\n const witnesses = progress.witnesses ?? {}\n witnesses[witness.address] = {\n status: SentinelReportStatus.Started,\n witness: asWitnessInstance(mod, () => `Module is not a witness [${mod.id}]`),\n }\n if (mounted()) {\n setProgress({\n archivists: progress.archivists,\n witnesses,\n })\n }\n }),\n )\n }\n setSentinel(sentinel as MemorySentinel)\n return () => {\n //unsubscribe from events\n for (const callback of offCallbacks) {\n callback()\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [account, archivist, witnesses],\n )\n\n useEffect(() => {\n setHistory(sentinel?.history as BoundWitness[])\n }, [sentinel])\n\n return !required || sentinel ?\n <SentinelContext.Provider value={{ history, progress, provided: true, reportingErrors, sentinel, status }}>{children}</SentinelContext.Provider>\n : null\n}\n","import { ArchivistModule } from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { SentinelModule } from '@xyo-network/sentinel-model'\nimport { WitnessModule } from '@xyo-network/witness-model'\n\nexport enum SentinelReportStatus {\n Idle = 'idle',\n Queued = 'queued',\n Started = 'started',\n Succeeded = 'succeeded',\n Failed = 'failed',\n}\n\nexport interface SentinelWitnessReportProgress {\n status: SentinelReportStatus\n witness: WitnessModule\n}\n\nexport interface SentinelArchivistApiReportProgress {\n archivist: ArchivistModule\n status: SentinelReportStatus\n}\n\nexport interface SentinelReportProgress {\n archivists?: Record<string, SentinelArchivistApiReportProgress>\n witnesses?: Record<string, SentinelWitnessReportProgress>\n}\n\nexport interface SentinelContextState {\n history?: BoundWitness[]\n progress?: SentinelReportProgress\n reportingErrors?: Error[]\n sentinel?: SentinelModule\n status?: SentinelReportStatus\n}\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { SentinelContext } from './Context.js'\n\nexport const useSentinelContext = () => {\n const { sentinel, history, progress, reportingErrors, status } = useContextEx(SentinelContext, 'Sentinel')\n return { history, progress, reportingErrors, sentinel, status }\n}\n","// eslint-disable-next-line import/no-deprecated\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\nimport { asSentinelInstance, SentinelInstance } from '@xyo-network/sentinel-model'\n\nexport const useSentinelFromNode = (\n nameOrAddressOrInstance?: string | SentinelInstance,\n config?: ModuleFromNodeConfig,\n): [SentinelInstance | undefined, Error | undefined] => {\n // eslint-disable-next-line deprecation/deprecation, import/no-deprecated\n const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asSentinelInstance(mod)\n if (mod && !instance) {\n const error = new Error(`Resolved module is not a SentinelInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { ModuleFilter } from '@xyo-network/module-model'\n// eslint-disable-next-line import/no-deprecated\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\nimport { isSentinelInstance, SentinelInstance } from '@xyo-network/sentinel-model'\n\nexport const useSentinelsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [SentinelInstance[] | null | undefined, Error | undefined] => {\n // eslint-disable-next-line deprecation/deprecation, import/no-deprecated\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return modules ?\n [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<SentinelInstance[]>((prev, mod) => {\n if (isSentinelInstance(mod)) {\n prev.push(mod)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { useWeakModuleFromNode, WeakModuleFromNodeConfig } from '@xyo-network/react-node'\nimport { isSentinelInstance, SentinelInstance } from '@xyo-network/sentinel-model'\n\nexport const useWeakSentinelFromNode = (\n nameOrAddressOrInstance?: string | SentinelInstance,\n config?: WeakModuleFromNodeConfig,\n): [WeakRef<SentinelInstance> | undefined, Error | undefined] => {\n return useWeakModuleFromNode<SentinelInstance>(nameOrAddressOrInstance, { identity: isSentinelInstance, ...config })\n}\n","import { exists } from '@xylabs/exists'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useWeakModulesFromNode } from '@xyo-network/react-node'\nimport { asSentinelInstance, SentinelInstance } from '@xyo-network/sentinel-model'\n\nexport const useWeakSentinelsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [WeakRef<SentinelInstance>[] | null | undefined, Error | undefined] => {\n const [modules, error] = useWeakModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return [\n modules\n ?.map((mod) => {\n const instance = asSentinelInstance(mod?.deref())\n if (instance) {\n return new WeakRef(instance)\n }\n })\n .filter(exists) ?? [],\n undefined,\n ]\n}\n"],"mappings":"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","names":["import_react_module","import_jsx_runtime","import_react_module","import_jsx_runtime","import_jsx_runtime","import_react","SentinelReportStatus","import_jsx_runtime","sentinel","witnesses","import_react_shared","import_sentinel_model","error","import_react_node","import_sentinel_model","import_react_node","import_sentinel_model","import_react_node","import_sentinel_model"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/components/Card/Card.tsx","../../src/components/Card/CardActions.tsx","../../src/components/Card/CardContent.tsx","../../src/components/Card/CardHeader.tsx","../../src/contexts/Context.ts","../../src/contexts/Provider.tsx","../../src/contexts/State.ts","../../src/contexts/use.ts","../../src/hooks/node/useSentinelFromNode.tsx","../../src/hooks/node/useSentinelsFromNode.tsx","../../src/hooks/node/useWeakSentinelFromNode.tsx","../../src/hooks/node/useWeakSentinelsFromNode.tsx"],"sourcesContent":["export * from './components/index.ts'\nexport * from './contexts/index.ts'\nexport * from './hooks/index.ts'\n","import { Card, CardProps } from '@mui/material'\nimport { usePromise } from '@xylabs/react-promise'\nimport { Payload } from '@xyo-network/payload-model'\nimport { ModuleRenderProps } from '@xyo-network/react-module'\nimport { SentinelInstance } from '@xyo-network/sentinel-model'\nimport React, { useState } from 'react'\n\nimport { SentinelCardActions } from './CardActions.tsx'\nimport { SentinelCardContent } from './CardContent.tsx'\nimport { SentinelCardHeader } from './CardHeader.tsx'\n\nexport type SentinelCardProps = CardProps &\n ModuleRenderProps<SentinelInstance> & {\n inPayloads?: Payload[]\n }\n\nexport const SentinelCard: React.FC<SentinelCardProps> = ({ children, inPayloads, mod, ...props }) => {\n const [retry, setRetry] = useState(-1)\n const [report] = usePromise(async () => {\n if (retry >= 0) {\n return await mod?.report(inPayloads)\n }\n }, [mod, retry, inPayloads])\n return (\n <Card {...props}>\n <SentinelCardHeader mod={mod} />\n <SentinelCardContent mod={mod} report={report} />\n {children}\n <SentinelCardActions mod={mod} onReport={() => setRetry(retry + 1)} />\n </Card>\n )\n}\n","import { CardActionsProps } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { ModuleCardActions, ModuleRenderProps } from '@xyo-network/react-module'\nimport { SentinelInstance } from '@xyo-network/sentinel-model'\nimport React from 'react'\n\nexport type SentinelCardActionsProps = ModuleRenderProps<SentinelInstance> &\n CardActionsProps & {\n onReport?: (mod?: SentinelInstance) => void\n }\n\nexport const SentinelCardActions: React.FC<SentinelCardActionsProps> = ({ onReport, mod, ...props }) => {\n return (\n <ModuleCardActions mod={mod} {...props}>\n <ButtonEx onClick={() => onReport?.(mod)} size=\"small\" variant=\"outlined\">\n Report\n </ButtonEx>\n </ModuleCardActions>\n )\n}\n","import { CardContentProps } from '@mui/material'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\nimport { ModuleCardContent, ModuleRenderProps } from '@xyo-network/react-module'\nimport { JsonViewerEx } from '@xyo-network/react-payload-raw-info'\nimport { SentinelInstance } from '@xyo-network/sentinel-model'\nimport React from 'react'\n\nexport type SentinelCardContentProps = ModuleRenderProps<SentinelInstance> &\n CardContentProps & {\n report?: Payload[]\n }\n\nexport const SentinelCardContent: React.FC<SentinelCardContentProps> = ({ children, report, mod, ...props }) => {\n return (\n <ModuleCardContent mod={mod} {...props}>\n <FlexGrowRow flexWrap=\"wrap\" justifyContent=\"start\" gap={2}>\n {report\n ? <JsonViewerEx value={report} />\n : null}\n {children}\n </FlexGrowRow>\n </ModuleCardContent>\n )\n}\n","import { CardHeaderProps } from '@mui/material'\nimport { ModuleCardHeader, ModuleRenderProps } from '@xyo-network/react-module'\nimport { SentinelInstance } from '@xyo-network/sentinel-model'\nimport React from 'react'\n\nexport const SentinelCardHeader: React.FC<ModuleRenderProps<SentinelInstance> & CardHeaderProps> = ({ title, mod, ...props }) => {\n return <ModuleCardHeader mod={mod} title={title ?? mod?.config.name ?? 'Sentinel'} {...props} />\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { SentinelContextState } from './State.ts'\n\nexport const SentinelContext = createContextEx<SentinelContextState>()\n","/* eslint-disable unicorn/no-array-push-push */\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { useWitnessesFromNode } from '@xyo-network/react-witness'\nimport { MemorySentinel } from '@xyo-network/sentinel-memory'\nimport { SentinelConfig, SentinelConfigSchema } from '@xyo-network/sentinel-model'\nimport { asWitnessInstance, WitnessInstance } from '@xyo-network/witness-model'\nimport React, { useEffect, useState } from 'react'\n\nimport { SentinelContext } from './Context.ts'\nimport { SentinelReportProgress, SentinelReportStatus } from './State.ts'\n\nexport interface SentinelProviderProps {\n /** Account used by the sentinel for signing */\n account: AccountInstance\n /** @deprecated - sentinel no longer uses archive but relies on an archivist */\n archive?: string\n archivist?: string\n filter?: ModuleFilter\n name?: string\n required?: boolean\n witnesses?: WitnessInstance[]\n}\n\nexport const SentinelProvider: React.FC<WithChildren<SentinelProviderProps>> = ({ account, archivist, children, filter, name, required = false }) => {\n const [sentinel, setSentinel] = useState<MemorySentinel>()\n const [history, setHistory] = useState<BoundWitness[]>()\n const [progress, setProgress] = useState<SentinelReportProgress>({})\n const [status, setStatus] = useState(SentinelReportStatus.Idle)\n const [reportingErrors, setReportingErrors] = useState<Error[]>()\n const [witnesses] = useWitnessesFromNode(filter)\n\n useAsyncEffect(\n\n async (mounted) => {\n const sentinel = await MemorySentinel.create({\n account,\n config: {\n archivists: archivist ? [archivist] : undefined,\n name,\n\n schema: SentinelConfigSchema,\n synchronous: true,\n\n tasks: witnesses?.map(mod => ({ mod: mod.address })),\n } as SentinelConfig,\n })\n const offCallbacks: (() => void)[] = []\n offCallbacks.push(\n sentinel.on('reportEnd', ({ mod, outPayloads }) => {\n if (mounted()) {\n setProgress({\n archivists: progress.archivists,\n witnesses: progress.witnesses,\n })\n setStatus(outPayloads?.length ? SentinelReportStatus.Succeeded : SentinelReportStatus.Failed)\n setReportingErrors([new Error(`Witness failed [${mod?.config?.name ?? mod.address}]`)])\n }\n }),\n )\n offCallbacks.push(\n sentinel.on('reportStart', () => {\n if (mounted()) {\n setProgress({ archivists: {}, witnesses: {} })\n setStatus(SentinelReportStatus.Started)\n }\n }),\n )\n if (witnesses)\n for (const witness of witnesses) {\n offCallbacks.push(\n witness.on('observeEnd', ({ mod, outPayloads }) => {\n const witnesses = progress.witnesses ?? {}\n witnesses[witness.address] = {\n status: outPayloads?.length ? SentinelReportStatus.Succeeded : SentinelReportStatus.Failed,\n witness: asWitnessInstance(mod, () => `Module is not a witness [${mod.id}]`),\n }\n if (mounted()) {\n setProgress({\n archivists: progress.archivists,\n witnesses,\n })\n }\n }),\n )\n offCallbacks.push(\n witness.on('observeStart', ({ mod }) => {\n const witnesses = progress.witnesses ?? {}\n witnesses[witness.address] = {\n status: SentinelReportStatus.Started,\n witness: asWitnessInstance(mod, () => `Module is not a witness [${mod.id}]`),\n }\n if (mounted()) {\n setProgress({\n archivists: progress.archivists,\n witnesses,\n })\n }\n }),\n )\n }\n setSentinel(sentinel as MemorySentinel)\n return () => {\n // unsubscribe from events\n for (const callback of offCallbacks) {\n callback()\n }\n }\n },\n\n [account, archivist, witnesses],\n )\n\n useEffect(() => {\n setHistory(sentinel?.history as BoundWitness[])\n }, [sentinel])\n\n return !required || sentinel\n // eslint-disable-next-line @eslint-react/no-unstable-context-value\n ? <SentinelContext.Provider value={{ history, progress, provided: true, reportingErrors, sentinel, status }}>{children}</SentinelContext.Provider>\n : null\n}\n","import { ArchivistModule } from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { SentinelModule } from '@xyo-network/sentinel-model'\nimport { WitnessModule } from '@xyo-network/witness-model'\n\nexport enum SentinelReportStatus {\n Idle = 'idle',\n Queued = 'queued',\n Started = 'started',\n Succeeded = 'succeeded',\n Failed = 'failed',\n}\n\nexport interface SentinelWitnessReportProgress {\n status: SentinelReportStatus\n witness: WitnessModule\n}\n\nexport interface SentinelArchivistApiReportProgress {\n archivist: ArchivistModule\n status: SentinelReportStatus\n}\n\nexport interface SentinelReportProgress {\n archivists?: Record<string, SentinelArchivistApiReportProgress>\n witnesses?: Record<string, SentinelWitnessReportProgress>\n}\n\nexport interface SentinelContextState {\n history?: BoundWitness[]\n progress?: SentinelReportProgress\n reportingErrors?: Error[]\n sentinel?: SentinelModule\n status?: SentinelReportStatus\n}\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { SentinelContext } from './Context.ts'\n\nexport const useSentinelContext = () => {\n const { sentinel, history, progress, reportingErrors, status } = useContextEx(SentinelContext, 'Sentinel')\n return { history, progress, reportingErrors, sentinel, status }\n}\n","import { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\nimport { asSentinelInstance, SentinelInstance } from '@xyo-network/sentinel-model'\n\nexport const useSentinelFromNode = (\n nameOrAddressOrInstance?: string | SentinelInstance,\n config?: ModuleFromNodeConfig,\n): [SentinelInstance | undefined, Error | undefined] => {\n const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asSentinelInstance(mod)\n if (mod && !instance) {\n const error = new Error(`Resolved module is not a SentinelInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\nimport { isSentinelInstance, SentinelInstance } from '@xyo-network/sentinel-model'\n\nexport const useSentinelsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [SentinelInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return modules\n ? [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<SentinelInstance[]>((prev, mod) => {\n if (isSentinelInstance(mod)) {\n prev.push(mod)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { useWeakModuleFromNode, WeakModuleFromNodeConfig } from '@xyo-network/react-node'\nimport { isSentinelInstance, SentinelInstance } from '@xyo-network/sentinel-model'\n\nexport const useWeakSentinelFromNode = (\n nameOrAddressOrInstance?: string | SentinelInstance,\n config?: WeakModuleFromNodeConfig,\n): [WeakRef<SentinelInstance> | undefined, Error | undefined] => {\n return useWeakModuleFromNode<SentinelInstance>(nameOrAddressOrInstance, { identity: isSentinelInstance, ...config })\n}\n","import { exists } from '@xylabs/exists'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useWeakModulesFromNode } from '@xyo-network/react-node'\nimport { asSentinelInstance, SentinelInstance } from '@xyo-network/sentinel-model'\n\nexport const useWeakSentinelsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [WeakRef<SentinelInstance>[] | null | undefined, Error | undefined] => {\n const [modules, error] = useWeakModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return [\n modules\n ?.map((mod) => {\n const instance = asSentinelInstance(mod?.deref())\n if (instance) {\n return new WeakRef(instance)\n }\n })\n .filter(exists) ?? [],\n undefined,\n ]\n}\n"],"mappings":"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","names":["import_react","SentinelCardActions","onReport","mod","props","React","ModuleCardActions","ButtonEx","onClick","size","variant","import_react_module","import_react","SentinelCardContent","children","report","mod","props","React","ModuleCardContent","FlexGrowRow","flexWrap","justifyContent","gap","JsonViewerEx","value","import_react_module","import_react","SentinelCardHeader","title","mod","props","React","ModuleCardHeader","config","name","SentinelCard","children","inPayloads","mod","props","retry","setRetry","useState","report","usePromise","React","Card","SentinelCardHeader","SentinelCardContent","SentinelCardActions","onReport","SentinelContext","createContextEx","import_react","SentinelReportStatus","SentinelProvider","account","archivist","children","filter","name","required","sentinel","setSentinel","useState","history","setHistory","progress","setProgress","status","setStatus","SentinelReportStatus","Idle","reportingErrors","setReportingErrors","witnesses","useWitnessesFromNode","useAsyncEffect","mounted","MemorySentinel","create","config","archivists","undefined","schema","SentinelConfigSchema","synchronous","tasks","map","mod","address","offCallbacks","push","on","outPayloads","length","Succeeded","Failed","Error","Started","witness","asWitnessInstance","id","callback","useEffect","React","SentinelContext","Provider","value","provided","import_react_shared","useSentinelContext","sentinel","history","progress","reportingErrors","status","useContextEx","SentinelContext","import_sentinel_model","useSentinelFromNode","nameOrAddressOrInstance","config","mod","error","useModuleFromNode","instance","asSentinelInstance","Error","schema","name","address","console","message","undefined","import_react_node","import_sentinel_model","useSentinelsFromNode","filter","config","modules","error","useModulesFromNode","reduce","prev","mod","isSentinelInstance","push","undefined","import_react_node","import_sentinel_model","useWeakSentinelFromNode","nameOrAddressOrInstance","config","useWeakModuleFromNode","identity","isSentinelInstance","import_react_node","import_sentinel_model","useWeakSentinelsFromNode","filter","config","modules","error","useWeakModulesFromNode","map","mod","instance","asSentinelInstance","deref","WeakRef","exists","undefined"]}
@@ -1,4 +1,4 @@
1
- export * from './components/index.js';
2
- export * from './contexts/index.js';
3
- export * from './hooks/index.js';
1
+ export * from './components/index.ts';
2
+ export * from './contexts/index.ts';
3
+ export * from './hooks/index.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- export * from './components/index.js';
2
- export * from './contexts/index.js';
3
- export * from './hooks/index.js';
1
+ export * from './components/index.ts';
2
+ export * from './contexts/index.ts';
3
+ export * from './hooks/index.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- export * from './components/index.js';
2
- export * from './contexts/index.js';
3
- export * from './hooks/index.js';
1
+ export * from './components/index.ts';
2
+ export * from './contexts/index.ts';
3
+ export * from './hooks/index.ts';
4
4
  //# sourceMappingURL=index.d.ts.map