@xyo-network/react-sentinel 2.64.8 → 2.64.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/browser/contexts/use.d.cts +3 -26
  2. package/dist/browser/contexts/use.d.cts.map +1 -1
  3. package/dist/browser/contexts/use.d.mts +3 -26
  4. package/dist/browser/contexts/use.d.mts.map +1 -1
  5. package/dist/browser/contexts/use.d.ts +3 -26
  6. package/dist/browser/contexts/use.d.ts.map +1 -1
  7. package/dist/docs.json +43 -43
  8. package/dist/node/contexts/use.d.cts +3 -26
  9. package/dist/node/contexts/use.d.cts.map +1 -1
  10. package/dist/node/contexts/use.d.mts +3 -26
  11. package/dist/node/contexts/use.d.mts.map +1 -1
  12. package/dist/node/contexts/use.d.ts +3 -26
  13. package/dist/node/contexts/use.d.ts.map +1 -1
  14. package/package.json +15 -15
  15. package/dist/browser/contexts/Context.cjs +0 -28
  16. package/dist/browser/contexts/Context.cjs.map +0 -1
  17. package/dist/browser/contexts/Context.js +0 -7
  18. package/dist/browser/contexts/Context.js.map +0 -1
  19. package/dist/browser/contexts/Provider.cjs +0 -124
  20. package/dist/browser/contexts/Provider.cjs.map +0 -1
  21. package/dist/browser/contexts/Provider.js +0 -103
  22. package/dist/browser/contexts/Provider.js.map +0 -1
  23. package/dist/browser/contexts/State.cjs +0 -34
  24. package/dist/browser/contexts/State.cjs.map +0 -1
  25. package/dist/browser/contexts/State.js +0 -13
  26. package/dist/browser/contexts/State.js.map +0 -1
  27. package/dist/browser/contexts/index.cjs +0 -146
  28. package/dist/browser/contexts/index.cjs.map +0 -1
  29. package/dist/browser/contexts/index.js +0 -123
  30. package/dist/browser/contexts/index.js.map +0 -1
  31. package/dist/browser/contexts/use.cjs +0 -37
  32. package/dist/browser/contexts/use.cjs.map +0 -1
  33. package/dist/browser/contexts/use.js +0 -16
  34. package/dist/browser/contexts/use.js.map +0 -1
  35. package/dist/browser/hooks/index.cjs +0 -64
  36. package/dist/browser/hooks/index.cjs.map +0 -1
  37. package/dist/browser/hooks/index.js +0 -41
  38. package/dist/browser/hooks/index.js.map +0 -1
  39. package/dist/browser/hooks/node/index.cjs +0 -64
  40. package/dist/browser/hooks/node/index.cjs.map +0 -1
  41. package/dist/browser/hooks/node/index.js +0 -41
  42. package/dist/browser/hooks/node/index.js.map +0 -1
  43. package/dist/browser/hooks/node/useSentinelFromNode.cjs +0 -38
  44. package/dist/browser/hooks/node/useSentinelFromNode.cjs.map +0 -1
  45. package/dist/browser/hooks/node/useSentinelFromNode.js +0 -17
  46. package/dist/browser/hooks/node/useSentinelFromNode.js.map +0 -1
  47. package/dist/browser/hooks/node/useSentinelsFromNode.cjs +0 -47
  48. package/dist/browser/hooks/node/useSentinelsFromNode.cjs.map +0 -1
  49. package/dist/browser/hooks/node/useSentinelsFromNode.js +0 -26
  50. package/dist/browser/hooks/node/useSentinelsFromNode.js.map +0 -1
  51. package/dist/node/contexts/Context.cjs +0 -32
  52. package/dist/node/contexts/Context.cjs.map +0 -1
  53. package/dist/node/contexts/Context.js +0 -7
  54. package/dist/node/contexts/Context.js.map +0 -1
  55. package/dist/node/contexts/Provider.cjs +0 -129
  56. package/dist/node/contexts/Provider.cjs.map +0 -1
  57. package/dist/node/contexts/Provider.js +0 -104
  58. package/dist/node/contexts/Provider.js.map +0 -1
  59. package/dist/node/contexts/State.cjs +0 -38
  60. package/dist/node/contexts/State.cjs.map +0 -1
  61. package/dist/node/contexts/State.js +0 -13
  62. package/dist/node/contexts/State.js.map +0 -1
  63. package/dist/node/contexts/index.cjs +0 -154
  64. package/dist/node/contexts/index.cjs.map +0 -1
  65. package/dist/node/contexts/index.js +0 -124
  66. package/dist/node/contexts/index.js.map +0 -1
  67. package/dist/node/contexts/use.cjs +0 -41
  68. package/dist/node/contexts/use.cjs.map +0 -1
  69. package/dist/node/contexts/use.js +0 -16
  70. package/dist/node/contexts/use.js.map +0 -1
  71. package/dist/node/hooks/index.cjs +0 -70
  72. package/dist/node/hooks/index.cjs.map +0 -1
  73. package/dist/node/hooks/index.js +0 -42
  74. package/dist/node/hooks/index.js.map +0 -1
  75. package/dist/node/hooks/node/index.cjs +0 -70
  76. package/dist/node/hooks/node/index.cjs.map +0 -1
  77. package/dist/node/hooks/node/index.js +0 -42
  78. package/dist/node/hooks/node/index.js.map +0 -1
  79. package/dist/node/hooks/node/useSentinelFromNode.cjs +0 -43
  80. package/dist/node/hooks/node/useSentinelFromNode.cjs.map +0 -1
  81. package/dist/node/hooks/node/useSentinelFromNode.js +0 -18
  82. package/dist/node/hooks/node/useSentinelFromNode.js.map +0 -1
  83. package/dist/node/hooks/node/useSentinelsFromNode.cjs +0 -51
  84. package/dist/node/hooks/node/useSentinelsFromNode.cjs.map +0 -1
  85. package/dist/node/hooks/node/useSentinelsFromNode.js +0 -26
  86. package/dist/node/hooks/node/useSentinelsFromNode.js.map +0 -1
