@graview/core 0.1.20 → 0.1.22

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 (196) hide show
  1. package/README.md +28 -0
  2. package/dist/blocks.d.ts +3 -0
  3. package/dist/blocks.d.ts.map +1 -1
  4. package/dist/blocks.js +2 -0
  5. package/dist/blocks.js.map +1 -1
  6. package/dist/capabilities.js +1 -1
  7. package/dist/capabilities.js.map +1 -1
  8. package/dist/cli/check/computed.d.ts +4 -2
  9. package/dist/cli/check/computed.d.ts.map +1 -1
  10. package/dist/cli/check/computed.js +7 -4
  11. package/dist/cli/check/computed.js.map +1 -1
  12. package/dist/cli/check/lenses.d.ts.map +1 -1
  13. package/dist/cli/check/lenses.js +4 -2
  14. package/dist/cli/check/lenses.js.map +1 -1
  15. package/dist/cli/check/policy.d.ts.map +1 -1
  16. package/dist/cli/check/policy.js +12 -4
  17. package/dist/cli/check/policy.js.map +1 -1
  18. package/dist/cli/check/relations.d.ts +0 -11
  19. package/dist/cli/check/relations.d.ts.map +1 -1
  20. package/dist/cli/check/relations.js +21 -46
  21. package/dist/cli/check/relations.js.map +1 -1
  22. package/dist/cli/check/views.d.ts.map +1 -1
  23. package/dist/cli/check/views.js +3 -2
  24. package/dist/cli/check/views.js.map +1 -1
  25. package/dist/cli/check.d.ts.map +1 -1
  26. package/dist/cli/check.js +1 -2
  27. package/dist/cli/check.js.map +1 -1
  28. package/dist/cli/describe.d.ts.map +1 -1
  29. package/dist/cli/describe.js +23 -2
  30. package/dist/cli/describe.js.map +1 -1
  31. package/dist/cli/doctor.d.ts +34 -0
  32. package/dist/cli/doctor.d.ts.map +1 -0
  33. package/dist/cli/doctor.js +346 -0
  34. package/dist/cli/doctor.js.map +1 -0
  35. package/dist/cli/document-schema.d.ts +6 -0
  36. package/dist/cli/document-schema.d.ts.map +1 -0
  37. package/dist/cli/document-schema.js +55 -0
  38. package/dist/cli/document-schema.js.map +1 -0
  39. package/dist/cli/index.d.ts +3 -1
  40. package/dist/cli/index.d.ts.map +1 -1
  41. package/dist/cli/index.js +41 -2
  42. package/dist/cli/index.js.map +1 -1
  43. package/dist/cli/types.d.ts +12 -0
  44. package/dist/cli/types.d.ts.map +1 -0
  45. package/dist/cli/types.js +95 -0
  46. package/dist/cli/types.js.map +1 -0
  47. package/dist/conformance/fixtures.d.ts.map +1 -1
  48. package/dist/conformance/fixtures.js +6 -3
  49. package/dist/conformance/fixtures.js.map +1 -1
  50. package/dist/describe.d.ts +3 -1
  51. package/dist/describe.d.ts.map +1 -1
  52. package/dist/describe.js +9 -0
  53. package/dist/describe.js.map +1 -1
  54. package/dist/document/block-context.d.ts +50 -0
  55. package/dist/document/block-context.d.ts.map +1 -0
  56. package/dist/document/block-context.js +69 -0
  57. package/dist/document/block-context.js.map +1 -0
  58. package/dist/document/blocks.d.ts +24 -10
  59. package/dist/document/blocks.d.ts.map +1 -1
  60. package/dist/document/blocks.js +50 -39
  61. package/dist/document/blocks.js.map +1 -1
  62. package/dist/document/compile-checked.d.ts.map +1 -1
  63. package/dist/document/compile-checked.js +6 -3
  64. package/dist/document/compile-checked.js.map +1 -1
  65. package/dist/document/compile.d.ts +1 -1
  66. package/dist/document/compile.d.ts.map +1 -1
  67. package/dist/document/compile.js +8 -3
  68. package/dist/document/compile.js.map +1 -1
  69. package/dist/document/compiled.d.ts +2 -0
  70. package/dist/document/compiled.d.ts.map +1 -1
  71. package/dist/document/compiled.js +31 -27
  72. package/dist/document/compiled.js.map +1 -1
  73. package/dist/document/computed-values.d.ts +6 -1
  74. package/dist/document/computed-values.d.ts.map +1 -1
  75. package/dist/document/computed-values.js +7 -4
  76. package/dist/document/computed-values.js.map +1 -1
  77. package/dist/document/computed.d.ts +21 -0
  78. package/dist/document/computed.d.ts.map +1 -1
  79. package/dist/document/computed.js +54 -4
  80. package/dist/document/computed.js.map +1 -1
  81. package/dist/document/describe-place.d.ts +15 -0
  82. package/dist/document/describe-place.d.ts.map +1 -1
  83. package/dist/document/describe-place.js +33 -28
  84. package/dist/document/describe-place.js.map +1 -1
  85. package/dist/document/diff.d.ts.map +1 -1
  86. package/dist/document/diff.js +22 -0
  87. package/dist/document/diff.js.map +1 -1
  88. package/dist/document/edit.d.ts.map +1 -1
  89. package/dist/document/edit.js +34 -0
  90. package/dist/document/edit.js.map +1 -1
  91. package/dist/document/expr/evaluate.d.ts +7 -1
  92. package/dist/document/expr/evaluate.d.ts.map +1 -1
  93. package/dist/document/expr/evaluate.js +19 -5
  94. package/dist/document/expr/evaluate.js.map +1 -1
  95. package/dist/document/expr/index.d.ts +1 -1
  96. package/dist/document/expr/index.d.ts.map +1 -1
  97. package/dist/document/expr/index.js +1 -1
  98. package/dist/document/expr/index.js.map +1 -1
  99. package/dist/document/expr/parse.js +1 -1
  100. package/dist/document/expr/parse.js.map +1 -1
  101. package/dist/document/fact-values.d.ts +21 -0
  102. package/dist/document/fact-values.d.ts.map +1 -0
  103. package/dist/document/fact-values.js +24 -0
  104. package/dist/document/fact-values.js.map +1 -0
  105. package/dist/document/facts-and-roles.d.ts +17 -0
  106. package/dist/document/facts-and-roles.d.ts.map +1 -0
  107. package/dist/document/facts-and-roles.js +75 -0
  108. package/dist/document/facts-and-roles.js.map +1 -0
  109. package/dist/document/resolve-for.d.ts +29 -0
  110. package/dist/document/resolve-for.d.ts.map +1 -0
  111. package/dist/document/resolve-for.js +23 -0
  112. package/dist/document/resolve-for.js.map +1 -0
  113. package/dist/document/respell.js +2 -2
  114. package/dist/document/respell.js.map +1 -1
  115. package/dist/document/rule-line.d.ts.map +1 -1
  116. package/dist/document/rule-line.js +6 -2
  117. package/dist/document/rule-line.js.map +1 -1
  118. package/dist/document/rules.d.ts.map +1 -1
  119. package/dist/document/rules.js +5 -1
  120. package/dist/document/rules.js.map +1 -1
  121. package/dist/document/schema.d.ts +8 -0
  122. package/dist/document/schema.d.ts.map +1 -1
  123. package/dist/document/schema.js +20 -3
  124. package/dist/document/schema.js.map +1 -1
  125. package/dist/document/to-document.d.ts.map +1 -1
  126. package/dist/document/to-document.js +2 -0
  127. package/dist/document/to-document.js.map +1 -1
  128. package/dist/document/views.d.ts +15 -1
  129. package/dist/document/views.d.ts.map +1 -1
  130. package/dist/document/views.js +82 -34
  131. package/dist/document/views.js.map +1 -1
  132. package/dist/document.schema.json +1655 -0
  133. package/dist/index.d.ts +1 -9
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +2 -5
  136. package/dist/index.js.map +1 -1
  137. package/dist/invariants/engine.d.ts +13 -0
  138. package/dist/invariants/engine.d.ts.map +1 -1
  139. package/dist/invariants/engine.js +16 -1
  140. package/dist/invariants/engine.js.map +1 -1
  141. package/dist/invariants/types.d.ts +7 -4
  142. package/dist/invariants/types.d.ts.map +1 -1
  143. package/dist/lines.d.ts +23 -3
  144. package/dist/lines.d.ts.map +1 -1
  145. package/dist/lines.js +38 -6
  146. package/dist/lines.js.map +1 -1
  147. package/dist/places.d.ts.map +1 -1
  148. package/dist/places.js +1 -1
  149. package/dist/places.js.map +1 -1
  150. package/dist/scaffold/project.d.ts.map +1 -1
  151. package/dist/scaffold/project.js +5 -0
  152. package/dist/scaffold/project.js.map +1 -1
  153. package/dist/schema/define-node.d.ts.map +1 -1
  154. package/dist/schema/define-node.js +6 -4
  155. package/dist/schema/define-node.js.map +1 -1
  156. package/dist/schema/schema.d.ts +10 -2
  157. package/dist/schema/schema.d.ts.map +1 -1
  158. package/dist/schema/schema.js +4 -1
  159. package/dist/schema/schema.js.map +1 -1
  160. package/dist/seen.d.ts.map +1 -1
  161. package/dist/seen.js +5 -2
  162. package/dist/seen.js.map +1 -1
  163. package/dist/snapshot.d.ts +67 -0
  164. package/dist/snapshot.d.ts.map +1 -0
  165. package/dist/snapshot.js +181 -0
  166. package/dist/snapshot.js.map +1 -0
  167. package/dist/store.d.ts +32 -2
  168. package/dist/store.d.ts.map +1 -1
  169. package/dist/store.js +48 -35
  170. package/dist/store.js.map +1 -1
  171. package/dist/sync/engine.d.ts +93 -9
  172. package/dist/sync/engine.d.ts.map +1 -1
  173. package/dist/sync/engine.js +357 -48
  174. package/dist/sync/engine.js.map +1 -1
  175. package/dist/sync/index.d.ts +11 -0
  176. package/dist/sync/index.d.ts.map +1 -0
  177. package/dist/sync/index.js +15 -0
  178. package/dist/sync/index.js.map +1 -0
  179. package/dist/sync/mcp.d.ts +124 -0
  180. package/dist/sync/mcp.d.ts.map +1 -0
  181. package/dist/sync/mcp.js +247 -0
  182. package/dist/sync/mcp.js.map +1 -0
  183. package/dist/sync/types.d.ts +35 -0
  184. package/dist/sync/types.d.ts.map +1 -1
  185. package/dist/sync/types.js.map +1 -1
  186. package/dist/testing.d.ts +30 -0
  187. package/dist/testing.d.ts.map +1 -1
  188. package/dist/testing.js +38 -0
  189. package/dist/testing.js.map +1 -1
  190. package/dist/typed.d.ts +267 -0
  191. package/dist/typed.d.ts.map +1 -0
  192. package/dist/typed.js +35 -0
  193. package/dist/typed.js.map +1 -0
  194. package/dist/version.d.ts +1 -1
  195. package/dist/version.js +1 -1
  196. package/package.json +16 -3
