@powerhousedao/powerhouse-vetra-packages 6.2.2-dev.6 → 6.2.2-dev.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/assets/{entry-Cvoo4_c9.js → entry-D-JZwwGk.js} +3 -2
- package/dist/browser/assets/{projection-entry-DVec8YRh.js → projection-entry-64-WZZjU.js} +4 -4
- package/dist/browser/{linting-Dn6pXRkK.js → button-CuO8Gh3v.js} +20 -6
- package/dist/browser/button-CuO8Gh3v.js.map +1 -0
- package/dist/browser/{connect-KEU-HR3o.js → connect-D1KIMa_5.js} +916 -200
- package/dist/browser/connect-D1KIMa_5.js.map +1 -0
- package/dist/browser/{dist-CXoKspdx.js → dist-B4FWbuEM.js} +10 -2
- package/dist/browser/{dist-CXoKspdx.js.map → dist-B4FWbuEM.js.map} +1 -1
- package/dist/{node/dist-BeZaEP6S.mjs → browser/dist-BAJ5nRDl.js} +21 -2
- package/dist/browser/{dist-D8H48e8N.js.map → dist-BAJ5nRDl.js.map} +1 -1
- package/dist/browser/{dist-D5ra2aRj.js → dist-dmLcxsWV.js} +1588 -1293
- package/dist/browser/dist-dmLcxsWV.js.map +1 -0
- package/dist/browser/{document-drive-IdFV1QXL.js → document-drive-cxHraTVQ.js} +1157 -122
- package/dist/browser/document-drive-cxHraTVQ.js.map +1 -0
- package/dist/browser/document-models/index.js +1 -1
- package/dist/browser/{documents-D4ek7Ubv.js → documents-J_l59mSV.js} +5 -604
- package/dist/browser/documents-J_l59mSV.js.map +1 -0
- package/dist/browser/{editor-DiZF3ao3.js → editor-BAUTcFP2.js} +671 -236
- package/dist/browser/editor-BAUTcFP2.js.map +1 -0
- package/dist/browser/editor-PmQcB82h.js +25 -0
- package/dist/browser/editor-PmQcB82h.js.map +1 -0
- package/dist/browser/editors/document-model-editor/module.js +1 -1
- package/dist/browser/editors/generic-drive-explorer/index.js +5 -5
- package/dist/browser/editors/generic-drive-explorer/module.js +1 -1
- package/dist/{node/folder-view-Cy-QxsDg.mjs → browser/folder-view-CWnDdLMC.js} +73 -46
- package/dist/browser/folder-view-CWnDdLMC.js.map +1 -0
- package/dist/browser/{graphql-editor-ZLRO_8Ce.js → graphql-editor-Cq_L5IUQ.js} +8 -7
- package/dist/browser/{graphql-editor-ZLRO_8Ce.js.map → graphql-editor-Cq_L5IUQ.js.map} +1 -1
- package/dist/browser/{hooks-CORHBNHb.js → hooks-KKcNp2X0.js} +2 -2
- package/dist/browser/{hooks-CORHBNHb.js.map → hooks-KKcNp2X0.js.map} +1 -1
- package/dist/browser/index.js +378 -9
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/{json-editor-DBuZ6gN7.js → json-editor-D8lysNHE.js} +4 -4
- package/dist/browser/{json-editor-DBuZ6gN7.js.map → json-editor-D8lysNHE.js.map} +1 -1
- package/dist/browser/{lib-C-f3izXz.js → lib-DKvC6Hnv.js} +13 -4
- package/dist/browser/lib-DKvC6Hnv.js.map +1 -0
- package/dist/browser/printer-CEYr4JOg.js +604 -0
- package/dist/browser/printer-CEYr4JOg.js.map +1 -0
- package/dist/browser/{schema-context-DY-GEGnY.js → schema-context-ZyeclQwy.js} +2 -2
- package/dist/browser/{schema-context-DY-GEGnY.js.map → schema-context-ZyeclQwy.js.map} +1 -1
- package/dist/browser/{state-schemas-BjQKM498.js → state-schemas-NyThZN-C.js} +8 -18
- package/dist/browser/state-schemas-NyThZN-C.js.map +1 -0
- package/dist/node/{linting-Dx50GuLN.mjs → button-Da7CxMn7.mjs} +20 -7
- package/dist/node/button-Da7CxMn7.mjs.map +1 -0
- package/dist/node/{connect-KcYZcy_Z.mjs → connect-BixjoUPL.mjs} +916 -200
- package/dist/node/connect-BixjoUPL.mjs.map +1 -0
- package/dist/node/{dist-DJEK2WVi.mjs → dist-BtnA_6jV.mjs} +1592 -1292
- package/dist/node/dist-BtnA_6jV.mjs.map +1 -0
- package/dist/{browser/dist-D8H48e8N.js → node/dist-CzYOpeXN.mjs} +21 -2
- package/dist/node/{dist-BeZaEP6S.mjs.map → dist-CzYOpeXN.mjs.map} +1 -1
- package/dist/node/{dist-fA4EItr0.mjs → dist-DT7jI9ol.mjs} +10 -2
- package/dist/node/{dist-fA4EItr0.mjs.map → dist-DT7jI9ol.mjs.map} +1 -1
- package/dist/node/{document-drive-C8hbqQ3C.mjs → document-drive-ChLoGFvU.mjs} +1157 -122
- package/dist/node/document-drive-ChLoGFvU.mjs.map +1 -0
- package/dist/node/document-models/index.mjs +1 -1
- package/dist/node/{documents-BFBPmyw1.mjs → documents-DCf53bzO.mjs} +3 -3
- package/dist/node/{documents-BFBPmyw1.mjs.map → documents-DCf53bzO.mjs.map} +1 -1
- package/dist/node/editor-C8Drq-be.mjs +25 -0
- package/dist/node/editor-C8Drq-be.mjs.map +1 -0
- package/dist/node/{editor-B1KhoF1f.mjs → editor-cfoi-9LF.mjs} +672 -237
- package/dist/node/editor-cfoi-9LF.mjs.map +1 -0
- package/dist/node/editors/document-model-editor/module.mjs +1 -1
- package/dist/node/editors/generic-drive-explorer/index.mjs +5 -5
- package/dist/node/editors/generic-drive-explorer/module.mjs +1 -1
- package/dist/{browser/folder-view-DMFqcJhc.js → node/folder-view--I9GOsir.mjs} +73 -46
- package/dist/node/folder-view--I9GOsir.mjs.map +1 -0
- package/dist/node/{graphql-DskHmkMe.mjs → graphql-BfAoPeWM.mjs} +2 -2
- package/dist/node/{graphql-DskHmkMe.mjs.map → graphql-BfAoPeWM.mjs.map} +1 -1
- package/dist/node/{graphql-editor-C5VLRqEf.mjs → graphql-editor-BKGQ8ojN.mjs} +7 -7
- package/dist/node/{graphql-editor-C5VLRqEf.mjs.map → graphql-editor-BKGQ8ojN.mjs.map} +1 -1
- package/dist/node/{hooks-DJrjfVaS.mjs → hooks-D0DcS3MV.mjs} +2 -2
- package/dist/node/{hooks-DJrjfVaS.mjs.map → hooks-D0DcS3MV.mjs.map} +1 -1
- package/dist/node/index.mjs +378 -9
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/{json-editor-iI2s9a_4.mjs → json-editor-32paCJkU.mjs} +4 -4
- package/dist/node/{json-editor-iI2s9a_4.mjs.map → json-editor-32paCJkU.mjs.map} +1 -1
- package/dist/node/{main-D82dkD7g.mjs → main-DRfab-vL.mjs} +15 -6
- package/dist/node/main-DRfab-vL.mjs.map +1 -0
- package/dist/node/{schema-context-CX5ml_9t.mjs → schema-context-DL8jhi_d.mjs} +3 -3
- package/dist/node/{schema-context-CX5ml_9t.mjs.map → schema-context-DL8jhi_d.mjs.map} +1 -1
- package/dist/node/{state-schemas-Bl7nA8bB.mjs → state-schemas-ClrkM0Fn.mjs} +10 -20
- package/dist/{browser/state-schemas-BjQKM498.js.map → node/state-schemas-ClrkM0Fn.mjs.map} +1 -1
- package/package.json +8 -7
- package/dist/browser/connect-KEU-HR3o.js.map +0 -1
- package/dist/browser/dist-D5ra2aRj.js.map +0 -1
- package/dist/browser/document-drive-IdFV1QXL.js.map +0 -1
- package/dist/browser/documents-D4ek7Ubv.js.map +0 -1
- package/dist/browser/editor-DiZF3ao3.js.map +0 -1
- package/dist/browser/editor-SqNULDP-.js +0 -29
- package/dist/browser/editor-SqNULDP-.js.map +0 -1
- package/dist/browser/folder-view-DMFqcJhc.js.map +0 -1
- package/dist/browser/lib-C-f3izXz.js.map +0 -1
- package/dist/browser/linting-Dn6pXRkK.js.map +0 -1
- package/dist/node/connect-KcYZcy_Z.mjs.map +0 -1
- package/dist/node/dist-DJEK2WVi.mjs.map +0 -1
- package/dist/node/document-drive-C8hbqQ3C.mjs.map +0 -1
- package/dist/node/editor-B1KhoF1f.mjs.map +0 -1
- package/dist/node/editor-yBGEvMGD.mjs +0 -29
- package/dist/node/editor-yBGEvMGD.mjs.map +0 -1
- package/dist/node/folder-view-Cy-QxsDg.mjs.map +0 -1
- package/dist/node/linting-Dx50GuLN.mjs.map +0 -1
- package/dist/node/main-D82dkD7g.mjs.map +0 -1
- package/dist/node/state-schemas-Bl7nA8bB.mjs.map +0 -1
package/dist/browser/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { c as any, h as object, l as array, p as literal, v as string } from "./dist-B4FWbuEM.js";
|
|
2
|
+
import { C as baseSaveToFileHandle, E as createBaseState, O as createReducer, R as isDocumentAction, S as baseLoadFromInputVersioned, T as createAction, b as baseCreateDocument, ct as generateId, d as documentModelDocumentModelModule, j as defaultBaseState, k as createState, m as BaseDocumentStateSchema, p as BaseDocumentHeaderSchema, r as driveDocumentModelModule, x as baseLoadFromInput, y as baseActions } from "./document-drive-cxHraTVQ.js";
|
|
3
|
+
import { t as gql } from "./lib-DKvC6Hnv.js";
|
|
3
4
|
import { DocumentModelEditor } from "./editors/document-model-editor/module.js";
|
|
4
5
|
import { GenericDriveExplorer } from "./editors/generic-drive-explorer/module.js";
|
|
5
6
|
//#region powerhouse.manifest.json
|
|
@@ -174,11 +175,11 @@ const reactorDriveStateReducer = (state, action) => {
|
|
|
174
175
|
default: return state;
|
|
175
176
|
}
|
|
176
177
|
};
|
|
177
|
-
const initialGlobalState = {
|
|
178
|
+
const initialGlobalState$1 = {
|
|
178
179
|
name: "",
|
|
179
180
|
icon: null
|
|
180
181
|
};
|
|
181
|
-
const initialLocalState = {
|
|
182
|
+
const initialLocalState$1 = {
|
|
182
183
|
sharingType: "private",
|
|
183
184
|
availableOffline: false
|
|
184
185
|
};
|
|
@@ -186,11 +187,11 @@ const reactorDriveCreateState = (state) => {
|
|
|
186
187
|
return {
|
|
187
188
|
...defaultBaseState(),
|
|
188
189
|
global: {
|
|
189
|
-
...initialGlobalState,
|
|
190
|
+
...initialGlobalState$1,
|
|
190
191
|
...state?.global
|
|
191
192
|
},
|
|
192
193
|
local: {
|
|
193
|
-
...initialLocalState,
|
|
194
|
+
...initialLocalState$1,
|
|
194
195
|
...state?.local
|
|
195
196
|
}
|
|
196
197
|
};
|
|
@@ -232,12 +233,12 @@ const reactorDriveDocumentGlobalState = {
|
|
|
232
233
|
state: {
|
|
233
234
|
global: {
|
|
234
235
|
schema: "type ReactorDriveState {\n name: String!\n icon: String\n}",
|
|
235
|
-
initialValue: JSON.stringify(JSON.stringify(initialGlobalState)),
|
|
236
|
+
initialValue: JSON.stringify(JSON.stringify(initialGlobalState$1)),
|
|
236
237
|
examples: []
|
|
237
238
|
},
|
|
238
239
|
local: {
|
|
239
240
|
schema: "type ReactorDriveLocalState {\n sharingType: String!\n availableOffline: Boolean!\n}",
|
|
240
|
-
initialValue: JSON.stringify(JSON.stringify(initialLocalState)),
|
|
241
|
+
initialValue: JSON.stringify(JSON.stringify(initialLocalState$1)),
|
|
241
242
|
examples: []
|
|
242
243
|
}
|
|
243
244
|
},
|
|
@@ -401,11 +402,379 @@ gql`
|
|
|
401
402
|
}
|
|
402
403
|
`;
|
|
403
404
|
//#endregion
|
|
405
|
+
//#region ../reactor-group/dist/chunk-pbuEa-1d.js
|
|
406
|
+
var __defProp = Object.defineProperty;
|
|
407
|
+
var __exportAll = (all, no_symbols) => {
|
|
408
|
+
let target = {};
|
|
409
|
+
for (var name in all) __defProp(target, name, {
|
|
410
|
+
get: all[name],
|
|
411
|
+
enumerable: true
|
|
412
|
+
});
|
|
413
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
414
|
+
return target;
|
|
415
|
+
};
|
|
416
|
+
//#endregion
|
|
417
|
+
//#region ../reactor-group/dist/module-DuRVS7HX.js
|
|
418
|
+
const isDefinedNonNullAny = (v) => v !== void 0 && v !== null;
|
|
419
|
+
any().refine((v) => isDefinedNonNullAny(v));
|
|
420
|
+
function AddMemberInputSchema() {
|
|
421
|
+
return object({ address: string() });
|
|
422
|
+
}
|
|
423
|
+
function ReactorGroupStateSchema() {
|
|
424
|
+
return object({
|
|
425
|
+
__typename: literal("ReactorGroupState").optional(),
|
|
426
|
+
description: string(),
|
|
427
|
+
members: array(string()),
|
|
428
|
+
name: string()
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
function RemoveMemberInputSchema() {
|
|
432
|
+
return object({ address: string() });
|
|
433
|
+
}
|
|
434
|
+
function SetGroupDescriptionInputSchema() {
|
|
435
|
+
return object({ description: string() });
|
|
436
|
+
}
|
|
437
|
+
function SetGroupNameInputSchema() {
|
|
438
|
+
return object({ name: string() });
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* WARNING: DO NOT EDIT
|
|
442
|
+
* This file is auto-generated and updated by codegen
|
|
443
|
+
*/
|
|
444
|
+
var creators_exports = /* @__PURE__ */ __exportAll({
|
|
445
|
+
addMember: () => addMember,
|
|
446
|
+
removeMember: () => removeMember,
|
|
447
|
+
setGroupDescription: () => setGroupDescription,
|
|
448
|
+
setGroupName: () => setGroupName
|
|
449
|
+
});
|
|
450
|
+
const setGroupName = (input) => createAction("SET_GROUP_NAME", { ...input }, void 0, SetGroupNameInputSchema, "global");
|
|
451
|
+
const setGroupDescription = (input) => createAction("SET_GROUP_DESCRIPTION", { ...input }, void 0, SetGroupDescriptionInputSchema, "global");
|
|
452
|
+
const addMember = (input) => createAction("ADD_MEMBER", { ...input }, void 0, AddMemberInputSchema, "global");
|
|
453
|
+
const removeMember = (input) => createAction("REMOVE_MEMBER", { ...input }, void 0, RemoveMemberInputSchema, "global");
|
|
454
|
+
/**
|
|
455
|
+
* WARNING: DO NOT EDIT
|
|
456
|
+
* This file is auto-generated and updated by codegen
|
|
457
|
+
*/
|
|
458
|
+
/** Actions for the ReactorGroup document model */
|
|
459
|
+
const actions = {
|
|
460
|
+
...baseActions,
|
|
461
|
+
...creators_exports
|
|
462
|
+
};
|
|
463
|
+
const documentModel = {
|
|
464
|
+
id: "powerhouse/reactor-group",
|
|
465
|
+
name: "Reactor Group",
|
|
466
|
+
author: {
|
|
467
|
+
name: "Powerhouse",
|
|
468
|
+
website: "https://powerhouse.inc"
|
|
469
|
+
},
|
|
470
|
+
extension: ".phrg",
|
|
471
|
+
description: "A group of member addresses referenced by { group } principals in the auth scope. Group membership is folded at an operation's position during auth evaluation, so reducers are strict and deterministic: duplicate or unknown members are errors, and membership is capped.",
|
|
472
|
+
specifications: [{
|
|
473
|
+
state: {
|
|
474
|
+
local: {
|
|
475
|
+
schema: "",
|
|
476
|
+
examples: [],
|
|
477
|
+
initialValue: ""
|
|
478
|
+
},
|
|
479
|
+
global: {
|
|
480
|
+
schema: "\"\"\"\nA member address list gated by the group document's own auth scope. Addresses\nare stored as given and compared case-insensitively, matching how { address }\nprincipals are compared during auth evaluation.\n\"\"\"\ntype ReactorGroupState {\n \"\"\"Display name of the group.\"\"\"\n name: String!\n \"\"\"Free-text description of the group's purpose.\"\"\"\n description: String!\n \"\"\"Member wallet addresses. No duplicates under case-insensitive comparison.\"\"\"\n members: [String!]!\n}",
|
|
481
|
+
examples: [],
|
|
482
|
+
initialValue: "{\n \"name\": \"\",\n \"description\": \"\",\n \"members\": []\n}"
|
|
483
|
+
}
|
|
484
|
+
},
|
|
485
|
+
modules: [{
|
|
486
|
+
id: "efd6d9bb-869e-4565-b1ca-d9b74385eaf7",
|
|
487
|
+
name: "group",
|
|
488
|
+
description: "Manage the group's identity and its member address list.",
|
|
489
|
+
operations: [
|
|
490
|
+
{
|
|
491
|
+
id: "43da2b3d-bad7-40b8-8a84-4cdf892f1519",
|
|
492
|
+
name: "SET_GROUP_NAME",
|
|
493
|
+
description: "Set the display name of the group. The name must be non-empty after trimming and at most 200 characters.",
|
|
494
|
+
schema: "input SetGroupNameInput {\n name: String!\n}",
|
|
495
|
+
template: "",
|
|
496
|
+
reducer: "",
|
|
497
|
+
errors: [{
|
|
498
|
+
id: "8be0d16c-1f21-4d95-9536-c5a5867d2ba1",
|
|
499
|
+
code: "InvalidGroupName",
|
|
500
|
+
name: "InvalidGroupName",
|
|
501
|
+
description: "The group name is empty after trimming or longer than 200 characters.",
|
|
502
|
+
template: ""
|
|
503
|
+
}],
|
|
504
|
+
examples: [],
|
|
505
|
+
scope: "global"
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
id: "aa493898-ce6b-4b28-baf3-1b6fd8425138",
|
|
509
|
+
name: "SET_GROUP_DESCRIPTION",
|
|
510
|
+
description: "Set the free-text description of the group. The description is at most 2000 characters.",
|
|
511
|
+
schema: "input SetGroupDescriptionInput {\n description: String!\n}",
|
|
512
|
+
template: "",
|
|
513
|
+
reducer: "",
|
|
514
|
+
errors: [{
|
|
515
|
+
id: "9f0f77a4-6a86-4f5c-9a3f-13a44be29de3",
|
|
516
|
+
code: "InvalidGroupDescription",
|
|
517
|
+
name: "InvalidGroupDescription",
|
|
518
|
+
description: "The group description is longer than 2000 characters.",
|
|
519
|
+
template: ""
|
|
520
|
+
}],
|
|
521
|
+
examples: [],
|
|
522
|
+
scope: "global"
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
id: "e7990be2-2e40-4624-9f96-df759703ba6b",
|
|
526
|
+
name: "ADD_MEMBER",
|
|
527
|
+
description: "Add a member address to the group. The address must be non-empty after trimming, must not already be a member under case-insensitive comparison, and the group must be below the member cap.",
|
|
528
|
+
schema: "input AddMemberInput {\n address: String!\n}",
|
|
529
|
+
template: "",
|
|
530
|
+
reducer: "",
|
|
531
|
+
errors: [
|
|
532
|
+
{
|
|
533
|
+
id: "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
|
|
534
|
+
code: "InvalidMemberAddress",
|
|
535
|
+
name: "InvalidMemberAddress",
|
|
536
|
+
description: "The member address is empty after trimming.",
|
|
537
|
+
template: ""
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
id: "b2c1a9de-58e6-4f3f-9f2a-7f6b1e2d4c5a",
|
|
541
|
+
code: "DuplicateMember",
|
|
542
|
+
name: "DuplicateMember",
|
|
543
|
+
description: "The address is already a member of the group under case-insensitive comparison.",
|
|
544
|
+
template: ""
|
|
545
|
+
},
|
|
546
|
+
{
|
|
547
|
+
id: "c4d5e6f7-0a1b-4c2d-8e3f-9a0b1c2d3e4f",
|
|
548
|
+
code: "GroupMemberLimitExceeded",
|
|
549
|
+
name: "GroupMemberLimitExceeded",
|
|
550
|
+
description: "The group already holds the maximum number of members.",
|
|
551
|
+
template: ""
|
|
552
|
+
}
|
|
553
|
+
],
|
|
554
|
+
examples: [],
|
|
555
|
+
scope: "global"
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
id: "b1309319-48b7-42b2-a40e-1fecef9a09a4",
|
|
559
|
+
name: "REMOVE_MEMBER",
|
|
560
|
+
description: "Remove a member address from the group, matched case-insensitively. Removing an address that is not a member is an error.",
|
|
561
|
+
schema: "input RemoveMemberInput {\n address: String!\n}",
|
|
562
|
+
template: "",
|
|
563
|
+
reducer: "",
|
|
564
|
+
errors: [{
|
|
565
|
+
id: "d6e7f8a9-1b2c-4d3e-9f4a-0b1c2d3e4f5a",
|
|
566
|
+
code: "MemberNotFound",
|
|
567
|
+
name: "MemberNotFound",
|
|
568
|
+
description: "The address is not a member of the group under case-insensitive comparison.",
|
|
569
|
+
template: ""
|
|
570
|
+
}],
|
|
571
|
+
examples: [],
|
|
572
|
+
scope: "global"
|
|
573
|
+
}
|
|
574
|
+
]
|
|
575
|
+
}],
|
|
576
|
+
version: 1,
|
|
577
|
+
changeLog: []
|
|
578
|
+
}]
|
|
579
|
+
};
|
|
580
|
+
var InvalidGroupName = class extends Error {
|
|
581
|
+
errorCode = "InvalidGroupName";
|
|
582
|
+
constructor(message = "InvalidGroupName") {
|
|
583
|
+
super(message);
|
|
584
|
+
}
|
|
585
|
+
};
|
|
586
|
+
var InvalidGroupDescription = class extends Error {
|
|
587
|
+
errorCode = "InvalidGroupDescription";
|
|
588
|
+
constructor(message = "InvalidGroupDescription") {
|
|
589
|
+
super(message);
|
|
590
|
+
}
|
|
591
|
+
};
|
|
592
|
+
var InvalidMemberAddress = class extends Error {
|
|
593
|
+
errorCode = "InvalidMemberAddress";
|
|
594
|
+
constructor(message = "InvalidMemberAddress") {
|
|
595
|
+
super(message);
|
|
596
|
+
}
|
|
597
|
+
};
|
|
598
|
+
var DuplicateMember = class extends Error {
|
|
599
|
+
errorCode = "DuplicateMember";
|
|
600
|
+
constructor(message = "DuplicateMember") {
|
|
601
|
+
super(message);
|
|
602
|
+
}
|
|
603
|
+
};
|
|
604
|
+
var GroupMemberLimitExceeded = class extends Error {
|
|
605
|
+
errorCode = "GroupMemberLimitExceeded";
|
|
606
|
+
constructor(message = "GroupMemberLimitExceeded") {
|
|
607
|
+
super(message);
|
|
608
|
+
}
|
|
609
|
+
};
|
|
610
|
+
var MemberNotFound = class extends Error {
|
|
611
|
+
errorCode = "MemberNotFound";
|
|
612
|
+
constructor(message = "MemberNotFound") {
|
|
613
|
+
super(message);
|
|
614
|
+
}
|
|
615
|
+
};
|
|
616
|
+
/** Every replica folds group state during auth evaluation, so membership is capped. */
|
|
617
|
+
const MAX_GROUP_MEMBERS = 1e3;
|
|
618
|
+
const MAX_GROUP_DESCRIPTION_LENGTH = 2e3;
|
|
619
|
+
/** Addresses are compared case-insensitively, matching { address } principals. */
|
|
620
|
+
function sameAddress(a, b) {
|
|
621
|
+
return a.toLowerCase() === b.toLowerCase();
|
|
622
|
+
}
|
|
623
|
+
const reactorGroupGroupOperations = {
|
|
624
|
+
setGroupNameOperation(state, action) {
|
|
625
|
+
const name = action.input.name.trim();
|
|
626
|
+
if (name === "" || name.length > 200) throw new InvalidGroupName(`Group name must be non-empty and at most 200 characters`);
|
|
627
|
+
state.name = name;
|
|
628
|
+
},
|
|
629
|
+
setGroupDescriptionOperation(state, action) {
|
|
630
|
+
const description = action.input.description;
|
|
631
|
+
if (description.length > 2e3) throw new InvalidGroupDescription(`Group description must be at most ${MAX_GROUP_DESCRIPTION_LENGTH} characters`);
|
|
632
|
+
state.description = description;
|
|
633
|
+
},
|
|
634
|
+
addMemberOperation(state, action) {
|
|
635
|
+
const address = action.input.address.trim();
|
|
636
|
+
if (address === "") throw new InvalidMemberAddress("Member address must be non-empty");
|
|
637
|
+
if (state.members.some((member) => sameAddress(member, address))) throw new DuplicateMember(`Address is already a member: ${address}`);
|
|
638
|
+
if (state.members.length >= 1e3) throw new GroupMemberLimitExceeded(`A group holds at most ${MAX_GROUP_MEMBERS} members`);
|
|
639
|
+
state.members.push(address);
|
|
640
|
+
},
|
|
641
|
+
removeMemberOperation(state, action) {
|
|
642
|
+
const address = action.input.address.trim();
|
|
643
|
+
const index = state.members.findIndex((member) => sameAddress(member, address));
|
|
644
|
+
if (index === -1) throw new MemberNotFound(`Address is not a member: ${address}`);
|
|
645
|
+
state.members.splice(index, 1);
|
|
646
|
+
}
|
|
647
|
+
};
|
|
648
|
+
const stateReducer = (state, action, dispatch) => {
|
|
649
|
+
if (isDocumentAction(action)) return state;
|
|
650
|
+
switch (action.type) {
|
|
651
|
+
case "SET_GROUP_NAME":
|
|
652
|
+
SetGroupNameInputSchema().parse(action.input);
|
|
653
|
+
reactorGroupGroupOperations.setGroupNameOperation(state[action.scope], action, dispatch);
|
|
654
|
+
break;
|
|
655
|
+
case "SET_GROUP_DESCRIPTION":
|
|
656
|
+
SetGroupDescriptionInputSchema().parse(action.input);
|
|
657
|
+
reactorGroupGroupOperations.setGroupDescriptionOperation(state[action.scope], action, dispatch);
|
|
658
|
+
break;
|
|
659
|
+
case "ADD_MEMBER":
|
|
660
|
+
AddMemberInputSchema().parse(action.input);
|
|
661
|
+
reactorGroupGroupOperations.addMemberOperation(state[action.scope], action, dispatch);
|
|
662
|
+
break;
|
|
663
|
+
case "REMOVE_MEMBER":
|
|
664
|
+
RemoveMemberInputSchema().parse(action.input);
|
|
665
|
+
reactorGroupGroupOperations.removeMemberOperation(state[action.scope], action, dispatch);
|
|
666
|
+
break;
|
|
667
|
+
default: return state;
|
|
668
|
+
}
|
|
669
|
+
};
|
|
670
|
+
const reducer = createReducer(stateReducer);
|
|
671
|
+
const supportedVersions = [1];
|
|
672
|
+
const reactorGroupUpgradeManifest = {
|
|
673
|
+
documentType: "powerhouse/reactor-group",
|
|
674
|
+
latestVersion: supportedVersions[0],
|
|
675
|
+
supportedVersions,
|
|
676
|
+
upgrades: {}
|
|
677
|
+
};
|
|
678
|
+
/**
|
|
679
|
+
* WARNING: DO NOT EDIT
|
|
680
|
+
* This file is auto-generated and updated by codegen
|
|
681
|
+
*/
|
|
682
|
+
const reactorGroupDocumentType = "powerhouse/reactor-group";
|
|
683
|
+
/**
|
|
684
|
+
* WARNING: DO NOT EDIT
|
|
685
|
+
* This file is auto-generated and updated by codegen
|
|
686
|
+
*/
|
|
687
|
+
/** Schema for validating the header object of a ReactorGroup document */
|
|
688
|
+
const ReactorGroupDocumentHeaderSchema = BaseDocumentHeaderSchema.extend({ documentType: literal(reactorGroupDocumentType) });
|
|
689
|
+
/** Schema for validating the state object of a ReactorGroup document */
|
|
690
|
+
const ReactorGroupPHStateSchema = BaseDocumentStateSchema.extend({ global: ReactorGroupStateSchema() });
|
|
691
|
+
const ReactorGroupDocumentSchema = object({
|
|
692
|
+
header: ReactorGroupDocumentHeaderSchema,
|
|
693
|
+
state: ReactorGroupPHStateSchema,
|
|
694
|
+
initialState: ReactorGroupPHStateSchema
|
|
695
|
+
});
|
|
696
|
+
/** Simple helper function to check if a state object is a ReactorGroup document state object */
|
|
697
|
+
function isReactorGroupState(state) {
|
|
698
|
+
return ReactorGroupPHStateSchema.safeParse(state).success;
|
|
699
|
+
}
|
|
700
|
+
/** Simple helper function to assert that a document state object is a ReactorGroup document state object */
|
|
701
|
+
function assertIsReactorGroupState(state) {
|
|
702
|
+
ReactorGroupPHStateSchema.parse(state);
|
|
703
|
+
}
|
|
704
|
+
/** Simple helper function to check if a document is a ReactorGroup document */
|
|
705
|
+
function isReactorGroupDocument(document) {
|
|
706
|
+
return ReactorGroupDocumentSchema.safeParse(document).success;
|
|
707
|
+
}
|
|
708
|
+
/** Simple helper function to assert that a document is a ReactorGroup document */
|
|
709
|
+
function assertIsReactorGroupDocument(document) {
|
|
710
|
+
ReactorGroupDocumentSchema.parse(document);
|
|
711
|
+
}
|
|
712
|
+
const initialGlobalState = {
|
|
713
|
+
name: "",
|
|
714
|
+
description: "",
|
|
715
|
+
members: []
|
|
716
|
+
};
|
|
717
|
+
const initialLocalState = {};
|
|
718
|
+
const utils$1 = {
|
|
719
|
+
fileExtension: ".phrg",
|
|
720
|
+
createState(state) {
|
|
721
|
+
return {
|
|
722
|
+
...createBaseState(state?.auth, {
|
|
723
|
+
version: 1,
|
|
724
|
+
...state?.document
|
|
725
|
+
}),
|
|
726
|
+
global: {
|
|
727
|
+
...initialGlobalState,
|
|
728
|
+
...state?.global
|
|
729
|
+
},
|
|
730
|
+
local: {
|
|
731
|
+
...initialLocalState,
|
|
732
|
+
...state?.local
|
|
733
|
+
}
|
|
734
|
+
};
|
|
735
|
+
},
|
|
736
|
+
createDocument(state) {
|
|
737
|
+
return baseCreateDocument(utils$1.createState, state, reactorGroupDocumentType);
|
|
738
|
+
},
|
|
739
|
+
saveToFileHandle(document, input) {
|
|
740
|
+
return baseSaveToFileHandle(document, input);
|
|
741
|
+
},
|
|
742
|
+
loadFromInput(input) {
|
|
743
|
+
return baseLoadFromInputVersioned(input, {
|
|
744
|
+
reducers: { 1: reducer },
|
|
745
|
+
upgradeManifest: reactorGroupUpgradeManifest
|
|
746
|
+
});
|
|
747
|
+
},
|
|
748
|
+
isStateOfType(state) {
|
|
749
|
+
return isReactorGroupState(state);
|
|
750
|
+
},
|
|
751
|
+
assertIsStateOfType(state) {
|
|
752
|
+
return assertIsReactorGroupState(state);
|
|
753
|
+
},
|
|
754
|
+
isDocumentOfType(document) {
|
|
755
|
+
return isReactorGroupDocument(document);
|
|
756
|
+
},
|
|
757
|
+
assertIsDocumentOfType(document) {
|
|
758
|
+
return assertIsReactorGroupDocument(document);
|
|
759
|
+
}
|
|
760
|
+
};
|
|
761
|
+
var utils_exports = /* @__PURE__ */ __exportAll({});
|
|
762
|
+
//#endregion
|
|
404
763
|
//#region document-models/document-models.ts
|
|
405
764
|
const documentModels = [
|
|
406
765
|
documentModelDocumentModelModule,
|
|
407
766
|
driveDocumentModelModule,
|
|
408
|
-
reactorDriveDocumentModelModule
|
|
767
|
+
reactorDriveDocumentModelModule,
|
|
768
|
+
{
|
|
769
|
+
version: 1,
|
|
770
|
+
reducer,
|
|
771
|
+
actions,
|
|
772
|
+
utils: {
|
|
773
|
+
...utils$1,
|
|
774
|
+
...utils_exports
|
|
775
|
+
},
|
|
776
|
+
documentModel: createState(defaultBaseState(), documentModel)
|
|
777
|
+
}
|
|
409
778
|
];
|
|
410
779
|
//#endregion
|
|
411
780
|
//#region editors/editors.ts
|