@@ -22,7 +22,7 @@ export declare const useSentinelContext: () => {
22
22
  readonly sign?: boolean | undefined;
23
23
  readonly storeQueries?: boolean | undefined;
24
24
  readonly timestamp?: boolean | undefined;
25
- } & Omit<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<{
25
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & Omit<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
26
26
  accountDerivationPath?: string | undefined;
27
27
  readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
28
28
  readonly labels?: import("@xyo-network/module-model").Labels | undefined;
@@ -38,32 +38,9 @@ export declare const useSentinelContext: () => {
38
38
  readonly sign?: boolean | undefined;
39
39
  readonly storeQueries?: boolean | undefined;
40
40
  readonly timestamp?: boolean | undefined;
41
- } & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<{
42
- accountDerivationPath?: string | undefined;
43
- readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
44
- readonly labels?: import("@xyo-network/module-model").Labels | undefined;
45
- readonly name?: string | undefined;
46
- readonly paging?: Record<string, {
47
- size?: number | undefined;
48
- }> | undefined;
49
- readonly security?: {
50
- readonly allowAnonymous?: boolean | undefined;
51
- readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
52
- readonly disallowed?: Record<string, string[]> | undefined;
53
- } | undefined;
54
- readonly sign?: boolean | undefined;
55
- readonly storeQueries?: boolean | undefined;
56
- readonly timestamp?: boolean | undefined;
57
- } & {
58
- archivists?: string[] | undefined;
59
- schema: string;
60
- } & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
61
- schema: "network.xyo.module.config";
62
- }, "schema"> & {
63
- schema: "network.xyo.module.config";
64
- } & {
41
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
65
42
  witnesses?: string[] | undefined;
66
- }, "schema"> & {
43
+ } & {
67
44
  schema: "network.xyo.sentinel.config";
68
45
  }, "schema"> & {
69
46
  schema: string;
@@ -1 +1 @@
1
- {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/contexts/use.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG9B,CAAA"}
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/contexts/use.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG9B,CAAA"}
package/package.json CHANGED
@@ -10,22 +10,22 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/react-async-effect": "^3.0.15",
14
- "@xylabs/react-shared": "^3.0.15",
15
- "@xyo-network/account-model": "^2.75.7",
16
- "@xyo-network/archivist": "^2.75.7",
17
- "@xyo-network/boundwitness-model": "^2.75.7",
18
- "@xyo-network/module": "^2.75.7",
19
- "@xyo-network/module-model": "^2.75.7",
20
- "@xyo-network/react-node": "~2.64.8",
21
- "@xyo-network/react-shared": "~2.64.8",
22
- "@xyo-network/react-witness": "~2.64.8",
23
- "@xyo-network/sentinel": "^2.75.7",
24
- "@xyo-network/witness": "^2.75.7"
13
+ "@xylabs/react-async-effect": "^3.0.18",
14
+ "@xylabs/react-shared": "^3.0.18",
15
+ "@xyo-network/account-model": "^2.75.16",
16
+ "@xyo-network/archivist": "^2.75.16",
17
+ "@xyo-network/boundwitness-model": "^2.75.16",
18
+ "@xyo-network/module": "^2.75.16",
19
+ "@xyo-network/module-model": "^2.75.16",
20
+ "@xyo-network/react-node": "~2.64.10",
21
+ "@xyo-network/react-shared": "~2.64.10",
22
+ "@xyo-network/react-witness": "~2.64.10",
23
+ "@xyo-network/sentinel": "^2.75.16",
24
+ "@xyo-network/witness": "^2.75.16"
25
25
  },
26
26
  "devDependencies": {
27
- "@xylabs/ts-scripts-yarn3": "^3.0.82",
28
- "@xylabs/tsconfig-react": "^3.0.82",
27
+ "@xylabs/ts-scripts-yarn3": "^3.1.3",
28
+ "@xylabs/tsconfig-react": "^3.1.3",
29
29
  "typescript": "^5.2.2"
30
30
  },
31
31
  "peerDependencies": {
@@ -87,6 +87,6 @@
87
87
  },
88
88
  "sideEffects": false,
89
89
  "types": "dist/browser/index.d.ts",
90
- "version": "2.64.8",
90
+ "version": "2.64.10",
91
91
  "type": "module"
92
92
  }
