@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.
- package/README.md +28 -0
- package/dist/blocks.d.ts +3 -0
- package/dist/blocks.d.ts.map +1 -1
- package/dist/blocks.js +2 -0
- package/dist/blocks.js.map +1 -1
- package/dist/capabilities.js +1 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/cli/check/computed.d.ts +4 -2
- package/dist/cli/check/computed.d.ts.map +1 -1
- package/dist/cli/check/computed.js +7 -4
- package/dist/cli/check/computed.js.map +1 -1
- package/dist/cli/check/lenses.d.ts.map +1 -1
- package/dist/cli/check/lenses.js +4 -2
- package/dist/cli/check/lenses.js.map +1 -1
- package/dist/cli/check/policy.d.ts.map +1 -1
- package/dist/cli/check/policy.js +12 -4
- package/dist/cli/check/policy.js.map +1 -1
- package/dist/cli/check/relations.d.ts +0 -11
- package/dist/cli/check/relations.d.ts.map +1 -1
- package/dist/cli/check/relations.js +21 -46
- package/dist/cli/check/relations.js.map +1 -1
- package/dist/cli/check/views.d.ts.map +1 -1
- package/dist/cli/check/views.js +3 -2
- package/dist/cli/check/views.js.map +1 -1
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +1 -2
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/describe.d.ts.map +1 -1
- package/dist/cli/describe.js +23 -2
- package/dist/cli/describe.js.map +1 -1
- package/dist/cli/doctor.d.ts +34 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +346 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/document-schema.d.ts +6 -0
- package/dist/cli/document-schema.d.ts.map +1 -0
- package/dist/cli/document-schema.js +55 -0
- package/dist/cli/document-schema.js.map +1 -0
- package/dist/cli/index.d.ts +3 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +41 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/types.d.ts +12 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +95 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/conformance/fixtures.d.ts.map +1 -1
- package/dist/conformance/fixtures.js +6 -3
- package/dist/conformance/fixtures.js.map +1 -1
- package/dist/describe.d.ts +3 -1
- package/dist/describe.d.ts.map +1 -1
- package/dist/describe.js +9 -0
- package/dist/describe.js.map +1 -1
- package/dist/document/block-context.d.ts +50 -0
- package/dist/document/block-context.d.ts.map +1 -0
- package/dist/document/block-context.js +69 -0
- package/dist/document/block-context.js.map +1 -0
- package/dist/document/blocks.d.ts +24 -10
- package/dist/document/blocks.d.ts.map +1 -1
- package/dist/document/blocks.js +50 -39
- package/dist/document/blocks.js.map +1 -1
- package/dist/document/compile-checked.d.ts.map +1 -1
- package/dist/document/compile-checked.js +6 -3
- package/dist/document/compile-checked.js.map +1 -1
- package/dist/document/compile.d.ts +1 -1
- package/dist/document/compile.d.ts.map +1 -1
- package/dist/document/compile.js +8 -3
- package/dist/document/compile.js.map +1 -1
- package/dist/document/compiled.d.ts +2 -0
- package/dist/document/compiled.d.ts.map +1 -1
- package/dist/document/compiled.js +31 -27
- package/dist/document/compiled.js.map +1 -1
- package/dist/document/computed-values.d.ts +6 -1
- package/dist/document/computed-values.d.ts.map +1 -1
- package/dist/document/computed-values.js +7 -4
- package/dist/document/computed-values.js.map +1 -1
- package/dist/document/computed.d.ts +21 -0
- package/dist/document/computed.d.ts.map +1 -1
- package/dist/document/computed.js +54 -4
- package/dist/document/computed.js.map +1 -1
- package/dist/document/describe-place.d.ts +15 -0
- package/dist/document/describe-place.d.ts.map +1 -1
- package/dist/document/describe-place.js +33 -28
- package/dist/document/describe-place.js.map +1 -1
- package/dist/document/diff.d.ts.map +1 -1
- package/dist/document/diff.js +22 -0
- package/dist/document/diff.js.map +1 -1
- package/dist/document/edit.d.ts.map +1 -1
- package/dist/document/edit.js +34 -0
- package/dist/document/edit.js.map +1 -1
- package/dist/document/expr/evaluate.d.ts +7 -1
- package/dist/document/expr/evaluate.d.ts.map +1 -1
- package/dist/document/expr/evaluate.js +19 -5
- package/dist/document/expr/evaluate.js.map +1 -1
- package/dist/document/expr/index.d.ts +1 -1
- package/dist/document/expr/index.d.ts.map +1 -1
- package/dist/document/expr/index.js +1 -1
- package/dist/document/expr/index.js.map +1 -1
- package/dist/document/expr/parse.js +1 -1
- package/dist/document/expr/parse.js.map +1 -1
- package/dist/document/fact-values.d.ts +21 -0
- package/dist/document/fact-values.d.ts.map +1 -0
- package/dist/document/fact-values.js +24 -0
- package/dist/document/fact-values.js.map +1 -0
- package/dist/document/facts-and-roles.d.ts +17 -0
- package/dist/document/facts-and-roles.d.ts.map +1 -0
- package/dist/document/facts-and-roles.js +75 -0
- package/dist/document/facts-and-roles.js.map +1 -0
- package/dist/document/resolve-for.d.ts +29 -0
- package/dist/document/resolve-for.d.ts.map +1 -0
- package/dist/document/resolve-for.js +23 -0
- package/dist/document/resolve-for.js.map +1 -0
- package/dist/document/respell.js +2 -2
- package/dist/document/respell.js.map +1 -1
- package/dist/document/rule-line.d.ts.map +1 -1
- package/dist/document/rule-line.js +6 -2
- package/dist/document/rule-line.js.map +1 -1
- package/dist/document/rules.d.ts.map +1 -1
- package/dist/document/rules.js +5 -1
- package/dist/document/rules.js.map +1 -1
- package/dist/document/schema.d.ts +8 -0
- package/dist/document/schema.d.ts.map +1 -1
- package/dist/document/schema.js +20 -3
- package/dist/document/schema.js.map +1 -1
- package/dist/document/to-document.d.ts.map +1 -1
- package/dist/document/to-document.js +2 -0
- package/dist/document/to-document.js.map +1 -1
- package/dist/document/views.d.ts +15 -1
- package/dist/document/views.d.ts.map +1 -1
- package/dist/document/views.js +82 -34
- package/dist/document/views.js.map +1 -1
- package/dist/document.schema.json +1655 -0
- package/dist/index.d.ts +1 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -5
- package/dist/index.js.map +1 -1
- package/dist/invariants/engine.d.ts +13 -0
- package/dist/invariants/engine.d.ts.map +1 -1
- package/dist/invariants/engine.js +16 -1
- package/dist/invariants/engine.js.map +1 -1
- package/dist/invariants/types.d.ts +7 -4
- package/dist/invariants/types.d.ts.map +1 -1
- package/dist/lines.d.ts +23 -3
- package/dist/lines.d.ts.map +1 -1
- package/dist/lines.js +38 -6
- package/dist/lines.js.map +1 -1
- package/dist/places.d.ts.map +1 -1
- package/dist/places.js +1 -1
- package/dist/places.js.map +1 -1
- package/dist/scaffold/project.d.ts.map +1 -1
- package/dist/scaffold/project.js +5 -0
- package/dist/scaffold/project.js.map +1 -1
- package/dist/schema/define-node.d.ts.map +1 -1
- package/dist/schema/define-node.js +6 -4
- package/dist/schema/define-node.js.map +1 -1
- package/dist/schema/schema.d.ts +10 -2
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +4 -1
- package/dist/schema/schema.js.map +1 -1
- package/dist/seen.d.ts.map +1 -1
- package/dist/seen.js +5 -2
- package/dist/seen.js.map +1 -1
- package/dist/snapshot.d.ts +67 -0
- package/dist/snapshot.d.ts.map +1 -0
- package/dist/snapshot.js +181 -0
- package/dist/snapshot.js.map +1 -0
- package/dist/store.d.ts +32 -2
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +48 -35
- package/dist/store.js.map +1 -1
- package/dist/sync/engine.d.ts +93 -9
- package/dist/sync/engine.d.ts.map +1 -1
- package/dist/sync/engine.js +357 -48
- package/dist/sync/engine.js.map +1 -1
- package/dist/sync/index.d.ts +11 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +15 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/mcp.d.ts +124 -0
- package/dist/sync/mcp.d.ts.map +1 -0
- package/dist/sync/mcp.js +247 -0
- package/dist/sync/mcp.js.map +1 -0
- package/dist/sync/types.d.ts +35 -0
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/sync/types.js.map +1 -1
- package/dist/testing.d.ts +30 -0
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +38 -0
- package/dist/testing.js.map +1 -1
- package/dist/typed.d.ts +267 -0
- package/dist/typed.d.ts.map +1 -0
- package/dist/typed.js +35 -0
- package/dist/typed.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- 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,
|
|
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"}
|
package/dist/cli/describe.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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 ?? [];
|
package/dist/cli/describe.js.map
CHANGED
|
@@ -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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"}
|