@@ -1 +1 @@
1
- {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/cli/describe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,UAAU,EAAwC,MAAM,WAAW,CAAC;AAItH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAUrD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;CAC9G;AAoBD,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAC7C,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,OAAO,GAAE,eAAoB,GAC5B,MAAM,CA2UR"}
1
+ {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/cli/describe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,UAAU,EAAwC,MAAM,WAAW,CAAC;AAItH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAUrD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;CAC9G;AAoBD,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAC7C,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,OAAO,GAAE,eAAoB,GAC5B,MAAM,CA6VR"}
@@ -288,11 +288,32 @@ export function describeApp(app, options = {}) {
288
288
  return `${kind} · ${name}${label ? ` (${label})` : ""}, read-only: ${entry.expr}`;
289
289
  });
290
290
  });
291
- if (worked.length > 0) {
291
+ // And the whole graph's facts: one value each, worked out over all of what the reader may see.
292
+ const facts = [...computedOf(app.schema)].map(([name, entry]) => `fact('${name}')${entry.label ? ` (${entry.label})` : ""}: ${entry.expr}`);
293
+ if (worked.length > 0 || facts.length > 0) {
292
294
  lines.push("", "## Worked out");
293
- lines.push("Computed fields: read like fields, written by nothing, worked out from what the reader may see.");
295
+ if (worked.length > 0)
296
+ lines.push("Computed fields: read like fields, written by nothing, worked out from what the reader may see.");
294
297
  for (const line of worked)
295
298
  lines.push(` ${line}`);
299
+ if (facts.length > 0)
300
+ lines.push("Facts of the whole graph: read as fact('<name>') in any expression, written by nothing, worked out from what the reader may see.");
301
+ for (const line of facts)
302
+ lines.push(` ${line}`);
303
+ }
304
+ /*
305
+ * WHAT A KIND SAYS OF ITSELF: its natural time and its author, which a
306
+ * list opens newest first by and a glance leads with, and the rest of its
307
+ * roles, which a lens reads where it binds none.
308
+ */
309
+ const roled = kinds.flatMap((kind) => {
310
+ const roles = Object.entries(app.schema.tryDefinition(kind)?.fieldRoles ?? {});
311
+ return roles.length === 0 ? [] : [`${kind}: ${roles.map(([role, field]) => `${role} is ${field}`).join(", ")}`];
312
+ });
313
+ if (roled.length > 0) {
314
+ lines.push("", "## Field roles");
315
+ for (const line of roled)
316
+ lines.push(` ${line}`);
296
317
  }
297
318
  /* WHAT IS JUDGED. A rule with no repair is a problem a person is told about and cannot fix. */
298
319
  const invariants = app.invariants ?? [];
@@ -1 +1 @@
1
- {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/cli/describe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/cli/describe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * `graview doctor` — WHETHER A PRODUCT'S GRAVIEW IS ONE RELEASE.
3
+ *
4
+ * One release is named five times in a product: `@graview/core`, `/pages`,
5
+ * `/ship` and the rest in package.json, `graview` beside them, what the
6
+ * lockfile resolved each to, what is installed, and the `formatVersion` of
7
+ * every declaration document. And React's pair: React 19.3 refuses a
8
+ * `react` beside a `react-dom` of another version at startup, which a
9
+ * person meets as a blank page. Each of these drifted apart in a product
10
+ * built from outside (n-dx's face) and was found by what broke; this says
11
+ * each as a sentence with its fix, and exits 1 on any problem.
12
+ */
13
+ export declare const DOCTOR_USAGE = " graview doctor [<dir>] [--document <file>] [--json]\n Says whether the product in <dir> (default .) is on one Graview\n release: every graview and @graview/* pin in its package.json the same\n version, its lockfile and its node_modules holding that version, each\n declaration document's formatVersion one the installed core reads, and\n react beside react-dom at one version (React refuses a mismatched pair\n at startup, and the page is blank). Each problem is said with its fix;\n exits 1 on any.\n";
14
+ export type DoctorLevel = "ok" | "note" | "problem";
15
+ export interface DoctorFinding {
16
+ readonly level: DoctorLevel;
17
+ /** What is so, as a sentence. */
18
+ readonly says: string;
19
+ /** What to do about it, as a sentence, when there is something to do. */
20
+ readonly fix?: string;
21
+ }
22
+ /** Where Node would find a package from `dir`: the nearest `node_modules/<name>`, walking up. Its exports may hide `./package.json`, so the folder is read directly. */
23
+ export declare function installedVersion(dir: string, name: string): {
24
+ readonly version: string;
25
+ readonly at: string;
26
+ } | undefined;
27
+ /** Every version of every Graview package a lockfile resolves, by package. */
28
+ export declare function lockedVersions(file: string): Map<string, Set<string>>;
29
+ /** What the doctor finds in a product's directory. Reads the disk; writes nothing. */
30
+ export declare function diagnose(dir: string, options?: {
31
+ readonly documents?: readonly string[];
32
+ }): DoctorFinding[];
33
+ export declare function doctor(argv: readonly string[]): number;
34
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,+hBAQxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAmBD,wKAAwK;AACxK,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAYzH;AAoBD,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CA8BrE;AAgDD,sFAAsF;AACtF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAAG,aAAa,EAAE,CAwJ/G;AAID,wBAAgB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAgBtD"}
@@ -0,0 +1,346 @@
1
+ import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
2
+ import { basename, dirname, join, relative, resolve } from "node:path";
3
+ import { FORMAT, FORMAT_VERSION } from "../document/schema.js";
4
+ import { FRAMEWORK_VERSION } from "../version.js";
5
+ /**
6
+ * `graview doctor` — WHETHER A PRODUCT'S GRAVIEW IS ONE RELEASE.
7
+ *
8
+ * One release is named five times in a product: `@graview/core`, `/pages`,
9
+ * `/ship` and the rest in package.json, `graview` beside them, what the
10
+ * lockfile resolved each to, what is installed, and the `formatVersion` of
11
+ * every declaration document. And React's pair: React 19.3 refuses a
12
+ * `react` beside a `react-dom` of another version at startup, which a
13
+ * person meets as a blank page. Each of these drifted apart in a product
14
+ * built from outside (n-dx's face) and was found by what broke; this says
15
+ * each as a sentence with its fix, and exits 1 on any problem.
16
+ */
17
+ export const DOCTOR_USAGE = ` graview doctor [<dir>] [--document <file>] [--json]
18
+ Says whether the product in <dir> (default .) is on one Graview
19
+ release: every graview and @graview/* pin in its package.json the same
20
+ version, its lockfile and its node_modules holding that version, each
21
+ declaration document's formatVersion one the installed core reads, and
22
+ react beside react-dom at one version (React refuses a mismatched pair
23
+ at startup, and the page is blank). Each problem is said with its fix;
24
+ exits 1 on any.
25
+ `;
26
+ const SECTIONS = ["dependencies", "devDependencies", "optionalDependencies"];
27
+ const isFramework = (name) => name === "graview" || name.startsWith("@graview/");
28
+ /** A version a range names: `0.1.20` in `0.1.20`, `^0.1.20`, `~0.1.20`, `>=0.1.20`. */
29
+ const named = (range) => /\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?/.exec(range)?.[0];
30
+ /** A range that is a checkout on disk rather than a release: nothing to hold to a version. */
31
+ const linked = (range) => /^(?:workspace|link|file|portal):/.test(range);
32
+ const exact = (range) => /^=?v?\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(range.trim());
33
+ function readJson(file) {
34
+ try {
35
+ const parsed = JSON.parse(readFileSync(file, "utf8"));
36
+ return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed) ? parsed : undefined;
37
+ }
38
+ catch {
39
+ return undefined;
40
+ }
41
+ }
42
+ /** Where Node would find a package from `dir`: the nearest `node_modules/<name>`, walking up. Its exports may hide `./package.json`, so the folder is read directly. */
43
+ export function installedVersion(dir, name) {
44
+ let here = resolve(dir);
45
+ for (;;) {
46
+ const at = join(here, "node_modules", name, "package.json");
47
+ if (existsSync(at)) {
48
+ const version = readJson(at)?.["version"];
49
+ if (typeof version === "string")
50
+ return { version, at: dirname(at) };
51
+ }
52
+ const up = dirname(here);
53
+ if (up === here)
54
+ return undefined;
55
+ here = up;
56
+ }
57
+ }
58
+ /** The lockfile that decides what `dir` installs: the nearest one, walking up. */
59
+ function lockfileOf(dir) {
60
+ let here = resolve(dir);
61
+ for (;;) {
62
+ for (const [name, manager] of [
63
+ ["pnpm-lock.yaml", "pnpm"],
64
+ ["package-lock.json", "npm"],
65
+ ["yarn.lock", "yarn"],
66
+ ["bun.lock", "bun"],
67
+ ]) {
68
+ if (existsSync(join(here, name)))
69
+ return { file: join(here, name), manager };
70
+ }
71
+ const up = dirname(here);
72
+ if (up === here)
73
+ return undefined;
74
+ here = up;
75
+ }
76
+ }
77
+ /** Every version of every Graview package a lockfile resolves, by package. */
78
+ export function lockedVersions(file) {
79
+ const found = new Map();
80
+ const add = (name, version) => {
81
+ if (!isFramework(name))
82
+ return;
83
+ (found.get(name) ?? found.set(name, new Set()).get(name)).add(version);
84
+ };
85
+ const text = readFileSync(file, "utf8");
86
+ if (file.endsWith(".json")) {
87
+ const packages = JSON.parse(text).packages ?? {};
88
+ for (const [path, entry] of Object.entries(packages)) {
89
+ const name = /(?:^|\/)node_modules\/((?:@graview\/)?[^/]+)$/.exec(path)?.[1];
90
+ if (name && typeof entry.version === "string" && !entry.link)
91
+ add(name, entry.version);
92
+ }
93
+ return found;
94
+ }
95
+ if (basename(file) === "yarn.lock") {
96
+ let current = [];
97
+ for (const line of text.split("\n")) {
98
+ if (!line.startsWith(" ") && line.trim().endsWith(":")) {
99
+ current = [...line.matchAll(/"?((?:@graview\/)?[\w-]+)@/g)].map((match) => match[1]).filter(isFramework);
100
+ continue;
101
+ }
102
+ const version = /^\s+version:?\s+"?([^"\s]+)"?/.exec(line)?.[1];
103
+ if (version && current.length > 0)
104
+ for (const name of current)
105
+ add(name, version);
106
+ }
107
+ return found;
108
+ }
109
+ // pnpm (v5–v9) and bun: `'@graview/core@0.1.20':`, `/@graview/core/0.1.20:`, `graview@0.1.20(…)`.
110
+ for (const match of text.matchAll(/^\s+['"]?\/?((?:@graview\/)?[\w-]+)[@/](\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?)/gm))
111
+ add(match[1], match[2]);
112
+ return found;
113
+ }
114
+ /** The documents in a product: `.json` files that say they are Graview declarations, outside what is installed or built. */
115
+ function documentsIn(dir, depth = 4) {
116
+ const found = [];
117
+ const walk = (here, left) => {
118
+ let entries;
119
+ try {
120
+ entries = readdirSync(here);
121
+ }
122
+ catch {
123
+ return;
124
+ }
125
+ for (const entry of entries) {
126
+ if (entry.startsWith(".") || ["node_modules", "dist", "build", "coverage", "out"].includes(entry))
127
+ continue;
128
+ const path = join(here, entry);
129
+ let stat;
130
+ try {
131
+ stat = statSync(path);
132
+ }
133
+ catch {
134
+ continue;
135
+ }
136
+ if (stat.isDirectory()) {
137
+ if (left > 0)
138
+ walk(path, left - 1);
139
+ }
140
+ else if (entry.endsWith(".json") && entry !== "package.json" && entry !== "package-lock.json" && stat.size < 8 * 1024 * 1024) {
141
+ if (readJson(path)?.["format"] === FORMAT)
142
+ found.push(path);
143
+ }
144
+ }
145
+ };
146
+ walk(resolve(dir), depth);
147
+ return found.sort();
148
+ }
149
+ /** The format version the core installed in `dir` reads, from its built schema — or this CLI's own when none is installed. */
150
+ function coreFormatVersion(dir) {
151
+ const core = installedVersion(dir, "@graview/core");
152
+ if (core) {
153
+ try {
154
+ const said = /FORMAT_VERSION\s*=\s*(\d+)/.exec(readFileSync(join(core.at, "dist", "document", "schema.js"), "utf8"))?.[1];
155
+ if (said)
156
+ return { version: Number(said), from: `the installed @graview/core ${core.version}` };
157
+ }
158
+ catch {
159
+ // An install without its built schema: fall back to this CLI's own.
160
+ }
161
+ }
162
+ return { version: FORMAT_VERSION, from: `this graview's own @graview/core ${FRAMEWORK_VERSION}` };
163
+ }
164
+ const listed = (names) => (names.length <= 2 ? names.join(" and ") : `${names.slice(0, -1).join(", ")} and ${names[names.length - 1]}`);
165
+ /** What the doctor finds in a product's directory. Reads the disk; writes nothing. */
166
+ export function diagnose(dir, options = {}) {
167
+ const findings = [];
168
+ const root = resolve(dir);
169
+ const manifest = readJson(join(root, "package.json"));
170
+ if (!manifest) {
171
+ return [{ level: "problem", says: `There is no package.json in ${root}.`, fix: "Run graview doctor in the product's own directory, or name it: graview doctor <dir>." }];
172
+ }
173
+ const lock = lockfileOf(root);
174
+ const install = `${lock?.manager ?? "npm"} install`;
175
+ /* ---- the pins */
176
+ const pins = new Map();
177
+ for (const section of SECTIONS) {
178
+ const deps = manifest[section];
179
+ if (typeof deps !== "object" || deps === null)
180
+ continue;
181
+ for (const [name, range] of Object.entries(deps))
182
+ if (isFramework(name) && typeof range === "string")
183
+ pins.set(name, range);
184
+ }
185
+ const released = [...pins].filter(([, range]) => !linked(range));
186
+ const links = [...pins].filter(([, range]) => linked(range)).map(([name]) => name);
187
+ if (links.length > 0)
188
+ findings.push({ level: "note", says: `${listed(links)} ${links.length === 1 ? "is" : "are"} named by a path (a checkout, a workspace or a tarball) rather than a release, so no version is held to for ${links.length === 1 ? "it" : "them"}.` });
189
+ const byVersion = new Map();
190
+ for (const [name, range] of released) {
191
+ const version = named(range) ?? range;
192
+ (byVersion.get(version) ?? byVersion.set(version, []).get(version)).push(name);
193
+ }
194
+ const versions = [...byVersion.entries()].sort((a, b) => b[1].length - a[1].length);
195
+ const release = versions[0]?.[0];
196
+ if (pins.size === 0) {
197
+ findings.push({ level: "note", says: "package.json names no graview or @graview/* package." });
198
+ }
199
+ else if (versions.length > 1) {
200
+ findings.push({
201
+ level: "problem",
202
+ says: `package.json names ${versions.length} Graview releases: ${versions.map(([version, names]) => `${version} (${listed(names)})`).join("; ")}.`,
203
+ fix: `Every @graview/* package and graview are one release: pin them all to ${release} and run ${install}.`,
204
+ });
205
+ }
206
+ else if (release) {
207
+ findings.push({ level: "ok", says: `package.json pins ${released.length} Graview package${released.length === 1 ? "" : "s"} to ${release}.` });
208
+ const loose = released.filter(([, range]) => !exact(range)).map(([name]) => name);
209
+ if (loose.length > 0)
210
+ findings.push({
211
+ level: "note",
212
+ says: `${listed(loose)} ${loose.length === 1 ? "is" : "are"} pinned by a range, so one install can resolve them to different releases.`,
213
+ fix: `Pin each to exactly ${release}.`,
214
+ });
215
+ }
216
+ /* ---- what is installed */
217
+ for (const [name, range] of released) {
218
+ const wanted = named(range);
219
+ const installed = installedVersion(root, name);
220
+ if (!installed) {
221
+ findings.push({ level: "problem", says: `${name} is in package.json but not installed.`, fix: `Run ${install}.` });
222
+ }
223
+ else if (wanted && exact(range) && installed.version !== wanted) {
224
+ findings.push({ level: "problem", says: `package.json pins ${name} ${wanted}, and ${installed.version} is installed.`, fix: `Run ${install}.` });
225
+ }
226
+ }
227
+ const installedReleases = new Map();
228
+ for (const [name] of released) {
229
+ const installed = installedVersion(root, name);
230
+ if (installed)
231
+ (installedReleases.get(installed.version) ?? installedReleases.set(installed.version, []).get(installed.version)).push(name);
232
+ }
233
+ if (installedReleases.size > 1) {
234
+ findings.push({
235
+ level: "problem",
236
+ says: `node_modules holds ${installedReleases.size} Graview releases: ${[...installedReleases].map(([version, names]) => `${version} (${listed(names)})`).join("; ")}.`,
237
+ fix: `Pin every @graview/* package and graview to one version and run ${install}; two releases side by side make every kind a different type and every act a different function.`,
238
+ });
239
+ }
240
+ /* ---- the lockfile */
241
+ if (lock && released.length > 0) {
242
+ const locked = lockedVersions(lock.file);
243
+ const where = relative(root, lock.file) || basename(lock.file);
244
+ const all = new Set([...locked.values()].flatMap((set) => [...set]));
245
+ for (const [name, range] of released) {
246
+ const wanted = named(range);
247
+ const has = locked.get(name);
248
+ if (wanted && exact(range) && has && !has.has(wanted)) {
249
+ findings.push({ level: "problem", says: `${where} resolves ${name} to ${[...has].join(" and ")}, and package.json pins ${wanted}.`, fix: `Run ${install} so the lockfile follows package.json.` });
250
+ }
251
+ }
252
+ if (all.size > 1) {
253
+ findings.push({
254
+ level: "problem",
255
+ says: `${where} holds ${all.size} Graview releases (${[...all].sort().join(", ")}): a second copy of a package is installed beside the first.`,
256
+ fix: `Pin every @graview/* package and graview to one version wherever this lockfile's projects name them, and run ${install}.`,
257
+ });
258
+ }
259
+ else if (all.size === 1) {
260
+ findings.push({ level: "ok", says: `${where} holds one Graview release, ${[...all][0]}.` });
261
+ }
262
+ }
263
+ /* ---- this graview */
264
+ if (release && named(release) && named(release) !== FRAMEWORK_VERSION) {
265
+ findings.push({
266
+ level: "note",
267
+ says: `This graview is ${FRAMEWORK_VERSION}, and the product pins ${release}.`,
268
+ fix: "Run the product's own: node_modules/.bin/graview (pnpm exec graview, npx --no-install graview), which is the release it checks against.",
269
+ });
270
+ }
271
+ /* ---- the documents */
272
+ const documents = options.documents?.map((file) => resolve(root, file)) ?? documentsIn(root);
273
+ const core = coreFormatVersion(root);
274
+ for (const file of documents) {
275
+ const name = relative(root, file) || basename(file);
276
+ const document = readJson(file);
277
+ if (!document) {
278
+ findings.push({ level: "problem", says: `${name} is not a JSON object.`, fix: "Check that the file is the declaration document and that it parses." });
279
+ continue;
280
+ }
281
+ const version = document["formatVersion"];
282
+ if (typeof version !== "number") {
283
+ findings.push({ level: "problem", says: `${name} says no formatVersion.`, fix: `Add "formatVersion": ${core.version}, the version ${core.from} reads.` });
284
+ }
285
+ else if (version > core.version) {
286
+ findings.push({
287
+ level: "problem",
288
+ says: `${name} is format version ${version}, and ${core.from} reads up to ${core.version}.`,
289
+ fix: "Move every @graview/* package and graview to the release that wrote it, or write the document for this one.",
290
+ });
291
+ }
292
+ else if (version < core.version) {
293
+ findings.push({ level: "note", says: `${name} is format version ${version}; ${core.from} reads ${core.version} and upgrades it as it compiles.`, fix: "Write it at the current version when you next change it." });
294
+ }
295
+ else {
296
+ findings.push({ level: "ok", says: `${name} is format version ${version}, which ${core.from} reads.` });
297
+ }
298
+ }
299
+ /* ---- React's pair */
300
+ const react = installedVersion(root, "react");
301
+ const reactDom = installedVersion(root, "react-dom");
302
+ const range = (name) => SECTIONS.map((section) => manifest[section]?.[name]).find((one) => typeof one === "string");
303
+ if (react && reactDom) {
304
+ if (react.version !== reactDom.version) {
305
+ findings.push({
306
+ level: "problem",
307
+ says: `react ${react.version} is installed beside react-dom ${reactDom.version}: React refuses a mismatched pair at startup, and the page is blank.`,
308
+ fix: `Pin both to one version ("react": "${reactDom.version}", "react-dom": "${reactDom.version}") and run ${install}.`,
309
+ });
310
+ }
311
+ else {
312
+ findings.push({ level: "ok", says: `react and react-dom are both ${react.version}.` });
313
+ }
314
+ }
315
+ else if (range("react") && range("react-dom")) {
316
+ const [a, b] = [range("react"), range("react-dom")];
317
+ if (named(a) !== named(b)) {
318
+ findings.push({
319
+ level: exact(a) && exact(b) ? "problem" : "note",
320
+ says: `package.json asks for react ${a} and react-dom ${b}, and neither is installed yet: React refuses a pair of different versions at startup.`,
321
+ fix: `Ask for the same version of both, then run ${install}.`,
322
+ });
323
+ }
324
+ }
325
+ return findings;
326
+ }
327
+ const MARK = { ok: "✓", note: "·", problem: "✗" };
328
+ export function doctor(argv) {
329
+ const at = (name) => {
330
+ const index = argv.indexOf(name);
331
+ return index === -1 ? undefined : argv[index + 1];
332
+ };
333
+ const document = at("--document");
334
+ const dir = argv.find((arg, index) => !arg.startsWith("--") && argv[index - 1] !== "--document") ?? ".";
335
+ const findings = diagnose(dir, document ? { documents: [document] } : {});
336
+ const problems = findings.filter((finding) => finding.level === "problem").length;
337
+ if (argv.includes("--json")) {
338
+ process.stdout.write(`${JSON.stringify({ ok: problems === 0, findings }, null, 2)}\n`);
339
+ return problems === 0 ? 0 : 1;
340
+ }
341
+ for (const finding of findings)
342
+ process.stdout.write(`${MARK[finding.level]} ${finding.says}${finding.fix ? `\n ${finding.fix}` : ""}\n`);
343
+ process.stdout.write(problems === 0 ? "graview doctor: one release, nothing to fix.\n" : `graview doctor: ${problems} problem${problems === 1 ? "" : "s"} to fix.\n`);
344
+ return problems === 0 ? 0 : 1;
345
+ }
346
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /** Where a version's schema is served: the published tarball's own file. */
2
+ export declare const documentSchemaUrl: (version: string) => string;
3
+ type Json = Record<string, unknown>;
4
+ export declare function documentJsonSchema(version: string): Json;
5
+ export {};
6
+ //# sourceMappingURL=document-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-schema.d.ts","sourceRoot":"","sources":["../../src/cli/document-schema.ts"],"names":[],"mappings":"AAkBA,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,WAA2E,CAAC;AAK7H,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAGpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAgCxD"}
@@ -0,0 +1,55 @@
1
+ import * as z from "../schema/zod.js";
2
+ import { DocumentSpec, FieldSpec, KindSpec } from "../document/schema.js";
3
+ /*
4
+ * THE DECLARATION DOCUMENT AS JSON SCHEMA, one per version, from the shape
5
+ * the compiler reads (`DocumentSpec`) — never written by hand, so it cannot
6
+ * say a key the compiler refuses or refuse one it reads. The build writes it
7
+ * to `dist/document.schema.json`, `@graview/core/document.schema.json`, and
8
+ * a document that names it in `$schema` is checked in an editor as it is
9
+ * typed: an unknown key is underlined there, not refused at run time.
10
+ *
11
+ * zod says every key, type, pattern, range and closed object itself. What
12
+ * it cannot say is a refinement — a function — so the few the format has
13
+ * are said here again, in JSON Schema's words, and the test that holds this
14
+ * schema to the compiler (`the-document-schema-is-the-compilers`) catches
15
+ * one said wrong.
16
+ */
17
+ /** Where a version's schema is served: the published tarball's own file. */
18
+ export const documentSchemaUrl = (version) => `https://unpkg.com/@graview/core@${version}/dist/document.schema.json`;
19
+ /** A name every object already answers to: no field or relation may be called one. */
20
+ const INHERITED = Object.getOwnPropertyNames(Object.prototype);
21
+ const at = (schema, ...path) => path.reduce((node, key) => (node[key] ?? {}), schema);
22
+ export function documentJsonSchema(version) {
23
+ const schema = z.toJSONSchema(DocumentSpec, {
24
+ io: "input",
25
+ unrepresentable: "any",
26
+ override: ({ zodSchema, jsonSchema }) => {
27
+ const json = jsonSchema;
28
+ if (zodSchema === DocumentSpec)
29
+ Object.assign(at(json, "properties", "kinds"), { minProperties: 1, maxProperties: 40 });
30
+ if (zodSchema === KindSpec) {
31
+ Object.assign(at(json, "properties", "fields"), { minProperties: 1 });
32
+ Object.assign(at(json, "properties", "fields", "propertyNames"), { not: { enum: ["id", "kind", ...INHERITED] } });
33
+ Object.assign(at(json, "properties", "edges", "propertyNames"), { not: { enum: INHERITED } });
34
+ Object.assign(at(json, "properties", "computed"), { maxProperties: 20 });
35
+ }
36
+ if (zodSchema === FieldSpec) {
37
+ json["allOf"] = [
38
+ // An enum lists its options, and only an enum has them.
39
+ { if: { properties: { type: { const: "enum" } } }, then: { required: ["options"] }, else: { not: { required: ["options"] } } },
40
+ // Only a list says what it is a list `of`.
41
+ { if: { properties: { type: { const: "list" } } }, else: { not: { required: ["of"] } } },
42
+ ];
43
+ }
44
+ },
45
+ });
46
+ const { $schema, ...rest } = schema;
47
+ return {
48
+ $schema,
49
+ $id: documentSchemaUrl(version),
50
+ title: `Graview declaration document, format ${String(at(rest, "properties", "formatVersion")["const"])} (@graview/core ${version})`,
51
+ description: 'A whole Graview app as one JSON object: its kinds, fields, relations, acts, rules, roles, views and brand. `graview check --document <file>` compiles it and says what is wrong in words; this schema is the same shape, for an editor. Name it in a document\'s "$schema".',
52
+ ...rest,
53
+ };
54
+ }
55
+ //# sourceMappingURL=document-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-schema.js","sourceRoot":"","sources":["../../src/cli/document-schema.ts"],"names":[],"mappings":"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"}