@graview/studio 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +96 -0
- package/README.md +31 -2
- package/dist/agent-panel.d.ts +11 -0
- package/dist/agent-panel.d.ts.map +1 -0
- package/dist/agent-panel.js +334 -0
- package/dist/agent-panel.js.map +1 -0
- package/dist/agent.d.ts +24 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +371 -0
- package/dist/agent.js.map +1 -0
- package/dist/changes.d.ts +49 -0
- package/dist/changes.d.ts.map +1 -0
- package/dist/changes.js +217 -0
- package/dist/changes.js.map +1 -0
- package/dist/from-declaration.d.ts +13 -0
- package/dist/from-declaration.d.ts.map +1 -0
- package/dist/from-declaration.js +204 -0
- package/dist/from-declaration.js.map +1 -0
- package/dist/in-place.d.ts +27 -0
- package/dist/in-place.d.ts.map +1 -0
- package/dist/in-place.js +151 -0
- package/dist/in-place.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/lens.d.ts +9 -0
- package/dist/lens.d.ts.map +1 -0
- package/dist/lens.js +40 -0
- package/dist/lens.js.map +1 -0
- package/dist/meta.d.ts +2648 -0
- package/dist/meta.d.ts.map +1 -0
- package/dist/meta.js +553 -0
- package/dist/meta.js.map +1 -0
- package/dist/migration.d.ts +15 -0
- package/dist/migration.d.ts.map +1 -0
- package/dist/migration.js +82 -0
- package/dist/migration.js.map +1 -0
- package/dist/place.d.ts +61 -0
- package/dist/place.d.ts.map +1 -0
- package/dist/place.js +328 -0
- package/dist/place.js.map +1 -0
- package/dist/rewrite.d.ts +28 -0
- package/dist/rewrite.d.ts.map +1 -0
- package/dist/rewrite.js +52 -0
- package/dist/rewrite.js.map +1 -0
- package/dist/source.d.ts +69 -0
- package/dist/source.d.ts.map +1 -0
- package/dist/source.js +465 -0
- package/dist/source.js.map +1 -0
- package/dist/studio.d.ts +64 -0
- package/dist/studio.d.ts.map +1 -0
- package/dist/studio.js +96 -0
- package/dist/studio.js.map +1 -0
- package/dist/to-declaration.d.ts +24 -0
- package/dist/to-declaration.d.ts.map +1 -0
- package/dist/to-declaration.js +439 -0
- package/dist/to-declaration.js.map +1 -0
- package/dist/write-in-place.d.ts +27 -0
- package/dist/write-in-place.d.ts.map +1 -0
- package/dist/write-in-place.js +61 -0
- package/dist/write-in-place.js.map +1 -0
- package/dist/zod-source.d.ts +7 -0
- package/dist/zod-source.d.ts.map +1 -0
- package/dist/zod-source.js +124 -0
- package/dist/zod-source.js.map +1 -0
- package/package.json +58 -3
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type DeclarationChange, type StudioDoorDiagnostic, type StudioDoorSource, type StudioDoorStatus } from "@graview/core";
|
|
2
|
+
/**
|
|
3
|
+
* APPLY, INTO THE CHECKOUT — when there is a checkout to write into.
|
|
4
|
+
*
|
|
5
|
+
* A running `pnpm dev` with the studio door has one; a deployed app does
|
|
6
|
+
* not, and the studio says so and hands over the files instead. What is
|
|
7
|
+
* sent is the CHANGE the person made, never files: the dev server makes it
|
|
8
|
+
* inside the checkout's own declarations, so what was written by hand is
|
|
9
|
+
* still there afterwards.
|
|
10
|
+
*/
|
|
11
|
+
/** Whether this app's dev server has the studio door open. `null` until it has answered, and for no door at all. */
|
|
12
|
+
export declare function useStudioDoor(path?: string): Extract<StudioDoorStatus, {
|
|
13
|
+
available: true;
|
|
14
|
+
}> | null;
|
|
15
|
+
/** The checkout's own acts and rules, as they are written. */
|
|
16
|
+
export declare function readCode(path?: string): Promise<StudioDoorSource>;
|
|
17
|
+
export type InPlace = {
|
|
18
|
+
readonly state: "written";
|
|
19
|
+
readonly paths: readonly string[];
|
|
20
|
+
} | {
|
|
21
|
+
readonly state: "not-written";
|
|
22
|
+
readonly reasons: readonly string[];
|
|
23
|
+
readonly diagnostics?: readonly StudioDoorDiagnostic[];
|
|
24
|
+
};
|
|
25
|
+
/** The changes, made in the checkout — or every reason, in the door's and the compiler's words, that they were not. */
|
|
26
|
+
export declare function writeChanges(changes: readonly DeclarationChange[], path?: string): Promise<InPlace>;
|
|
27
|
+
//# sourceMappingURL=write-in-place.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-in-place.d.ts","sourceRoot":"","sources":["../src/write-in-place.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAGvB;;;;;;;;GAQG;AAEH,oHAAoH;AACpH,wBAAgB,aAAa,CAAC,IAAI,GAAE,MAAyB,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,CAAC,GAAG,IAAI,CAiBpH;AAED,8DAA8D;AAC9D,wBAAsB,QAAQ,CAAC,IAAI,GAAE,MAAyB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAIzF;AAED,MAAM,MAAM,OAAO,GACf;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAChE;IAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAA;CAAE,CAAC;AAEnI,uHAAuH;AACvH,wBAAsB,YAAY,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,EAAE,IAAI,GAAE,MAAyB,GAAG,OAAO,CAAC,OAAO,CAAC,CAe3H"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { STUDIO_DOOR_PATH, } from "@graview/core";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* APPLY, INTO THE CHECKOUT — when there is a checkout to write into.
|
|
5
|
+
*
|
|
6
|
+
* A running `pnpm dev` with the studio door has one; a deployed app does
|
|
7
|
+
* not, and the studio says so and hands over the files instead. What is
|
|
8
|
+
* sent is the CHANGE the person made, never files: the dev server makes it
|
|
9
|
+
* inside the checkout's own declarations, so what was written by hand is
|
|
10
|
+
* still there afterwards.
|
|
11
|
+
*/
|
|
12
|
+
/** Whether this app's dev server has the studio door open. `null` until it has answered, and for no door at all. */
|
|
13
|
+
export function useStudioDoor(path = STUDIO_DOOR_PATH) {
|
|
14
|
+
const [door, setDoor] = useState(null);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (typeof fetch !== "function")
|
|
17
|
+
return;
|
|
18
|
+
let live = true;
|
|
19
|
+
fetch(path)
|
|
20
|
+
.then(async (response) => (response.ok ? (await response.json()) : null))
|
|
21
|
+
.then((status) => {
|
|
22
|
+
if (live && status?.available)
|
|
23
|
+
setDoor(status);
|
|
24
|
+
})
|
|
25
|
+
// A static host 404s or answers HTML: no door, and nothing to say about it.
|
|
26
|
+
.catch(() => undefined);
|
|
27
|
+
return () => {
|
|
28
|
+
live = false;
|
|
29
|
+
};
|
|
30
|
+
}, [path]);
|
|
31
|
+
return door;
|
|
32
|
+
}
|
|
33
|
+
/** The checkout's own acts and rules, as they are written. */
|
|
34
|
+
export async function readCode(path = STUDIO_DOOR_PATH) {
|
|
35
|
+
const response = await fetch(`${path}/source`);
|
|
36
|
+
if (!response.ok)
|
|
37
|
+
throw new Error(`The studio door answered ${response.status}.`);
|
|
38
|
+
return (await response.json());
|
|
39
|
+
}
|
|
40
|
+
/** The changes, made in the checkout — or every reason, in the door's and the compiler's words, that they were not. */
|
|
41
|
+
export async function writeChanges(changes, path = STUDIO_DOOR_PATH) {
|
|
42
|
+
if (changes.length === 0)
|
|
43
|
+
return { state: "not-written", reasons: ["Nothing has changed since the studio opened."] };
|
|
44
|
+
try {
|
|
45
|
+
const response = await fetch(path, {
|
|
46
|
+
method: "POST",
|
|
47
|
+
headers: { "content-type": "application/json" },
|
|
48
|
+
body: JSON.stringify({ changes }),
|
|
49
|
+
});
|
|
50
|
+
const answer = (await response.json());
|
|
51
|
+
if ("written" in answer)
|
|
52
|
+
return { state: "written", paths: answer.written };
|
|
53
|
+
if ("refused" in answer)
|
|
54
|
+
return { state: "not-written", reasons: answer.refused, ...(answer.diagnostics ? { diagnostics: answer.diagnostics } : {}) };
|
|
55
|
+
return { state: "not-written", reasons: [answer.error] };
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
return { state: "not-written", reasons: [`The dev server did not answer: ${error instanceof Error ? error.message : String(error)}`] };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=write-in-place.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-in-place.js","sourceRoot":"","sources":["../src/write-in-place.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-source.d.ts","sourceRoot":"","sources":["../src/zod-source.ts"],"names":[],"mappings":"AAiEA,uDAAuD;AACvD,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,OAA4C,GAAG,MAAM,GAAG,IAAI,CAoFzG"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { isoDate, nodeRefKinds } from "@graview/core";
|
|
2
|
+
/**
|
|
3
|
+
* THE REFUSAL IN THE CHECKOUT'S WORDS. `.regex(/…/, "a 17-character VIN")`
|
|
4
|
+
* came back as `.regex(/…/)`: the message is what a person reads when the
|
|
5
|
+
* form refuses them, and without it they read "Invalid string".
|
|
6
|
+
*/
|
|
7
|
+
const saying = (check) => {
|
|
8
|
+
if (typeof check.error !== "function")
|
|
9
|
+
return "";
|
|
10
|
+
try {
|
|
11
|
+
const said = check.error();
|
|
12
|
+
return typeof said === "string" && said.length > 0 ? `, ${q(said)}` : "";
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return "";
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const defOf = (type) => type === null || typeof type !== "object"
|
|
19
|
+
? {}
|
|
20
|
+
: (type._zod?.def ?? type._def ?? {});
|
|
21
|
+
const checkOf = (check) => check === null || typeof check !== "object" ? {} : (check._zod?.def ?? check);
|
|
22
|
+
const q = (text) => JSON.stringify(text);
|
|
23
|
+
export function printZod(type, uses = { nodeRef: false, isoDate: false }) {
|
|
24
|
+
if (type === null || typeof type !== "object")
|
|
25
|
+
return null;
|
|
26
|
+
const def = defOf(type);
|
|
27
|
+
switch (def.type) {
|
|
28
|
+
case "optional":
|
|
29
|
+
case "nullable": {
|
|
30
|
+
const inner = printZod(def.innerType, uses);
|
|
31
|
+
return inner === null ? null : `${inner}.${def.type}()`;
|
|
32
|
+
}
|
|
33
|
+
case "default": {
|
|
34
|
+
const inner = printZod(def.innerType, uses);
|
|
35
|
+
const value = typeof def.defaultValue === "function" ? undefined : def.defaultValue;
|
|
36
|
+
return inner === null || value === undefined ? null : `${inner}.default(${JSON.stringify(value)})`;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const kinds = nodeRefKinds(type);
|
|
40
|
+
if (kinds) {
|
|
41
|
+
uses.nodeRef = true;
|
|
42
|
+
return kinds.length === 1 && kinds[0] === "*" ? "nodeRef()" : `nodeRef([${kinds.map(q).join(", ")}])`;
|
|
43
|
+
}
|
|
44
|
+
if (type === isoDate || (def.type === "string" && String(checkOf(def.checks?.[0]).pattern) === String(checkOf(defOf(isoDate).checks?.[0]).pattern) && def.checks?.length === 1)) {
|
|
45
|
+
uses.isoDate = true;
|
|
46
|
+
return "isoDate";
|
|
47
|
+
}
|
|
48
|
+
switch (def.type) {
|
|
49
|
+
case "string": {
|
|
50
|
+
let out = "z.string()";
|
|
51
|
+
for (const raw of def.checks ?? []) {
|
|
52
|
+
const check = checkOf(raw);
|
|
53
|
+
if (check.check === "min_length")
|
|
54
|
+
out += `.min(${check.minimum}${saying(check)})`;
|
|
55
|
+
else if (check.check === "max_length")
|
|
56
|
+
out += `.max(${check.maximum}${saying(check)})`;
|
|
57
|
+
else if (check.check === "length_equals")
|
|
58
|
+
out += `.length(${check.length}${saying(check)})`;
|
|
59
|
+
else if (check.check === "string_format" && check.format === "regex" && check.pattern !== undefined)
|
|
60
|
+
out += `.regex(${String(check.pattern)}${saying(check)})`;
|
|
61
|
+
else if (check.check === "string_format" && (check.format === "email" || check.format === "url" || check.format === "uuid"))
|
|
62
|
+
out += `.${check.format}()`;
|
|
63
|
+
else
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return out;
|
|
67
|
+
}
|
|
68
|
+
case "number": {
|
|
69
|
+
let out = "z.number()";
|
|
70
|
+
for (const raw of def.checks ?? []) {
|
|
71
|
+
const check = checkOf(raw);
|
|
72
|
+
if (check.check === "number_format" && (check.format === "safeint" || check.format === "int32"))
|
|
73
|
+
out += ".int()";
|
|
74
|
+
else if (check.check === "greater_than")
|
|
75
|
+
out += check.inclusive ? `.min(${check.value})` : `.gt(${check.value})`;
|
|
76
|
+
else if (check.check === "less_than")
|
|
77
|
+
out += check.inclusive ? `.max(${check.value})` : `.lt(${check.value})`;
|
|
78
|
+
else
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
return out;
|
|
82
|
+
}
|
|
83
|
+
case "boolean":
|
|
84
|
+
return (def.checks?.length ?? 0) === 0 ? "z.boolean()" : null;
|
|
85
|
+
case "enum":
|
|
86
|
+
return `z.enum([${Object.values(def.entries ?? {}).map((value) => q(String(value))).join(", ")}])`;
|
|
87
|
+
case "literal":
|
|
88
|
+
return def.values?.length === 1 ? `z.literal(${JSON.stringify(def.values[0])})` : null;
|
|
89
|
+
case "array": {
|
|
90
|
+
const element = printZod(def.element, uses);
|
|
91
|
+
if (element === null)
|
|
92
|
+
return null;
|
|
93
|
+
let out = `z.array(${element})`;
|
|
94
|
+
for (const raw of def.checks ?? []) {
|
|
95
|
+
const check = checkOf(raw);
|
|
96
|
+
if (check.check === "min_length")
|
|
97
|
+
out += `.min(${check.minimum})`;
|
|
98
|
+
else if (check.check === "max_length")
|
|
99
|
+
out += `.max(${check.maximum})`;
|
|
100
|
+
else
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
return out;
|
|
104
|
+
}
|
|
105
|
+
case "object": {
|
|
106
|
+
const shape = type.shape ?? def.shape ?? {};
|
|
107
|
+
const parts = [];
|
|
108
|
+
for (const [name, field] of Object.entries(shape)) {
|
|
109
|
+
const printed = printZod(field, uses);
|
|
110
|
+
if (printed === null)
|
|
111
|
+
return null;
|
|
112
|
+
parts.push(`${/^[a-z_$][\w$]*$/i.test(name) ? name : q(name)}: ${printed}`);
|
|
113
|
+
}
|
|
114
|
+
return `z.object({ ${parts.join(", ")} })`;
|
|
115
|
+
}
|
|
116
|
+
case "union": {
|
|
117
|
+
const options = (def.options ?? []).map((option) => printZod(option, uses));
|
|
118
|
+
return options.some((option) => option === null) ? null : `z.union([${options.join(", ")}])`;
|
|
119
|
+
}
|
|
120
|
+
default:
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=zod-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-source.js","sourceRoot":"","sources":["../src/zod-source.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,61 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graview/studio",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"description": "
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "The declaration itself as a graph: kinds, fields, edges, acts, rules, roles and grants as nodes, edited with ordinary mutations in Graview's own interface, checked before they are applied, migrated, and written back as the files graview create writes.",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"graview",
|
|
8
|
+
"context-graph",
|
|
9
|
+
"typed-graph",
|
|
10
|
+
"interface",
|
|
11
|
+
"declarative",
|
|
12
|
+
"schema-editor",
|
|
13
|
+
"visual-editor"
|
|
14
|
+
],
|
|
15
|
+
"main": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"default": "./dist/index.js"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"zod": "^4.4.3",
|
|
25
|
+
"@graview/core": "0.1.0",
|
|
26
|
+
"@graview/layout": "0.1.0",
|
|
27
|
+
"@graview/pages": "0.1.0",
|
|
28
|
+
"@graview/primitives": "0.1.0",
|
|
29
|
+
"@graview/react": "0.1.0",
|
|
30
|
+
"@graview/ship": "0.1.0",
|
|
31
|
+
"@graview/tools": "0.1.0"
|
|
32
|
+
},
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"react": ">=18",
|
|
35
|
+
"react-dom": ">=18"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"dist",
|
|
39
|
+
"README.md"
|
|
40
|
+
],
|
|
41
|
+
"sideEffects": false,
|
|
42
|
+
"repository": {
|
|
43
|
+
"type": "git",
|
|
44
|
+
"url": "git+https://github.com/en-dash-consulting/graview.git",
|
|
45
|
+
"directory": "packages/studio"
|
|
46
|
+
},
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public"
|
|
49
|
+
},
|
|
50
|
+
"license": "Elastic-2.0",
|
|
51
|
+
"homepage": "https://graview.dev/docs/packages/studio.html",
|
|
52
|
+
"bugs": {
|
|
53
|
+
"url": "https://github.com/en-dash-consulting/graview/issues"
|
|
54
|
+
},
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">=22"
|
|
57
|
+
},
|
|
58
|
+
"scripts": {
|
|
59
|
+
"build": "tsc -b"
|
|
60
|
+
}
|
|
6
61
|
}
|