@powerhousedao/builder-tools 5.1.0-dev.39 → 5.1.0-dev.40
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/document-model-editor/components/code-editors/graphql-editor.js +1 -1
- package/dist/document-model-editor/components/code-editors/graphql-editor.js.map +1 -1
- package/dist/document-model-editor/components/state-error.d.ts +5 -0
- package/dist/document-model-editor/components/state-error.d.ts.map +1 -0
- package/dist/document-model-editor/components/state-error.js +21 -0
- package/dist/document-model-editor/components/state-error.js.map +1 -0
- package/dist/document-model-editor/components/state-schemas.d.ts.map +1 -1
- package/dist/document-model-editor/components/state-schemas.js +45 -20
- package/dist/document-model-editor/components/state-schemas.js.map +1 -1
- package/dist/document-model-editor/constants/documents.d.ts +1 -0
- package/dist/document-model-editor/constants/documents.d.ts.map +1 -1
- package/dist/document-model-editor/constants/documents.js +2 -1
- package/dist/document-model-editor/constants/documents.js.map +1 -1
- package/dist/document-model-editor/context/schema-context.d.ts +7 -2
- package/dist/document-model-editor/context/schema-context.d.ts.map +1 -1
- package/dist/document-model-editor/context/schema-context.js +35 -23
- package/dist/document-model-editor/context/schema-context.js.map +1 -1
- package/dist/document-model-editor/utils/helpers.d.ts +75 -1
- package/dist/document-model-editor/utils/helpers.d.ts.map +1 -1
- package/dist/document-model-editor/utils/helpers.js +565 -13
- package/dist/document-model-editor/utils/helpers.js.map +1 -1
- package/dist/style.css +6 -0
- package/dist/test/helpers.test.d.ts +2 -0
- package/dist/test/helpers.test.d.ts.map +1 -0
- package/dist/test/helpers.test.js +805 -0
- package/dist/test/helpers.test.js.map +1 -0
- package/dist/test/index.d.ts +2 -0
- package/dist/test/index.d.ts.map +1 -0
- package/dist/test/index.js +2 -0
- package/dist/test/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -6
|
@@ -17,7 +17,7 @@ const GraphqlEditor = memo(function GraphqlEditor(props) {
|
|
|
17
17
|
// GraphQL-specific refs
|
|
18
18
|
const graphqlCompartment = useRef(new Compartment());
|
|
19
19
|
const linterCompartment = useRef(new Compartment());
|
|
20
|
-
const sharedSchema = useSchemaContext();
|
|
20
|
+
const { sharedSchema } = useSchemaContext();
|
|
21
21
|
useEffect(() => {
|
|
22
22
|
if (!viewRef.current) {
|
|
23
23
|
const schema = buildSchema(sharedSchema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-editor.js","sourceRoot":"","sources":["../../../../document-model-editor/components/code-editors/graphql-editor.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAS1C,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,aAAa,CAAC,KAAY;IAC5D,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAC7E,MAAM,EACJ,SAAS,EACT,OAAO,EACP,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,UAAU,GACX,GAAG,aAAa,EAAE,CAAC;IAEpB,wBAAwB;IACxB,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"graphql-editor.js","sourceRoot":"","sources":["../../../../document-model-editor/components/code-editors/graphql-editor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-error.d.ts","sourceRoot":"","sources":["../../../document-model-editor/components/state-error.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,wBAAgB,2BAA2B,CAAC,EAC1C,KAAK,GACN,EAAE;IACD,KAAK,EAAE,oBAAoB,CAAC;CAC7B,2CA2DA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
export function StateValidationErrorMessage({ error, }) {
|
|
3
|
+
const { payload } = error;
|
|
4
|
+
switch (payload.kind) {
|
|
5
|
+
case "MISSING":
|
|
6
|
+
return (_jsxs("span", { children: ["Field ", _jsx("strong", { children: payload.field }), " is missing."] }));
|
|
7
|
+
case "MISSING_OPTIONAL":
|
|
8
|
+
return (_jsxs("span", { children: ["Optional field ", _jsx("strong", { children: payload.field }), " is not defined."] }));
|
|
9
|
+
case "UNKNOWN_FIELD":
|
|
10
|
+
return (_jsxs("span", { children: ["Field ", _jsx("strong", { children: payload.field }), " is not a known field."] }));
|
|
11
|
+
case "NON_NULL":
|
|
12
|
+
return (_jsxs("span", { children: ["Field ", _jsx("strong", { children: payload.field }), " cannot be null."] }));
|
|
13
|
+
case "TYPE":
|
|
14
|
+
return (_jsxs("span", { children: ["Field ", _jsx("strong", { children: payload.field }), payload.expectedType ? (_jsxs(_Fragment, { children: [" ", "must be a", " ", _jsx("strong", { children: payload.expectedType.replace(/!/g, "") }), "."] })) : (_jsx(_Fragment, { children: " has an invalid value." }))] }));
|
|
15
|
+
case "RECURSIVE_TYPE":
|
|
16
|
+
return (_jsxs("span", { children: ["Field ", _jsx("strong", { children: payload.typeName }), " has a recursive type. It must be optional."] }));
|
|
17
|
+
default:
|
|
18
|
+
return _jsx("span", { children: "Invalid value." });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=state-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-error.js","sourceRoot":"","sources":["../../../document-model-editor/components/state-error.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,2BAA2B,CAAC,EAC1C,KAAK,GAGN;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE1B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,CACL,qCACQ,2BAAS,OAAO,CAAC,KAAK,GAAU,oBACjC,CACR,CAAC;QAEJ,KAAK,kBAAkB;YACrB,OAAO,CACL,8CACiB,2BAAS,OAAO,CAAC,KAAK,GAAU,wBAC1C,CACR,CAAC;QAEJ,KAAK,eAAe;YAClB,OAAO,CACL,qCACQ,2BAAS,OAAO,CAAC,KAAK,GAAU,8BACjC,CACR,CAAC;QAEJ,KAAK,UAAU;YACb,OAAO,CACL,qCACQ,2BAAS,OAAO,CAAC,KAAK,GAAU,wBACjC,CACR,CAAC;QAEJ,KAAK,MAAM;YACT,OAAO,CACL,qCACQ,2BAAS,OAAO,CAAC,KAAK,GAAU,EACrC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CACtB,8BACG,GAAG,eACM,GAAG,EACb,2BAAS,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAU,SACxD,CACJ,CAAC,CAAC,CAAC,CACF,uDAA2B,CAC5B,IACI,CACR,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO,CACL,qCACQ,2BAAS,OAAO,CAAC,QAAQ,GAAU,mDAEpC,CACR,CAAC;QAEJ;YACE,OAAO,4CAA2B,CAAC;IACvC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-schemas.d.ts","sourceRoot":"","sources":["../../../document-model-editor/components/state-schemas.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state-schemas.d.ts","sourceRoot":"","sources":["../../../document-model-editor/components/state-schemas.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAcnD,KAAK,KAAK,GAAG;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACpD,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACrD,YAAY,EAAE,KAAK,CAAC;IACpB,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACvC,CAAC;AA+LF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,aAAa,GACd,EAAE,KAAK,2CAmDP"}
|
|
@@ -1,49 +1,74 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from "@powerhousedao/design-system";
|
|
3
|
+
import { Checkbox } from "@powerhousedao/design-system/ui/components/checkbox/checkbox.js";
|
|
3
4
|
import { Kind } from "graphql";
|
|
4
|
-
import { lazy, Suspense, useCallback, useMemo, useState } from "react";
|
|
5
|
+
import { lazy, Suspense, useCallback, useEffect, useMemo, useRef, useState, } from "react";
|
|
5
6
|
import { typeDefsDoc } from "../constants/documents.js";
|
|
6
7
|
import { safeParseSdl, useSchemaContext } from "../context/schema-context.js";
|
|
7
|
-
import { makeInitialSchemaDoc, makeMinimalObjectForStateType, makeStateSchemaNameForScope, } from "../utils/helpers.js";
|
|
8
|
+
import { makeInitialSchemaDoc, makeMinimalObjectForStateType, makeStateSchemaNameForScope, StateValidationError, validateStateObject, } from "../utils/helpers.js";
|
|
8
9
|
import { ensureValidStateSchemaName } from "../utils/linting.js";
|
|
9
10
|
import { Button } from "./button.js";
|
|
11
|
+
import { StateValidationErrorMessage } from "./state-error.js";
|
|
10
12
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "./tabs.js";
|
|
11
13
|
const GraphqlEditor = lazy(() => import("./code-editors/graphql-editor.js"));
|
|
12
14
|
const JSONEditor = lazy(() => import("./code-editors/json-editor.js"));
|
|
13
15
|
function StateEditor({ modelName, stateSchema, initialValue, setStateSchema, setInitialState, scope, }) {
|
|
14
|
-
const sharedSchemaSdl = useSchemaContext();
|
|
16
|
+
const { sharedSchema: sharedSchemaSdl, error: sharedSchemaError } = useSchemaContext();
|
|
15
17
|
const [showStandardLib, setShowStandardLib] = useState(false);
|
|
18
|
+
const [syncWithSchema, setSyncWithSchema] = useState(true);
|
|
16
19
|
const customLinter = useCallback((doc) => ensureValidStateSchemaName(doc, modelName, scope), [modelName, scope]);
|
|
17
|
-
const schemaErrors = useMemo(() =>
|
|
20
|
+
const schemaErrors = useMemo(() => {
|
|
21
|
+
const errors = ensureValidStateSchemaName(stateSchema, modelName, scope);
|
|
22
|
+
if (sharedSchemaError) {
|
|
23
|
+
return [...errors, sharedSchemaError];
|
|
24
|
+
}
|
|
25
|
+
return errors;
|
|
26
|
+
}, [stateSchema, modelName, scope, sharedSchemaError]);
|
|
18
27
|
const handleToggleStandardLib = useCallback(() => {
|
|
19
28
|
setShowStandardLib((prev) => !prev);
|
|
20
29
|
}, []);
|
|
21
30
|
const handleSchemaUpdate = useCallback((newDoc) => setStateSchema(newDoc, scope), [setStateSchema, scope]);
|
|
22
31
|
const handleInitialStateUpdate = useCallback((newDoc) => setInitialState(newDoc, scope), [setInitialState, scope]);
|
|
23
|
-
|
|
32
|
+
// Track if we've already synced to prevent double-calls in StrictMode
|
|
33
|
+
const hasSyncedRef = useRef(false);
|
|
34
|
+
const { initialValueErrors, fixedState } = useMemo(() => {
|
|
24
35
|
const existingValue = initialValue || "{}";
|
|
25
36
|
const sharedSchemaDocumentNode = safeParseSdl(sharedSchemaSdl);
|
|
26
37
|
if (!sharedSchemaDocumentNode)
|
|
27
|
-
return;
|
|
28
|
-
const stateEditorDocumentNode = safeParseSdl(stateSchema);
|
|
29
|
-
if (!stateEditorDocumentNode)
|
|
30
|
-
return;
|
|
38
|
+
return { initialValueErrors: [], fixedState: null };
|
|
31
39
|
const stateTypeName = makeStateSchemaNameForScope(modelName, scope);
|
|
32
40
|
if (!stateTypeName)
|
|
33
|
-
return;
|
|
34
|
-
const stateTypeDefinitionNode =
|
|
41
|
+
return { initialValueErrors: [], fixedState: null };
|
|
42
|
+
const stateTypeDefinitionNode = sharedSchemaDocumentNode.definitions.find((def) => def.kind === Kind.OBJECT_TYPE_DEFINITION &&
|
|
35
43
|
def.name.value === stateTypeName);
|
|
36
44
|
if (!stateTypeDefinitionNode ||
|
|
37
45
|
stateTypeDefinitionNode.kind !== Kind.OBJECT_TYPE_DEFINITION)
|
|
38
|
-
return;
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
return { initialValueErrors: [], fixedState: null };
|
|
47
|
+
const errors = validateStateObject(sharedSchemaDocumentNode, stateTypeDefinitionNode, existingValue);
|
|
48
|
+
if (errors.length && syncWithSchema) {
|
|
49
|
+
const computedFixedState = makeMinimalObjectForStateType({
|
|
50
|
+
sharedSchemaDocumentNode,
|
|
51
|
+
stateTypeDefinitionNode,
|
|
52
|
+
existingValue,
|
|
53
|
+
});
|
|
54
|
+
if (initialValue !== computedFixedState) {
|
|
55
|
+
return { initialValueErrors: [], fixedState: computedFixedState };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return { initialValueErrors: errors, fixedState: null };
|
|
59
|
+
}, [sharedSchemaSdl, initialValue, syncWithSchema, scope, modelName]);
|
|
60
|
+
// Handle the side effect of syncing initial state separately
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (fixedState && !hasSyncedRef.current) {
|
|
63
|
+
hasSyncedRef.current = true;
|
|
64
|
+
setInitialState(fixedState, scope);
|
|
65
|
+
}
|
|
66
|
+
else if (!fixedState) {
|
|
67
|
+
// Reset the ref when there's no fix needed
|
|
68
|
+
hasSyncedRef.current = false;
|
|
69
|
+
}
|
|
70
|
+
}, [fixedState, setInitialState, scope]);
|
|
71
|
+
return (_jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { children: [_jsxs("h3", { className: "mb-2 text-lg capitalize", children: [scope, " state schema *"] }), _jsxs(Button, { onClick: handleToggleStandardLib, className: "mb-2 flex w-fit items-center gap-2", children: [showStandardLib ? "Hide" : "Show", " standard library", _jsx("svg", { className: cn("inline-block transition-transform", showStandardLib ? "rotate-180" : "rotate-0"), xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: _jsx("path", { d: "M11.9883 6.01172C11.4363 6.01172 10.9883 6.45972 10.9883 7.01172V13.0117H6.98828L11.9883 18.0117L16.9883 13.0117H12.9883V7.01172C12.9883 6.45972 12.5403 6.01172 11.9883 6.01172Z", fill: "black" }) })] }), _jsxs(Suspense, { children: [showStandardLib && _jsx(GraphqlEditor, { doc: typeDefsDoc, readonly: true }), _jsx(GraphqlEditor, { doc: stateSchema, updateDocumentInModel: handleSchemaUpdate, customLinter: customLinter }), schemaErrors.length > 0 && (_jsx("p", { className: "mt-2 text-sm text-red-600", children: schemaErrors[0].message }))] })] }), _jsxs("div", { children: [_jsxs("div", { className: "flex flex-col items-end", children: [_jsxs("h3", { className: "mb-2 text-right text-lg capitalize", children: [scope, " state initial value *"] }), _jsx(Checkbox, { value: syncWithSchema, onChange: setSyncWithSchema, className: "mb-2 w-fit whitespace-nowrap rounded-md border border-gray-200 bg-gray-50 pl-2 text-sm font-medium text-gray-800 transition-colors hover:bg-gray-100 hover:text-gray-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2", label: _jsxs("div", { className: "flex items-center gap-2 py-2 pr-2", children: ["Sync with schema", " ", _jsx("svg", { className: "inline-block", xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", children: _jsx("path", { d: "M8.00521 1.99219C6.63588 1.99219 5.32788 2.45152 4.27588 3.28419C3.98721 3.51219 3.94321 3.93285 4.17188 4.22151C4.40054 4.51018 4.82055 4.55418 5.10921 4.32552C5.92721 3.67819 6.93921 3.32552 8.00521 3.32552C10.5825 3.32552 12.6719 5.41485 12.6719 7.99218H11.3385L13.3385 10.6588L15.3385 7.99218H14.0052C14.0052 4.67818 11.3192 1.99219 8.00521 1.99219ZM2.67188 5.32552L0.671875 7.99218H2.00521C2.00521 11.3062 4.69121 13.9922 8.00521 13.9922C9.37521 13.9922 10.6825 13.5335 11.7345 12.7002C12.0232 12.4722 12.0672 12.0515 11.8385 11.7628C11.6099 11.4742 11.1899 11.4302 10.9012 11.6588C10.0825 12.3068 9.07188 12.6588 8.00521 12.6588C5.42788 12.6588 3.33854 10.5695 3.33854 7.99218H4.67188L2.67188 5.32552Z", fill: "#343839" }) })] }) })] }), _jsxs(Suspense, { children: [_jsx(JSONEditor, { doc: initialValue, updateDocumentInModel: handleInitialStateUpdate }), initialValueErrors.map((error, index) => (_jsx("p", { className: "mt-2 text-sm text-red-600", children: error instanceof StateValidationError ? (_jsx(StateValidationErrorMessage, { error: error })) : (error.message) }, index)))] })] })] }));
|
|
47
72
|
}
|
|
48
73
|
export default function StateSchemas({ modelName, globalStateSchema, localStateSchema, globalStateInitialValue, localStateInitialValue, setStateSchema, setInitialState, currentScope, onScopeChange, }) {
|
|
49
74
|
const handleAddLocalState = useCallback(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-schemas.js","sourceRoot":"","sources":["../../../document-model-editor/components/state-schemas.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"state-schemas.js","sourceRoot":"","sources":["../../../document-model-editor/components/state-schemas.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ export declare const hiddenQueryTypeDefDoc = "type Query {\n _hidden: String\n}
|
|
|
2
2
|
export declare const typeDefsDoc: string;
|
|
3
3
|
export declare const initialSchemaDoc: string;
|
|
4
4
|
export declare const initialSchema: import("graphql").GraphQLSchema;
|
|
5
|
+
export declare const initialSchemaStr: string;
|
|
5
6
|
export declare const specialDocIds: {
|
|
6
7
|
readonly hiddenQueryTypeDef: "hidden-query-type-defs";
|
|
7
8
|
readonly standardLib: "standard-lib";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../document-model-editor/constants/documents.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,yCAGjC,CAAC;AAEF,eAAO,MAAM,WAAW,QAAsB,CAAC;AAE/C,eAAO,MAAM,gBAAgB,QAA6C,CAAC;AAE3E,eAAO,MAAM,aAAa,iCAAgC,CAAC;AAE3D,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../document-model-editor/constants/documents.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,yCAGjC,CAAC;AAEF,eAAO,MAAM,WAAW,QAAsB,CAAC;AAE/C,eAAO,MAAM,gBAAgB,QAA6C,CAAC;AAE3E,eAAO,MAAM,aAAa,iCAAgC,CAAC;AAC3D,eAAO,MAAM,gBAAgB,QAA6B,CAAC;AAE3D,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa,OAAO,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { typeDefs } from "@powerhousedao/document-engineering/graphql";
|
|
2
|
-
import { buildSchema } from "graphql";
|
|
2
|
+
import { buildSchema, printSchema } from "graphql";
|
|
3
3
|
export const hiddenQueryTypeDefDoc = `type Query {
|
|
4
4
|
_hidden: String
|
|
5
5
|
}
|
|
@@ -7,6 +7,7 @@ export const hiddenQueryTypeDefDoc = `type Query {
|
|
|
7
7
|
export const typeDefsDoc = typeDefs.join("\n");
|
|
8
8
|
export const initialSchemaDoc = `${hiddenQueryTypeDefDoc}\n${typeDefsDoc}`;
|
|
9
9
|
export const initialSchema = buildSchema(initialSchemaDoc);
|
|
10
|
+
export const initialSchemaStr = printSchema(initialSchema);
|
|
10
11
|
export const specialDocIds = {
|
|
11
12
|
hiddenQueryTypeDef: "hidden-query-type-defs",
|
|
12
13
|
standardLib: "standard-lib",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../document-model-editor/constants/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../document-model-editor/constants/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;CAGpC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,qBAAqB,KAAK,WAAW,EAAE,CAAC;AAE3E,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,kBAAkB,EAAE,wBAAwB;IAC5C,WAAW,EAAE,cAAc;IAC3B,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { DocumentNode } from "graphql";
|
|
2
|
+
type TSchemaContext = {
|
|
3
|
+
sharedSchema: string;
|
|
4
|
+
error: Error | undefined;
|
|
5
|
+
};
|
|
2
6
|
type TSchemaContextProps = {
|
|
3
7
|
globalStateSchemaSdl: string;
|
|
4
8
|
localStateSchemaSdl: string;
|
|
@@ -6,8 +10,9 @@ type TSchemaContextProps = {
|
|
|
6
10
|
children: React.ReactNode;
|
|
7
11
|
};
|
|
8
12
|
export declare function safeParseSdl(sdl: string): DocumentNode | null;
|
|
9
|
-
export declare const SchemaContext: import("react").Context<
|
|
13
|
+
export declare const SchemaContext: import("react").Context<TSchemaContext>;
|
|
14
|
+
export declare function parseSharedSchemaSdl(initialSchema: string, globalStateSchemaSdl?: string, localStateSchemaSdl?: string, operationSchemasSdl?: string): TSchemaContext;
|
|
10
15
|
export declare function SchemaContextProvider(props: TSchemaContextProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
export declare function useSchemaContext():
|
|
16
|
+
export declare function useSchemaContext(): TSchemaContext;
|
|
12
17
|
export {};
|
|
13
18
|
//# sourceMappingURL=schema-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-context.d.ts","sourceRoot":"","sources":["../../../document-model-editor/context/schema-context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,YAAY,EAAiB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-context.d.ts","sourceRoot":"","sources":["../../../document-model-editor/context/schema-context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,YAAY,EAAiB,MAAM,SAAS,CAAC;AAkC3E,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AA2EF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,uBAOvC;AAED,eAAO,MAAM,aAAa,yCAGxB,CAAC;AAEH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,EACrB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,mBAAmB,CAAC,EAAE,MAAM,EAC5B,mBAAmB,CAAC,EAAE,MAAM,GAC3B,cAAc,CAuBhB;AAMD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,2CAiC/D;AAED,wBAAgB,gBAAgB,mBAE/B"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { createDefaultRules } from "@graphql-tools/utils";
|
|
3
3
|
import { buildASTSchema, buildSchema, Kind, parse, printSchema, validate, } from "graphql";
|
|
4
4
|
import { createContext, useContext, useEffect, useState } from "react";
|
|
5
|
-
import { hiddenQueryTypeDefDoc, initialSchema, typeDefsDoc, } from "../constants/documents.js";
|
|
5
|
+
import { hiddenQueryTypeDefDoc, initialSchema, initialSchemaStr, typeDefsDoc, } from "../constants/documents.js";
|
|
6
6
|
/* Required to make the schema "count" as an actual schema */
|
|
7
7
|
const hiddenQueryTypeDefinitions = safeParseSdl(hiddenQueryTypeDefDoc)?.definitions ?? [];
|
|
8
8
|
/* Scalar definitions from the Powerhouse standard library */
|
|
@@ -16,27 +16,20 @@ const alwaysIncludedDefinitions = [
|
|
|
16
16
|
const rules = createDefaultRules().filter((rule) => rule.name !== "ExecutableDefinitionsRule");
|
|
17
17
|
/*
|
|
18
18
|
Makes one SDL string from all of the definitions in the state and operation schemas
|
|
19
|
-
Uses try catch to prevent errors from breaking the editor
|
|
20
19
|
*/
|
|
21
20
|
function makeSharedSchemaSdl(existingSchemaSdl, globalStateSchemaSdl, localStateSchemaSdl, operationSchemasSdl) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return schemaSdl;
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
console.debug("in make shared schema", error);
|
|
38
|
-
return existingSchemaSdl;
|
|
39
|
-
}
|
|
21
|
+
const existingSchema = buildSchema(existingSchemaSdl);
|
|
22
|
+
const sdls = [
|
|
23
|
+
globalStateSchemaSdl,
|
|
24
|
+
localStateSchemaSdl,
|
|
25
|
+
operationSchemasSdl,
|
|
26
|
+
].filter(Boolean);
|
|
27
|
+
const asts = sdls
|
|
28
|
+
.map((sdl) => (sdl ? safeParseSdl(sdl) : null))
|
|
29
|
+
.filter((ast) => ast !== null);
|
|
30
|
+
const documentNode = makeSafeDocumentNode(existingSchema, asts);
|
|
31
|
+
const schemaSdl = printSchema(buildASTSchema(documentNode));
|
|
32
|
+
return schemaSdl;
|
|
40
33
|
}
|
|
41
34
|
/*
|
|
42
35
|
Combines all of the definitions in the state and operation schemas into one document node
|
|
@@ -98,16 +91,35 @@ export function safeParseSdl(sdl) {
|
|
|
98
91
|
return null;
|
|
99
92
|
}
|
|
100
93
|
}
|
|
101
|
-
export const SchemaContext = createContext(
|
|
94
|
+
export const SchemaContext = createContext({
|
|
95
|
+
sharedSchema: initialSchemaStr,
|
|
96
|
+
error: undefined,
|
|
97
|
+
});
|
|
98
|
+
export function parseSharedSchemaSdl(initialSchema, globalStateSchemaSdl, localStateSchemaSdl, operationSchemasSdl) {
|
|
99
|
+
try {
|
|
100
|
+
return {
|
|
101
|
+
sharedSchema: makeSharedSchemaSdl(initialSchema, globalStateSchemaSdl, localStateSchemaSdl, operationSchemasSdl),
|
|
102
|
+
error: undefined,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
return {
|
|
107
|
+
sharedSchema: initialSchema,
|
|
108
|
+
error: error instanceof Error
|
|
109
|
+
? error
|
|
110
|
+
: new Error(typeof error === "string" ? error : JSON.stringify(error), { cause: error }),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
102
114
|
/*
|
|
103
115
|
Provides the shared schema to the editor
|
|
104
116
|
We use the sdl string form to make memoization easier
|
|
105
117
|
*/
|
|
106
118
|
export function SchemaContextProvider(props) {
|
|
107
119
|
const { children, globalStateSchemaSdl, localStateSchemaSdl, operationSchemasSdl, } = props;
|
|
108
|
-
const [sharedSchemaSdl, setSharedSchemaSdl] = useState(() =>
|
|
120
|
+
const [sharedSchemaSdl, setSharedSchemaSdl] = useState(() => parseSharedSchemaSdl(printSchema(initialSchema), globalStateSchemaSdl, localStateSchemaSdl, operationSchemasSdl));
|
|
109
121
|
useEffect(() => {
|
|
110
|
-
setSharedSchemaSdl((prev) =>
|
|
122
|
+
setSharedSchemaSdl((prev) => parseSharedSchemaSdl(prev.sharedSchema, globalStateSchemaSdl, localStateSchemaSdl, operationSchemasSdl));
|
|
111
123
|
}, [globalStateSchemaSdl, localStateSchemaSdl, operationSchemasSdl]);
|
|
112
124
|
return (_jsx(SchemaContext.Provider, { value: sharedSchemaSdl, children: children }));
|
|
113
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-context.js","sourceRoot":"","sources":["../../../document-model-editor/context/schema-context.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,cAAc,EACd,WAAW,EACX,IAAI,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,WAAW,GACZ,MAAM,2BAA2B,CAAC;AAEnC,6DAA6D;AAC7D,MAAM,0BAA0B,GAC9B,YAAY,CAAC,qBAAqB,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC;AACzD,6DAA6D;AAC7D,MAAM,kCAAkC,GACtC,YAAY,CAAC,WAAW,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC;AAC/C,2FAA2F;AAC3F,MAAM,yBAAyB,GAAG;IAChC,GAAG,0BAA0B;IAC7B,GAAG,kCAAkC;CACtC,CAAC;AACF,gJAAgJ;AAChJ,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC,MAAM,CACvC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,2BAA2B,CACpD,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-context.js","sourceRoot":"","sources":["../../../document-model-editor/context/schema-context.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Serializable } from "@powerhousedao/document-engineering/graphql";
|
|
2
|
-
import type { ASTNode, DocumentNode, FieldDefinitionNode, NamedTypeNode, ObjectTypeDefinitionNode } from "graphql";
|
|
2
|
+
import type { ASTNode, DocumentNode, FieldDefinitionNode, GraphQLObjectType, GraphQLSchema, NamedTypeNode, ObjectTypeDefinitionNode, TypeNode } from "graphql";
|
|
3
|
+
import { GraphQLInputObjectType } from "graphql";
|
|
3
4
|
import type { Scope } from "../types/documents.js";
|
|
4
5
|
export declare function makeStateSchemaNameForScope(modelName: string, scope: string): string;
|
|
5
6
|
export declare function makeInitialSchemaDoc(modelName: string, scope: string): string;
|
|
@@ -16,6 +17,7 @@ export declare function makeMinimalValuesForObjectFields(args: {
|
|
|
16
17
|
schemaDocumentNode: DocumentNode;
|
|
17
18
|
existingValueObject: Record<string, Serializable> | null;
|
|
18
19
|
fieldDefinitionNodes: readonly FieldDefinitionNode[];
|
|
20
|
+
visitedTypes?: Set<string>;
|
|
19
21
|
}): Record<string, Serializable>;
|
|
20
22
|
export declare function isGqlPrimitiveNode(astNodeTypeNode: ASTNode | null): astNodeTypeNode is NamedTypeNode;
|
|
21
23
|
export declare function compareStringsWithoutWhitespace(str1: string | null | undefined, str2: string | null | undefined): boolean;
|
|
@@ -35,4 +37,76 @@ export declare function handleModelNameChange(params: {
|
|
|
35
37
|
localStateSchema: string;
|
|
36
38
|
setStateSchema: (schema: string, scope: Scope) => void;
|
|
37
39
|
}): void;
|
|
40
|
+
/**
|
|
41
|
+
* Converts an output object type into an equivalent input object type.
|
|
42
|
+
* Intended for structural validation of state objects.
|
|
43
|
+
*/
|
|
44
|
+
export declare function objectTypeToInputType(schema: GraphQLSchema, objectType: GraphQLObjectType, options?: {
|
|
45
|
+
nameSuffix?: string;
|
|
46
|
+
cache?: Map<string, GraphQLInputObjectType>;
|
|
47
|
+
}): GraphQLInputObjectType;
|
|
48
|
+
export declare function validateStateObject(sharedSchemaDocumentNode: DocumentNode, stateTypeDefinitionNode: ObjectTypeDefinitionNode, stateValue: string): Error[];
|
|
49
|
+
export type StateValidationErrorKind = "MISSING" | "MISSING_OPTIONAL" | "UNKNOWN_FIELD" | "NON_NULL" | "TYPE" | "RECURSIVE_TYPE";
|
|
50
|
+
export type StateValidationErrorPayload = {
|
|
51
|
+
kind: "MISSING";
|
|
52
|
+
path: (string | number)[];
|
|
53
|
+
field: string;
|
|
54
|
+
expectedType?: string;
|
|
55
|
+
} | {
|
|
56
|
+
kind: "MISSING_OPTIONAL";
|
|
57
|
+
path: (string | number)[];
|
|
58
|
+
field: string;
|
|
59
|
+
expectedType?: string;
|
|
60
|
+
} | {
|
|
61
|
+
kind: "UNKNOWN_FIELD";
|
|
62
|
+
path: (string | number)[];
|
|
63
|
+
field: string;
|
|
64
|
+
didYouMean?: string;
|
|
65
|
+
typeName?: string;
|
|
66
|
+
} | {
|
|
67
|
+
kind: "NON_NULL";
|
|
68
|
+
path: (string | number)[];
|
|
69
|
+
field: string;
|
|
70
|
+
expectedType?: string;
|
|
71
|
+
} | {
|
|
72
|
+
kind: "TYPE";
|
|
73
|
+
path: (string | number)[];
|
|
74
|
+
field: string;
|
|
75
|
+
expectedType?: string;
|
|
76
|
+
details?: string;
|
|
77
|
+
} | {
|
|
78
|
+
kind: "RECURSIVE_TYPE";
|
|
79
|
+
path: (string | number)[];
|
|
80
|
+
field: string;
|
|
81
|
+
typeName: string;
|
|
82
|
+
};
|
|
83
|
+
export declare class StateValidationError extends Error {
|
|
84
|
+
readonly payload: StateValidationErrorPayload;
|
|
85
|
+
readonly originalMessage?: string;
|
|
86
|
+
constructor(payload: StateValidationErrorPayload, originalMessage?: string);
|
|
87
|
+
get kind(): StateValidationErrorKind;
|
|
88
|
+
get path(): (string | number)[];
|
|
89
|
+
get field(): string;
|
|
90
|
+
}
|
|
91
|
+
export declare function graphQLErrorsToStateValidationErrors(errors: readonly Error[]): StateValidationError[];
|
|
92
|
+
/**
|
|
93
|
+
* Information about a missing field in the state object.
|
|
94
|
+
*/
|
|
95
|
+
export type MissingFieldInfo = {
|
|
96
|
+
fieldName: string;
|
|
97
|
+
path: (string | number)[];
|
|
98
|
+
isRequired: boolean;
|
|
99
|
+
/** The underlying type (unwrapped from NonNull if applicable) */
|
|
100
|
+
type: TypeNode;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Finds all fields defined in the schema that are missing from the state object.
|
|
104
|
+
* Returns information about each missing field including whether it's required.
|
|
105
|
+
*/
|
|
106
|
+
export declare function findMissingFields(sharedSchemaDocumentNode: DocumentNode, rootTypeNode: ObjectTypeDefinitionNode, value: string | Record<string, unknown>, basePath?: (string | number)[]): MissingFieldInfo[];
|
|
107
|
+
/**
|
|
108
|
+
* Detects optional fields defined in the schema that are missing from the state object.
|
|
109
|
+
* Returns StateValidationError[] for each missing optional field.
|
|
110
|
+
*/
|
|
111
|
+
export declare function detectMissingOptionalFields(sharedSchemaDocumentNode: DocumentNode, rootTypeNode: ObjectTypeDefinitionNode, value: string | Record<string, unknown>): StateValidationError[];
|
|
38
112
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../document-model-editor/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAGhF,OAAO,KAAK,EACV,OAAO,EAEP,YAAY,EAEZ,mBAAmB,EAEnB,aAAa,EAEb,wBAAwB,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../document-model-editor/utils/helpers.ts"],"names":[],"mappings":"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"}
|