@@ -1,28 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/contexts/Context.ts
21
- var Context_exports = {};
22
- __export(Context_exports, {
23
- SentinelContext: () => SentinelContext
24
- });
25
- module.exports = __toCommonJS(Context_exports);
26
- var import_react_shared = require("@xyo-network/react-shared");
27
- var SentinelContext = (0, import_react_shared.createContextEx)();
28
- //# sourceMappingURL=Context.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/contexts/Context.ts"],"sourcesContent":["import { createContextEx } from '@xyo-network/react-shared'\n\nimport { SentinelContextState } from './State'\n\nexport const SentinelContext = createContextEx<SentinelContextState>()\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAgC;AAIzB,IAAM,sBAAkB,qCAAsC;","names":[]}
@@ -1,7 +0,0 @@
1
- // src/contexts/Context.ts
2
- import { createContextEx } from "@xyo-network/react-shared";
3
- var SentinelContext = createContextEx();
4
- export {
5
- SentinelContext
6
- };
7
- //# sourceMappingURL=Context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/contexts/Context.ts"],"sourcesContent":["import { createContextEx } from '@xyo-network/react-shared'\n\nimport { SentinelContextState } from './State'\n\nexport const SentinelContext = createContextEx<SentinelContextState>()\n"],"mappings":";AAAA,SAAS,uBAAuB;AAIzB,IAAM,kBAAkB,gBAAsC;","names":[]}
@@ -1,124 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/contexts/Provider.tsx
21
- var Provider_exports = {};
22
- __export(Provider_exports, {
23
- SentinelProvider: () => SentinelProvider
24
- });
25
- module.exports = __toCommonJS(Provider_exports);
26
- var import_react_async_effect = require("@xylabs/react-async-effect");
27
- var import_react_witness = require("@xyo-network/react-witness");
28
- var import_sentinel = require("@xyo-network/sentinel");
29
- var import_react = require("react");
30
-
31
- // src/contexts/Context.ts
32
- var import_react_shared = require("@xyo-network/react-shared");
33
- var SentinelContext = (0, import_react_shared.createContextEx)();
34
-
35
- // src/contexts/Provider.tsx
36
- var import_jsx_runtime = require("react/jsx-runtime");
37
- var SentinelProvider = ({ account, archivist, children, filter, name, required = false }) => {
38
- const [sentinel, setSentinel] = (0, import_react.useState)();
39
- const [history, setHistory] = (0, import_react.useState)();
40
- const [progress, setProgress] = (0, import_react.useState)({});
41
- const [status, setStatus] = (0, import_react.useState)("idle" /* Idle */);
42
- const [reportingErrors, setReportingErrors] = (0, import_react.useState)();
43
- const [witnesses] = (0, import_react_witness.useWitnessesFromNode)(filter);
44
- (0, import_react_async_effect.useAsyncEffect)(
45
- // eslint-disable-next-line react-hooks/exhaustive-deps
46
- async (mounted) => {
47
- const sentinel2 = await import_sentinel.MemorySentinel.create({
48
- account,
49
- config: {
50
- archivists: archivist ? [archivist] : void 0,
51
- name,
52
- schema: import_sentinel.SentinelConfigSchema,
53
- witnesses: witnesses?.map((module2) => module2.address)
54
- }
55
- });
56
- const offCallbacks = [];
57
- offCallbacks.push(
58
- sentinel2.on("reportEnd", ({ module: module2, outPayloads }) => {
59
- if (mounted()) {
60
- setProgress({
61
- archivists: progress.archivists,
62
- witnesses: progress.witnesses
63
- });
64
- setStatus(outPayloads?.length ? "succeeded" /* Succeeded */ : "failed" /* Failed */);
65
- setReportingErrors([Error(`Witness failed [${module2?.config?.name ?? module2.address}]`)]);
66
- }
67
- })
68
- );
69
- offCallbacks.push(
70
- sentinel2.on("reportStart", () => {
71
- if (mounted()) {
72
- setProgress({ archivists: {}, witnesses: {} });
73
- setStatus("started" /* Started */);
74
- }
75
- })
76
- );
77
- witnesses?.forEach((witness) => {
78
- offCallbacks.push(
79
- witness.on("observeEnd", ({ module: module2, outPayloads }) => {
80
- const witnesses2 = progress.witnesses ?? {};
81
- witnesses2[witness.address] = {
82
- status: outPayloads?.length ? "succeeded" /* Succeeded */ : "failed" /* Failed */,
83
- witness: module2
84
- };
85
- if (mounted()) {
86
- setProgress({
87
- archivists: progress.archivists,
88
- witnesses: witnesses2
89
- });
90
- }
91
- })
92
- );
93
- offCallbacks.push(
94
- witness.on("observeStart", ({ module: module2 }) => {
95
- const witnesses2 = progress.witnesses ?? {};
96
- witnesses2[witness.address] = {
97
- status: "started" /* Started */,
98
- witness: module2
99
- };
100
- if (mounted()) {
101
- setProgress({
102
- archivists: progress.archivists,
103
- witnesses: witnesses2
104
- });
105
- }
106
- })
107
- );
108
- });
109
- setSentinel(sentinel2);
110
- return () => {
111
- offCallbacks.forEach((callback) => {
112
- callback();
113
- });
114
- };
115
- },
116
- // eslint-disable-next-line react-hooks/exhaustive-deps
117
- [account, archivist, witnesses]
118
- );
119
- (0, import_react.useEffect)(() => {
120
- setHistory(sentinel?.history);
121
- }, [sentinel]);
122
- return !required || sentinel ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SentinelContext.Provider, { value: { history, progress, provided: true, reportingErrors, sentinel, status }, children }) : null;
123
- };
124
- //# sourceMappingURL=Provider.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/contexts/Provider.tsx","../../../src/contexts/Context.ts"],"sourcesContent":["import { 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'\nimport { useWitnessesFromNode } from '@xyo-network/react-witness'\nimport { MemorySentinel, SentinelConfig, SentinelConfigSchema } from '@xyo-network/sentinel'\nimport { WitnessInstance } from '@xyo-network/witness'\nimport { useEffect, useState } from 'react'\n\nimport { SentinelContext } from './Context'\nimport { SentinelReportProgress, SentinelReportStatus } from './State'\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 witnesses: witnesses?.map((module) => module.address),\n } as SentinelConfig,\n })\n const offCallbacks: (() => void)[] = []\n offCallbacks.push(\n sentinel.on('reportEnd', ({ module, 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([Error(`Witness failed [${module?.config?.name ?? module.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 witnesses?.forEach((witness) => {\n offCallbacks.push(\n witness.on('observeEnd', ({ module, outPayloads }) => {\n const witnesses = progress.witnesses ?? {}\n witnesses[witness.address] = {\n status: outPayloads?.length ? SentinelReportStatus.Succeeded : SentinelReportStatus.Failed,\n witness: module,\n }\n if (mounted()) {\n setProgress({\n archivists: progress.archivists,\n witnesses,\n })\n }\n }),\n )\n offCallbacks.push(\n witness.on('observeStart', ({ module }) => {\n const witnesses = progress.witnesses ?? {}\n witnesses[witness.address] = {\n status: SentinelReportStatus.Started,\n witness: module,\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 offCallbacks.forEach((callback) => {\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 { createContextEx } from '@xyo-network/react-shared'\n\nimport { SentinelContextState } from './State'\n\nexport const SentinelContext = createContextEx<SentinelContextState>()\n"],"mappings":"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","names":["sentinel","module","witnesses"]}
@@ -1,103 +0,0 @@
1
- // src/contexts/Provider.tsx
2
- import { useAsyncEffect } from "@xylabs/react-async-effect";
3
- import { useWitnessesFromNode } from "@xyo-network/react-witness";
4
- import { MemorySentinel, SentinelConfigSchema } from "@xyo-network/sentinel";
5
- import { useEffect, useState } from "react";
6
-
7
- // src/contexts/Context.ts
8
- import { createContextEx } from "@xyo-network/react-shared";
9
- var SentinelContext = createContextEx();
10
-
11
- // src/contexts/Provider.tsx
12
- import { jsx } from "react/jsx-runtime";
13
- var SentinelProvider = ({ account, archivist, children, filter, name, required = false }) => {
14
- const [sentinel, setSentinel] = useState();
15
- const [history, setHistory] = useState();
16
- const [progress, setProgress] = useState({});
17
- const [status, setStatus] = useState("idle" /* Idle */);
18
- const [reportingErrors, setReportingErrors] = useState();
19
- const [witnesses] = useWitnessesFromNode(filter);
20
- useAsyncEffect(
21
- // eslint-disable-next-line react-hooks/exhaustive-deps
22
- async (mounted) => {
23
- const sentinel2 = await MemorySentinel.create({
24
- account,
25
- config: {
26
- archivists: archivist ? [archivist] : void 0,
27
- name,
28
- schema: SentinelConfigSchema,
29
- witnesses: witnesses?.map((module) => module.address)
30
- }
31
- });
32
- const offCallbacks = [];
33
- offCallbacks.push(
34
- sentinel2.on("reportEnd", ({ module, outPayloads }) => {
35
- if (mounted()) {
36
- setProgress({
37
- archivists: progress.archivists,
38
- witnesses: progress.witnesses
39
- });
40
- setStatus(outPayloads?.length ? "succeeded" /* Succeeded */ : "failed" /* Failed */);
41
- setReportingErrors([Error(`Witness failed [${module?.config?.name ?? module.address}]`)]);
42
- }
43
- })
44
- );
45
- offCallbacks.push(
46
- sentinel2.on("reportStart", () => {
47
- if (mounted()) {
48
- setProgress({ archivists: {}, witnesses: {} });
49
- setStatus("started" /* Started */);
50
- }
51
- })
52
- );
53
- witnesses?.forEach((witness) => {
54
- offCallbacks.push(
55
- witness.on("observeEnd", ({ module, outPayloads }) => {
56
- const witnesses2 = progress.witnesses ?? {};
57
- witnesses2[witness.address] = {
58
- status: outPayloads?.length ? "succeeded" /* Succeeded */ : "failed" /* Failed */,
59
- witness: module
60
- };
61
- if (mounted()) {
62
- setProgress({
63
- archivists: progress.archivists,
64
- witnesses: witnesses2
65
- });
66
- }
67
- })
68
- );
69
- offCallbacks.push(
70
- witness.on("observeStart", ({ module }) => {
71
- const witnesses2 = progress.witnesses ?? {};
72
- witnesses2[witness.address] = {
73
- status: "started" /* Started */,
74
- witness: module
75
- };
76
- if (mounted()) {
77
- setProgress({
78
- archivists: progress.archivists,
79
- witnesses: witnesses2
80
- });
81
- }
82
- })
83
- );
84
- });
85
- setSentinel(sentinel2);
86
- return () => {
87
- offCallbacks.forEach((callback) => {
88
- callback();
89
- });
90
- };
91
- },
92
- // eslint-disable-next-line react-hooks/exhaustive-deps
93
- [account, archivist, witnesses]
94
- );
95
- useEffect(() => {
96
- setHistory(sentinel?.history);
97
- }, [sentinel]);
98
- return !required || sentinel ? /* @__PURE__ */ jsx(SentinelContext.Provider, { value: { history, progress, provided: true, reportingErrors, sentinel, status }, children }) : null;
99
- };
100
- export {
101
- SentinelProvider
102
- };
103
- //# sourceMappingURL=Provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/contexts/Provider.tsx","../../../src/contexts/Context.ts"],"sourcesContent":["import { 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'\nimport { useWitnessesFromNode } from '@xyo-network/react-witness'\nimport { MemorySentinel, SentinelConfig, SentinelConfigSchema } from '@xyo-network/sentinel'\nimport { WitnessInstance } from '@xyo-network/witness'\nimport { useEffect, useState } from 'react'\n\nimport { SentinelContext } from './Context'\nimport { SentinelReportProgress, SentinelReportStatus } from './State'\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 witnesses: witnesses?.map((module) => module.address),\n } as SentinelConfig,\n })\n const offCallbacks: (() => void)[] = []\n offCallbacks.push(\n sentinel.on('reportEnd', ({ module, 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([Error(`Witness failed [${module?.config?.name ?? module.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 witnesses?.forEach((witness) => {\n offCallbacks.push(\n witness.on('observeEnd', ({ module, outPayloads }) => {\n const witnesses = progress.witnesses ?? {}\n witnesses[witness.address] = {\n status: outPayloads?.length ? SentinelReportStatus.Succeeded : SentinelReportStatus.Failed,\n witness: module,\n }\n if (mounted()) {\n setProgress({\n archivists: progress.archivists,\n witnesses,\n })\n }\n }),\n )\n offCallbacks.push(\n witness.on('observeStart', ({ module }) => {\n const witnesses = progress.witnesses ?? {}\n witnesses[witness.address] = {\n status: SentinelReportStatus.Started,\n witness: module,\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 offCallbacks.forEach((callback) => {\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 { createContextEx } from '@xyo-network/react-shared'\n\nimport { SentinelContextState } from './State'\n\nexport const SentinelContext = createContextEx<SentinelContextState>()\n"],"mappings":"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","names":["sentinel","witnesses"]}
@@ -1,34 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/contexts/State.ts
21
- var State_exports = {};
22
- __export(State_exports, {
23
- SentinelReportStatus: () => SentinelReportStatus
24
- });
25
- module.exports = __toCommonJS(State_exports);
26
- var SentinelReportStatus = /* @__PURE__ */ ((SentinelReportStatus2) => {
27
- SentinelReportStatus2["Idle"] = "idle";
28
- SentinelReportStatus2["Queued"] = "queued";
29
- SentinelReportStatus2["Started"] = "started";
30
- SentinelReportStatus2["Succeeded"] = "succeeded";
31
- SentinelReportStatus2["Failed"] = "failed";
32
- return SentinelReportStatus2;
33
- })(SentinelReportStatus || {});
34
- //# sourceMappingURL=State.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/contexts/State.ts"],"sourcesContent":["import { ArchivistModule } from '@xyo-network/archivist'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { SentinelModule } from '@xyo-network/sentinel'\nimport { WitnessModule } from '@xyo-network/witness'\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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,IAAK,uBAAL,kBAAKA,0BAAL;AACL,EAAAA,sBAAA,UAAO;AACP,EAAAA,sBAAA,YAAS;AACT,EAAAA,sBAAA,aAAU;AACV,EAAAA,sBAAA,eAAY;AACZ,EAAAA,sBAAA,YAAS;AALC,SAAAA;AAAA,GAAA;","names":["SentinelReportStatus"]}
@@ -1,13 +0,0 @@
1
- // src/contexts/State.ts
2
- var SentinelReportStatus = /* @__PURE__ */ ((SentinelReportStatus2) => {
3
- SentinelReportStatus2["Idle"] = "idle";
4
- SentinelReportStatus2["Queued"] = "queued";
5
- SentinelReportStatus2["Started"] = "started";
6
- SentinelReportStatus2["Succeeded"] = "succeeded";
7
- SentinelReportStatus2["Failed"] = "failed";
8
- return SentinelReportStatus2;
9
- })(SentinelReportStatus || {});
10
- export {
11
- SentinelReportStatus
12
- };
13
- //# sourceMappingURL=State.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/contexts/State.ts"],"sourcesContent":["import { ArchivistModule } from '@xyo-network/archivist'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { SentinelModule } from '@xyo-network/sentinel'\nimport { WitnessModule } from '@xyo-network/witness'\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"],"mappings":";AAKO,IAAK,uBAAL,kBAAKA,0BAAL;AACL,EAAAA,sBAAA,UAAO;AACP,EAAAA,sBAAA,YAAS;AACT,EAAAA,sBAAA,aAAU;AACV,EAAAA,sBAAA,eAAY;AACZ,EAAAA,sBAAA,YAAS;AALC,SAAAA;AAAA,GAAA;","names":["SentinelReportStatus"]}
@@ -1,146 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/contexts/index.ts
21
- var contexts_exports = {};
22
- __export(contexts_exports, {
23
- SentinelContext: () => SentinelContext,
24
- SentinelProvider: () => SentinelProvider,
25
- SentinelReportStatus: () => SentinelReportStatus,
26
- useSentinelContext: () => useSentinelContext
27
- });
28
- module.exports = __toCommonJS(contexts_exports);
29
-
30
- // src/contexts/Context.ts
31
- var import_react_shared = require("@xyo-network/react-shared");
32
- var SentinelContext = (0, import_react_shared.createContextEx)();
33
-
34
- // src/contexts/Provider.tsx
35
- var import_react_async_effect = require("@xylabs/react-async-effect");
36
- var import_react_witness = require("@xyo-network/react-witness");
37
- var import_sentinel = require("@xyo-network/sentinel");
38
- var import_react = require("react");
39
-
40
- // src/contexts/State.ts
41
- var SentinelReportStatus = /* @__PURE__ */ ((SentinelReportStatus2) => {
42
- SentinelReportStatus2["Idle"] = "idle";
43
- SentinelReportStatus2["Queued"] = "queued";
44
- SentinelReportStatus2["Started"] = "started";
45
- SentinelReportStatus2["Succeeded"] = "succeeded";
46
- SentinelReportStatus2["Failed"] = "failed";
47
- return SentinelReportStatus2;
48
- })(SentinelReportStatus || {});
49
-
50
- // src/contexts/Provider.tsx
51
- var import_jsx_runtime = require("react/jsx-runtime");
52
- var SentinelProvider = ({ account, archivist, children, filter, name, required = false }) => {
53
- const [sentinel, setSentinel] = (0, import_react.useState)();
54
- const [history, setHistory] = (0, import_react.useState)();
55
- const [progress, setProgress] = (0, import_react.useState)({});
56
- const [status, setStatus] = (0, import_react.useState)("idle" /* Idle */);
57
- const [reportingErrors, setReportingErrors] = (0, import_react.useState)();
58
- const [witnesses] = (0, import_react_witness.useWitnessesFromNode)(filter);
59
- (0, import_react_async_effect.useAsyncEffect)(
60
- // eslint-disable-next-line react-hooks/exhaustive-deps
61
- async (mounted) => {
62
- const sentinel2 = await import_sentinel.MemorySentinel.create({
63
- account,
64
- config: {
65
- archivists: archivist ? [archivist] : void 0,
66
- name,
67
- schema: import_sentinel.SentinelConfigSchema,
68
- witnesses: witnesses?.map((module2) => module2.address)
69
- }
70
- });
71
- const offCallbacks = [];
72
- offCallbacks.push(
73
- sentinel2.on("reportEnd", ({ module: module2, outPayloads }) => {
74
- if (mounted()) {
75
- setProgress({
76
- archivists: progress.archivists,
77
- witnesses: progress.witnesses
78
- });
79
- setStatus(outPayloads?.length ? "succeeded" /* Succeeded */ : "failed" /* Failed */);
80
- setReportingErrors([Error(`Witness failed [${module2?.config?.name ?? module2.address}]`)]);
81
- }
82
- })
83
- );
84
- offCallbacks.push(
85
- sentinel2.on("reportStart", () => {
86
- if (mounted()) {
87
- setProgress({ archivists: {}, witnesses: {} });
88
- setStatus("started" /* Started */);
89
- }
90
- })
91
- );
92
- witnesses?.forEach((witness) => {
93
- offCallbacks.push(
94
- witness.on("observeEnd", ({ module: module2, outPayloads }) => {
95
- const witnesses2 = progress.witnesses ?? {};
96
- witnesses2[witness.address] = {
97
- status: outPayloads?.length ? "succeeded" /* Succeeded */ : "failed" /* Failed */,
98
- witness: module2
99
- };
100
- if (mounted()) {
101
- setProgress({
102
- archivists: progress.archivists,
103
- witnesses: witnesses2
104
- });
105
- }
106
- })
107
- );
108
- offCallbacks.push(
109
- witness.on("observeStart", ({ module: module2 }) => {
110
- const witnesses2 = progress.witnesses ?? {};
111
- witnesses2[witness.address] = {
112
- status: "started" /* Started */,
113
- witness: module2
114
- };
115
- if (mounted()) {
116
- setProgress({
117
- archivists: progress.archivists,
118
- witnesses: witnesses2
119
- });
120
- }
121
- })
122
- );
123
- });
124
- setSentinel(sentinel2);
125
- return () => {
126
- offCallbacks.forEach((callback) => {
127
- callback();
128
- });
129
- };
130
- },
131
- // eslint-disable-next-line react-hooks/exhaustive-deps
132
- [account, archivist, witnesses]
133
- );
134
- (0, import_react.useEffect)(() => {
135
- setHistory(sentinel?.history);
136
- }, [sentinel]);
137
- return !required || sentinel ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SentinelContext.Provider, { value: { history, progress, provided: true, reportingErrors, sentinel, status }, children }) : null;
138
- };
139
-
140
- // src/contexts/use.ts
141
- var import_react_shared2 = require("@xyo-network/react-shared");
142
- var useSentinelContext = () => {
143
- const { sentinel, history, progress, reportingErrors, status } = (0, import_react_shared2.useContextEx)(SentinelContext, "Sentinel");
144
- return { history, progress, reportingErrors, sentinel, status };
145
- };
146
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/contexts/index.ts","../../../src/contexts/Context.ts","../../../src/contexts/Provider.tsx","../../../src/contexts/State.ts","../../../src/contexts/use.ts"],"sourcesContent":["export * from './Context'\nexport * from './Provider'\nexport * from './State'\nexport * from './use'\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { SentinelContextState } from './State'\n\nexport const SentinelContext = createContextEx<SentinelContextState>()\n","import { 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'\nimport { useWitnessesFromNode } from '@xyo-network/react-witness'\nimport { MemorySentinel, SentinelConfig, SentinelConfigSchema } from '@xyo-network/sentinel'\nimport { WitnessInstance } from '@xyo-network/witness'\nimport { useEffect, useState } from 'react'\n\nimport { SentinelContext } from './Context'\nimport { SentinelReportProgress, SentinelReportStatus } from './State'\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 witnesses: witnesses?.map((module) => module.address),\n } as SentinelConfig,\n })\n const offCallbacks: (() => void)[] = []\n offCallbacks.push(\n sentinel.on('reportEnd', ({ module, 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([Error(`Witness failed [${module?.config?.name ?? module.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 witnesses?.forEach((witness) => {\n offCallbacks.push(\n witness.on('observeEnd', ({ module, outPayloads }) => {\n const witnesses = progress.witnesses ?? {}\n witnesses[witness.address] = {\n status: outPayloads?.length ? SentinelReportStatus.Succeeded : SentinelReportStatus.Failed,\n witness: module,\n }\n if (mounted()) {\n setProgress({\n archivists: progress.archivists,\n witnesses,\n })\n }\n }),\n )\n offCallbacks.push(\n witness.on('observeStart', ({ module }) => {\n const witnesses = progress.witnesses ?? {}\n witnesses[witness.address] = {\n status: SentinelReportStatus.Started,\n witness: module,\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 offCallbacks.forEach((callback) => {\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'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { SentinelModule } from '@xyo-network/sentinel'\nimport { WitnessModule } from '@xyo-network/witness'\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'\n\nexport const useSentinelContext = () => {\n const { sentinel, history, progress, reportingErrors, status } = useContextEx(SentinelContext, 'Sentinel')\n return { history, progress, reportingErrors, sentinel, status }\n}\n"],"mappings":"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","names":["SentinelReportStatus","sentinel","module","witnesses","import_react_shared"]}