@graview/core 0.1.9 → 0.1.12
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 +19 -8
- package/dist/app.d.ts +41 -2
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js.map +1 -1
- package/dist/blocks.d.ts +5 -0
- package/dist/blocks.d.ts.map +1 -0
- package/dist/blocks.js +14 -0
- package/dist/blocks.js.map +1 -0
- package/dist/capabilities.js +1 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/check.d.ts +8 -0
- package/dist/check.d.ts.map +1 -0
- package/dist/check.js +19 -0
- package/dist/check.js.map +1 -0
- package/dist/cli/check/arrangement.d.ts.map +1 -1
- package/dist/cli/check/arrangement.js +3 -2
- package/dist/cli/check/arrangement.js.map +1 -1
- package/dist/cli/check/brand.d.ts.map +1 -1
- package/dist/cli/check/brand.js +21 -0
- package/dist/cli/check/brand.js.map +1 -1
- package/dist/cli/check/computed.d.ts +14 -0
- package/dist/cli/check/computed.d.ts.map +1 -0
- package/dist/cli/check/computed.js +34 -0
- package/dist/cli/check/computed.js.map +1 -0
- package/dist/cli/check/hidden-reads.d.ts +4 -0
- package/dist/cli/check/hidden-reads.d.ts.map +1 -0
- package/dist/cli/check/hidden-reads.js +152 -0
- package/dist/cli/check/hidden-reads.js.map +1 -0
- package/dist/cli/check/index.d.ts +2 -0
- package/dist/cli/check/index.d.ts.map +1 -1
- package/dist/cli/check/index.js +2 -0
- package/dist/cli/check/index.js.map +1 -1
- package/dist/cli/check/lenses.d.ts +10 -0
- package/dist/cli/check/lenses.d.ts.map +1 -1
- package/dist/cli/check/lenses.js +37 -19
- package/dist/cli/check/lenses.js.map +1 -1
- package/dist/cli/check/relations.d.ts.map +1 -1
- package/dist/cli/check/relations.js +2 -1
- 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 +13 -3
- package/dist/cli/check/views.js.map +1 -1
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +5 -1
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +1 -1
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/describe.d.ts.map +1 -1
- package/dist/cli/describe.js +66 -1
- package/dist/cli/describe.js.map +1 -1
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +23 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/columns.d.ts +73 -0
- package/dist/columns.d.ts.map +1 -0
- package/dist/columns.js +100 -0
- package/dist/columns.js.map +1 -0
- package/dist/conformance/index.js +1 -1
- package/dist/conformance/index.js.map +1 -1
- package/dist/describe.d.ts +5 -0
- package/dist/describe.d.ts.map +1 -0
- package/dist/describe.js +19 -0
- package/dist/describe.js.map +1 -0
- package/dist/document/blocks.d.ts +187 -0
- package/dist/document/blocks.d.ts.map +1 -0
- package/dist/document/blocks.js +372 -0
- package/dist/document/blocks.js.map +1 -0
- package/dist/document/compile-checked.d.ts +8 -0
- package/dist/document/compile-checked.d.ts.map +1 -0
- package/dist/document/compile-checked.js +36 -0
- package/dist/document/compile-checked.js.map +1 -0
- package/dist/document/compile.d.ts +8 -6
- package/dist/document/compile.d.ts.map +1 -1
- package/dist/document/compile.js +68 -46
- package/dist/document/compile.js.map +1 -1
- package/dist/document/computed-values.d.ts +33 -0
- package/dist/document/computed-values.d.ts.map +1 -0
- package/dist/document/computed-values.js +60 -0
- package/dist/document/computed-values.js.map +1 -0
- package/dist/document/computed.d.ts +42 -0
- package/dist/document/computed.d.ts.map +1 -0
- package/dist/document/computed.js +173 -0
- package/dist/document/computed.js.map +1 -0
- package/dist/document/describe-place.d.ts +95 -0
- package/dist/document/describe-place.d.ts.map +1 -0
- package/dist/document/describe-place.js +286 -0
- package/dist/document/describe-place.js.map +1 -0
- package/dist/document/diff.d.ts.map +1 -1
- package/dist/document/diff.js +78 -4
- package/dist/document/diff.js.map +1 -1
- package/dist/document/edit.d.ts +1 -1
- package/dist/document/edit.d.ts.map +1 -1
- package/dist/document/edit.js +908 -107
- package/dist/document/edit.js.map +1 -1
- package/dist/document/expr/analyze.d.ts +22 -0
- package/dist/document/expr/analyze.d.ts.map +1 -1
- package/dist/document/expr/analyze.js +51 -4
- package/dist/document/expr/analyze.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 +121 -8
- 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.d.ts +2 -1
- package/dist/document/expr/parse.d.ts.map +1 -1
- package/dist/document/expr/parse.js +6 -3
- package/dist/document/expr/parse.js.map +1 -1
- package/dist/document/expr/print.d.ts.map +1 -1
- package/dist/document/expr/print.js +4 -2
- package/dist/document/expr/print.js.map +1 -1
- package/dist/document/graview-template.d.ts +20 -12
- package/dist/document/graview-template.d.ts.map +1 -1
- package/dist/document/graview-template.js +5 -44
- package/dist/document/graview-template.js.map +1 -1
- package/dist/document/index.d.ts +8 -8
- package/dist/document/index.d.ts.map +1 -1
- package/dist/document/index.js +5 -5
- package/dist/document/index.js.map +1 -1
- package/dist/document/instantiate-template.d.ts +14 -0
- package/dist/document/instantiate-template.d.ts.map +1 -0
- package/dist/document/instantiate-template.js +46 -0
- package/dist/document/instantiate-template.js.map +1 -0
- package/dist/document/rules.d.ts +2 -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 +46 -5
- package/dist/document/schema.d.ts.map +1 -1
- package/dist/document/schema.js +31 -3
- package/dist/document/schema.js.map +1 -1
- package/dist/document/template.d.ts +33 -2
- package/dist/document/template.d.ts.map +1 -1
- package/dist/document/template.js +156 -18
- package/dist/document/template.js.map +1 -1
- package/dist/document/thumbnail.d.ts +5 -4
- package/dist/document/thumbnail.d.ts.map +1 -1
- package/dist/document/thumbnail.js +29 -21
- package/dist/document/thumbnail.js.map +1 -1
- package/dist/document/to-document.d.ts.map +1 -1
- package/dist/document/to-document.js +6 -1
- package/dist/document/to-document.js.map +1 -1
- package/dist/document/views.d.ts +58 -3
- package/dist/document/views.d.ts.map +1 -1
- package/dist/document/views.js +356 -24
- package/dist/document/views.js.map +1 -1
- package/dist/figures.d.ts +3 -0
- package/dist/figures.d.ts.map +1 -0
- package/dist/figures.js +14 -0
- package/dist/figures.js.map +1 -0
- package/dist/index.d.ts +3 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -7
- package/dist/index.js.map +1 -1
- package/dist/mutations/types.d.ts +12 -0
- package/dist/mutations/types.d.ts.map +1 -1
- package/dist/places.d.ts +197 -0
- package/dist/places.d.ts.map +1 -0
- package/dist/places.js +376 -0
- package/dist/places.js.map +1 -0
- package/dist/scaffold/domain.js +1 -1
- package/dist/scaffold/from-template.d.ts.map +1 -1
- package/dist/scaffold/from-template.js +3 -3
- package/dist/scaffold/from-template.js.map +1 -1
- package/dist/scaffold/project.d.ts.map +1 -1
- package/dist/scaffold/project.js +13 -0
- package/dist/scaffold/project.js.map +1 -1
- package/dist/scaffold/ui.d.ts.map +1 -1
- package/dist/scaffold/ui.js +13 -10
- package/dist/scaffold/ui.js.map +1 -1
- package/dist/scene-districts.d.ts +5 -1
- package/dist/scene-districts.d.ts.map +1 -1
- package/dist/scene-districts.js +11 -4
- package/dist/scene-districts.js.map +1 -1
- package/dist/scene.d.ts +7 -0
- package/dist/scene.d.ts.map +1 -0
- package/dist/scene.js +16 -0
- package/dist/scene.js.map +1 -0
- package/dist/schema/define-node.d.ts +3 -0
- package/dist/schema/define-node.d.ts.map +1 -1
- package/dist/schema/define-node.js +3 -1
- package/dist/schema/define-node.js.map +1 -1
- package/dist/schema/types.d.ts +17 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/theme/types.d.ts +9 -0
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/theme/types.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/views/types.d.ts +19 -0
- package/dist/views/types.d.ts.map +1 -1
- package/dist/views/types.js +14 -0
- package/dist/views/types.js.map +1 -1
- package/package.json +21 -1
package/README.md
CHANGED
|
@@ -21,15 +21,26 @@ Everything a Graview app declares, and the checker that verifies it.
|
|
|
21
21
|
resolved for a brand by `shapeOf` and `typographyOf` — so a page outside
|
|
22
22
|
the app can dress as one without importing a stylesheet.
|
|
23
23
|
- **`graview check`** — reads a declaration and reports what is wrong with it,
|
|
24
|
-
in terms an agent can act on.
|
|
24
|
+
in terms an agent can act on. In code it is `@graview/core/check`:
|
|
25
|
+
`checkApp`, `describeApp`, the agent docs (`generateLlmsTxt`), and
|
|
26
|
+
`compileDocument`, a document compiled and checked.
|
|
25
27
|
- **Documents** — `@graview/core/document`: a whole app as one JSON object,
|
|
26
|
-
compiled by `
|
|
27
|
-
never run as code
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
compiled by `compileDocumentWithoutCheck` into the same app `defineApp`
|
|
29
|
+
declares and never run as code (`compileDocument` from
|
|
30
|
+
`@graview/core/check` also asks the checker); `toDocument` writes an app
|
|
31
|
+
back out. Rules say what must hold in a small, budgeted language
|
|
32
|
+
(`expressionRule`). Every command that takes an entry takes
|
|
33
|
+
`--document <file>`. A view's blocks resolve with `@graview/core/blocks`.
|
|
34
|
+
- **The city** — `@graview/core/scene`: `sceneThumbnail` draws a document
|
|
35
|
+
(or an app) as the Scene draws it from altitude — the same districts on
|
|
36
|
+
the same map, in their hues — as one SVG string, with no DOM, for a host
|
|
37
|
+
listing apps; `sceneDistricts` is the same answer as data. A kind's
|
|
38
|
+
figures are `@graview/core/figures`.
|
|
39
|
+
- **What a page loads first** — `@graview/core` and `@graview/core/document`
|
|
40
|
+
hold only what a page draws with. The checker, the city, the figures and
|
|
41
|
+
the block resolver are on the subpaths above because a bundler places a
|
|
42
|
+
whole module in every chunk that can reach it: a hosted page imports both
|
|
43
|
+
barrels up front, and would otherwise carry them before a face is fetched.
|
|
33
44
|
- **Conformance** — `@graview/core/conformance`: fixtures a host runs against
|
|
34
45
|
a version (`conformance()`) to prove it reads, compiles and derives the same.
|
|
35
46
|
|
package/dist/app.d.ts
CHANGED
|
@@ -8,7 +8,8 @@ import type { GraphSnapshot } from "./graph/types.js";
|
|
|
8
8
|
import type { Primitive } from "./graph/primitives.js";
|
|
9
9
|
import type { AnySchema } from "./schema/schema.js";
|
|
10
10
|
import type { ViewRegistry } from "./views/types.js";
|
|
11
|
-
import type { ViewSpecsByKind } from "./document/views.js";
|
|
11
|
+
import type { HomeView, ViewSpecsByKind } from "./document/views.js";
|
|
12
|
+
import type { PagesArrangement } from "./places.js";
|
|
12
13
|
/**
|
|
13
14
|
* Everything one application declares, in one object. `graview check` and
|
|
14
15
|
* the docs generator both read exactly this — an app that can be checked is
|
|
@@ -58,8 +59,30 @@ export type EntityBinding = {
|
|
|
58
59
|
readonly on: string;
|
|
59
60
|
};
|
|
60
61
|
export interface LensDeclaration {
|
|
62
|
+
/** Which lens: one the framework ships (`SHIPPED_LENSES`) or one this app wrote. */
|
|
61
63
|
readonly name: string;
|
|
62
|
-
|
|
64
|
+
/**
|
|
65
|
+
* The roles it requires. A shipped lens knows its own, so a declaration
|
|
66
|
+
* of one may leave them out (`requiredRolesOf`).
|
|
67
|
+
*/
|
|
68
|
+
readonly requiredRoles?: readonly string[];
|
|
69
|
+
/**
|
|
70
|
+
* A DECLARED LENS DRAWS (FR-79). Given a title, a shipped lens is a named
|
|
71
|
+
* place over the kinds it binds — a pill on the bar, a drive-in from
|
|
72
|
+
* altitude, a page at `/places/<as>` — drawn by the framework from this
|
|
73
|
+
* declaration alone, with no registration in the app's UI. Without one
|
|
74
|
+
* it is bindings the checker holds.
|
|
75
|
+
*/
|
|
76
|
+
readonly title?: string;
|
|
77
|
+
/** The kind it is a place over, when its bindings do not say (the reach lens) or say several. */
|
|
78
|
+
readonly on?: string;
|
|
79
|
+
/**
|
|
80
|
+
* What the lens's factory takes beyond its roles, as data — a calendar's
|
|
81
|
+
* `range`, a timeline's `columns`, a coverage's `rowGroup`.
|
|
82
|
+
* `SHIPPED_LENSES[name].options` lists each lens's; anything that cannot
|
|
83
|
+
* be data is derived where it is drawn.
|
|
84
|
+
*/
|
|
85
|
+
readonly options?: Readonly<Record<string, unknown>>;
|
|
63
86
|
/**
|
|
64
87
|
* WHERE THE REUSE WAS PROVED — for a lens this app wrote.
|
|
65
88
|
*
|
|
@@ -119,6 +142,15 @@ export interface GraviewApp<S extends AnySchema = AnySchema> {
|
|
|
119
142
|
* the default at one × full. A document's `views` compile to this.
|
|
120
143
|
*/
|
|
121
144
|
readonly viewSpecs?: ViewSpecsByKind;
|
|
145
|
+
/**
|
|
146
|
+
* THE HOME VIEW, AS DATA (FR-81): blocks from the same closed set —
|
|
147
|
+
* `headline`, `figure`, `list` and the rest — about no one record, drawn
|
|
148
|
+
* as the home's body on both faces in place of the derived one. A
|
|
149
|
+
* document writes it as `views.home`.
|
|
150
|
+
*
|
|
151
|
+
* home: [{ headline: "{count(all('offer')) | words} offers" }, { list: "all('offer')", as: "card" }]
|
|
152
|
+
*/
|
|
153
|
+
readonly home?: HomeView;
|
|
122
154
|
/**
|
|
123
155
|
* Roles a lens requires an app to bind, and what it binds them to.
|
|
124
156
|
*
|
|
@@ -132,6 +164,13 @@ export interface GraviewApp<S extends AnySchema = AnySchema> {
|
|
|
132
164
|
* existed, which is the usual way that assumption gets found.
|
|
133
165
|
*/
|
|
134
166
|
readonly lenses?: readonly LensDeclaration[];
|
|
167
|
+
/**
|
|
168
|
+
* HOW THE HOME IS ARRANGED AND WHERE THE APP OPENS (FR-80): the kinds in
|
|
169
|
+
* order, the kinds the home leaves off, and the place it opens on. Both
|
|
170
|
+
* faces honour it — the routed face's gallery and nav, the city's order —
|
|
171
|
+
* and `graview check` names a kind or place it cannot find.
|
|
172
|
+
*/
|
|
173
|
+
readonly pages?: PagesArrangement;
|
|
135
174
|
/**
|
|
136
175
|
* Who may run what. Declared on the app so `graview check` can read it —
|
|
137
176
|
* a mutation no role can ever run and a role that may do nothing are both
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;GAIG;AACH;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAC3B;;;;;;;;;;;;;;;;;;;;;GAqBG;GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACpC;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,iGAAiG;IACjG,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EACd,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC,CAAC,CAAC,GACxH,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1C;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAC7B;;;;;;;;;OASG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,+BAA+B,EAAE,CAAC;IACnE;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,kBAAkB;IACjC,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CAAC;IACvD,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChF,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,SAAS,SAAS,EAAE,CAAC;CACnE;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AAElE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU,CAAC;AAEzE,qDAAqD;AACrD,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,EAC7C,UAAU,EAAE,sBAAsB,GACjC,OAAO,CAET;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,SAAS,sBAAsB,EAAE,CAYxF;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,sBAAsB,GAAG,MAAM,CAW7E;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAEhF"}
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAiTA;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,QAA6C,EAC7C,UAAkC;IAElC,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,IAAsB;IACnD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC/B,KAAK,UAAU;YACb,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,KAAK,KAAK,CAAC;QACX,KAAK,UAAU;YACb,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACxC;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,kBAAkB,CAAC,UAAkC;IACnE,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,8BAA8B,CAAC;QACxC,KAAK,QAAQ;YACX,OAAO,sDAAsD,CAAC;QAChE,KAAK,SAAS;YACZ,OAAO,0CAA0C,CAAC;QACpD;YACE,OAAO,UAAU,CAAC;IACtB,CAAC;AACH,CAAC;AA+BD,MAAM,UAAU,SAAS,CAAsB,GAAkB;IAC/D,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/blocks.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { compileBlocks, fieldSpecsOf, isTallBlock, resolveBlocks, safeHref, sayNumber } from "./document/blocks.js";
|
|
2
|
+
export type { BlockContext, ResolvedBlock, ResolvedList, SpecBlock } from "./document/blocks.js";
|
|
3
|
+
export { computedNames, computedValues, withComputed } from "./document/computed-values.js";
|
|
4
|
+
export type { ComputedRecord, ComputedValues, PlainComputed } from "./document/computed-values.js";
|
|
5
|
+
//# sourceMappingURL=blocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACpH,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC5F,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/blocks.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* `@graview/core/blocks` — a view's blocks resolved against a record, and
|
|
3
|
+
* the computed values they read.
|
|
4
|
+
*
|
|
5
|
+
* An entry of its own, not part of `@graview/core/document`: a hosted page
|
|
6
|
+
* imports that barrel up front to compile its document, and a bundler
|
|
7
|
+
* places a whole module in every chunk that can reach it — so a resolver
|
|
8
|
+
* only the faces call, once they are fetched to draw, rode in what every
|
|
9
|
+
* hosted page loads first. The views that draw blocks, the pages and an
|
|
10
|
+
* agent's seat import it from here, and it loads when they do.
|
|
11
|
+
*/
|
|
12
|
+
export { compileBlocks, fieldSpecsOf, isTallBlock, resolveBlocks, safeHref, sayNumber } from "./document/blocks.js";
|
|
13
|
+
export { computedNames, computedValues, withComputed } from "./document/computed-values.js";
|
|
14
|
+
//# sourceMappingURL=blocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEpH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/capabilities.js
CHANGED
|
@@ -17,7 +17,7 @@ export const WIRE_PROTOCOL = 1;
|
|
|
17
17
|
* id is named in the changeset that shipped it; `capabilities.test.ts`
|
|
18
18
|
* holds the two lists to each other.
|
|
19
19
|
*/
|
|
20
|
-
const SHIPPED = ["FR-01", "FR-02", "FR-03", "FR-04", "FR-05", "FR-06", "FR-07", "FR-08", "FR-09", "FR-10", "FR-11", "FR-12", "FR-13", "FR-15", "FR-16", "FR-17", "FR-18", "FR-19", "FR-20", "FR-21", "FR-22", "FR-23", "FR-24", "FR-25", "FR-26", "FR-27", "FR-28", "FR-29", "FR-30", "FR-31", "FR-32", "FR-33", "FR-34", "FR-35", "FR-36", "FR-37", "FR-38", "FR-39", "FR-40", "FR-41", "FR-42", "FR-43", "FR-44", "FR-45", "FR-46", "FR-47", "FR-49", "FR-50", "FR-51", "FR-52", "FR-53", "FR-54", "FR-55", "FR-56", "FR-57", "FR-58", "FR-59", "FR-60", "FR-61", "FR-62", "FR-63", "FR-64", "FR-65", "FR-66", "FR-67", "FR-68", "FR-69", "FR-70", "FR-71", "FR-72", "FR-73", "FR-74", "FR-75", "FR-76", "FR-77", "FR-78"];
|
|
20
|
+
const SHIPPED = ["FR-01", "FR-02", "FR-03", "FR-04", "FR-05", "FR-06", "FR-07", "FR-08", "FR-09", "FR-10", "FR-11", "FR-12", "FR-13", "FR-15", "FR-16", "FR-17", "FR-18", "FR-19", "FR-20", "FR-21", "FR-22", "FR-23", "FR-24", "FR-25", "FR-26", "FR-27", "FR-28", "FR-29", "FR-30", "FR-31", "FR-32", "FR-33", "FR-34", "FR-35", "FR-36", "FR-37", "FR-38", "FR-39", "FR-40", "FR-41", "FR-42", "FR-43", "FR-44", "FR-45", "FR-46", "FR-47", "FR-49", "FR-50", "FR-51", "FR-52", "FR-53", "FR-54", "FR-55", "FR-56", "FR-57", "FR-58", "FR-59", "FR-60", "FR-61", "FR-62", "FR-63", "FR-64", "FR-65", "FR-66", "FR-67", "FR-68", "FR-69", "FR-70", "FR-71", "FR-72", "FR-73", "FR-74", "FR-75", "FR-76", "FR-77", "FR-78", "FR-79", "FR-80", "FR-81", "FR-82", "FR-83", "FR-84", "FR-85", "FR-86", "FR-87", "FR-88", "FR-89", "FR-90", "FR-91", "FR-92", "FR-93", "FR-94", "FR-95", "FR-96", "FR-97", "FR-99", "FR-100", "FR-101", "FR-102", "FR-103", "FR-104", "FR-105"];
|
|
21
21
|
/**
|
|
22
22
|
* The declaration-document formats `@graview/core/document` parses, as
|
|
23
23
|
* `<format>@<version>`. Said here rather than imported, so the main entry
|
package/dist/capabilities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAEt7B;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,oBAAoB,CAAU,CAAC;AAehE,oGAAoG;AACpG,MAAM,UAAU,YAAY;IAC1B,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;AAClJ,CAAC"}
|
package/dist/check.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { checkApp, formatFindings } from "./cli/check.js";
|
|
2
|
+
export type { CheckResult, Finding, Severity } from "./cli/check.js";
|
|
3
|
+
export { compileDocument } from "./document/compile-checked.js";
|
|
4
|
+
export { instantiateTemplate } from "./document/instantiate-template.js";
|
|
5
|
+
export { describeApp } from "./cli/describe.js";
|
|
6
|
+
export type { DescribeOptions } from "./cli/describe.js";
|
|
7
|
+
export { generateAgentsMd, generateLlmsTxt } from "./cli/docs.js";
|
|
8
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/check.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* `@graview/core/check` — the checker, and the app read out in words: what
|
|
3
|
+
* `graview check`, `graview describe` and `graview docs` say of a
|
|
4
|
+
* declaration, and a document or a template compiled WITH the checker.
|
|
5
|
+
*
|
|
6
|
+
* An entry of its own, not part of `@graview/core` or
|
|
7
|
+
* `@graview/core/document`: a hosted page imports both barrels up front, and
|
|
8
|
+
* a bundler places a whole module in every chunk that can reach it — so the
|
|
9
|
+
* checker's reach (the city, the figures, the order things are made in)
|
|
10
|
+
* rode in what every hosted page loads first, though the page compiles with
|
|
11
|
+
* `compileDocumentWithoutCheck` and never asks for a verdict. A host, the
|
|
12
|
+
* command line and a test import the checker from here.
|
|
13
|
+
*/
|
|
14
|
+
export { checkApp, formatFindings } from "./cli/check.js";
|
|
15
|
+
export { compileDocument } from "./document/compile-checked.js";
|
|
16
|
+
export { instantiateTemplate } from "./document/instantiate-template.js";
|
|
17
|
+
export { describeApp } from "./cli/describe.js";
|
|
18
|
+
export { generateAgentsMd, generateLlmsTxt } from "./cli/docs.js";
|
|
19
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrangement.d.ts","sourceRoot":"","sources":["../../../src/cli/check/arrangement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"arrangement.d.ts","sourceRoot":"","sources":["../../../src/cli/check/arrangement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CA6ChF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { admitArrangement, arrangeable, parseArrangement } from "../../arrange.js";
|
|
2
|
+
import { bindsOf } from "../../places.js";
|
|
2
3
|
/**
|
|
3
4
|
* WHAT A KIND SAYS IT IS ARRANGED BY has to be something it has.
|
|
4
5
|
*
|
|
@@ -35,7 +36,7 @@ export function checkArrangement(ctx) {
|
|
|
35
36
|
*/
|
|
36
37
|
const bound = new Set();
|
|
37
38
|
for (const [key, binding] of Object.entries(lens.bindings ?? {})) {
|
|
38
|
-
if (lens
|
|
39
|
+
if (bindsOf(lens) === "entities") {
|
|
39
40
|
const kind = binding.kind;
|
|
40
41
|
if (typeof kind === "string")
|
|
41
42
|
bound.add(kind);
|
|
@@ -53,7 +54,7 @@ export function checkArrangement(ctx) {
|
|
|
53
54
|
add({
|
|
54
55
|
severity: "note",
|
|
55
56
|
code: "lens-arrangement-unknown",
|
|
56
|
-
where: `lens "${lens.name}" arrangedBy`,
|
|
57
|
+
where: `lens "${lens.title ?? lens.name}" arrangedBy`,
|
|
57
58
|
message: `The lens opens arranged by "${part}", and none of ${[...bound].join(", ")} can be arranged that way — the picture will open unarranged there.`,
|
|
58
59
|
fix: `Name a field, an edge or \`is\` the bound kind has; \`graview describe\` lists what each kind can be arranged by.`,
|
|
59
60
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrangement.js","sourceRoot":"","sources":["../../../src/cli/check/arrangement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"arrangement.js","sourceRoot":"","sources":["../../../src/cli/check/arrangement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../../src/cli/check/brand.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../../src/cli/check/brand.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CA+C5E;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CA2H5E"}
|
package/dist/cli/check/brand.js
CHANGED
|
@@ -27,6 +27,27 @@ export function checkAccents(ctx) {
|
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
+
/*
|
|
31
|
+
* THE APP'S MONEY (FR-100). A currency or a locale the runtime cannot
|
|
32
|
+
* format with is said as a plain number everywhere — a brand decision
|
|
33
|
+
* that looks applied and is not — so it is refused here by name.
|
|
34
|
+
*/
|
|
35
|
+
const { currency, locale } = app.brand ?? {};
|
|
36
|
+
const formats = (options, at) => {
|
|
37
|
+
try {
|
|
38
|
+
new Intl.NumberFormat(at ?? "en-US", options);
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
if (currency !== undefined && (!/^[A-Z]{3}$/.test(currency) || !formats({ style: "currency", currency }))) {
|
|
46
|
+
add({ severity: "error", code: "brand-currency", where: "brand.currency", message: `"${currency}" is not a currency's three-letter code, so money would be said with no symbol.`, fix: 'Use an ISO 4217 code, like "USD", "EUR" or "GBP".' });
|
|
47
|
+
}
|
|
48
|
+
if (locale !== undefined && !formats({}, locale)) {
|
|
49
|
+
add({ severity: "error", code: "brand-locale", where: "brand.locale", message: `"${locale}" is not a locale, so money could not be written for it.`, fix: 'Use a language tag, like "en-US" or "de-DE".' });
|
|
50
|
+
}
|
|
30
51
|
}
|
|
31
52
|
export function checkPalette(ctx) {
|
|
32
53
|
const { app, kinds, add } = ctx;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand.js","sourceRoot":"","sources":["../../../src/cli/check/brand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkBlE,MAAM,UAAU,YAAY,CAAsB,GAAoB;IACpE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IAChC;;;;OAIG;IACH,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC;gBACF,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,2BAA2B;gBACjC,KAAK,EAAE,kBAAkB,IAAI,IAAI;gBACjC,OAAO,EAAE,8BAA8B,IAAI,kCAAkC;gBAC7E,GAAG,EAAE,qDAAqD,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aACnF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC;gBACF,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,kBAAkB,IAAI,IAAI;gBACjC,OAAO,EAAE,uDAAuD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG;gBACtF,GAAG,EAAE,2CAA2C;aACjD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAsB,GAAoB;IACpE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IAChC;;;;;;;;;OASG;IACH,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,MAAM,OAAO,IAAI,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACrC,GAAG,CAAC;oBACF,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,wBAAwB;oBAC9B,KAAK,EAAE,iBAAiB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE;oBACjG,OAAO,EAAE,mBAAmB,OAAO,CAAC,UAAU,8BAA8B,OAAO,CAAC,GAAG,OAAO,OAAO,CAAC,EAAE,mBAAmB;oBAC3H,GAAG,EAAE,iEAAiE;iBACvE,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,GAAG,CAAC;gBACF,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,yBAAyB;gBAC/B,KAAK,EAAE,iBAAiB,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,GAAG,OAAO,OAAO,CAAC,EAAE,EAAE;gBACzE,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,YAAY,OAAO,CAAC,QAAQ,oBAAoB,OAAO,CAAC,KAAK,GAAG;gBACzF,GAAG,EAAE,sBAAsB,OAAO,CAAC,GAAG,qCAAqC;aAC5E,CAAC,CAAC;QACL,CAAC;QACD;;;;WAIG;QACH,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;YACrC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAa,EAAE,CAAC;gBAChE,KAAK,MAAM,OAAO,IAAI,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;oBACvE,MAAM,KAAK,GAAG,wBAAwB,OAAO,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC;oBAC/G,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;wBACrC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;4BAAE,SAAS;wBACpC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACtB,GAAG,CAAC;4BACF,QAAQ,EAAE,SAAS;4BACnB,IAAI,EAAE,uBAAuB;4BAC7B,KAAK;4BACL,OAAO,EAAE,mBAAmB,OAAO,CAAC,UAAU,gEAAgE;4BAC9G,GAAG,EAAE,kCAAkC;yBACxC,CAAC,CAAC;wBACH,SAAS;oBACX,CAAC;oBACD,GAAG,CAAC;wBACF,QAAQ,EAAE,OAAO;wBACjB,IAAI,EAAE,uBAAuB;wBAC7B,KAAK,EAAE,GAAG,KAAK,OAAO,MAAM,EAAE;wBAC9B,uJAAuJ;wBACvJ,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,kBAAkB,OAAO,CAAC,MAAM,IAAI,QAAQ,WAAW,MAAM,kBAAkB,OAAO,CAAC,QAAQ,uCAAuC;wBAC/J,GAAG,EAAE,sBAAsB,OAAO,CAAC,MAAM,0DAA0D;qBACpG,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC;gBACF,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,+EAA+E;gBACxF,GAAG,EAAE,qCAAqC;aAC3C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,yEAAyE;IACzE,iCAAiC;IACjC,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,iBAAiB;YAAE,SAAS;QAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;aACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC;aACtE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACtB,CAAC;QACF,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC;gBACF,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,iCAAiC;gBACvC,KAAK,EAAE,eAAe,UAAU,CAAC,IAAI,sBAAsB;gBAC3D,OAAO,EAAE,IAAI,UAAU,CAAC,IAAI,uFAAuF;gBACnH,GAAG,EAAE,oCAAoC,UAAU,CAAC,IAAI,+BAA+B;aACxF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC;oBACF,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,mBAAmB;oBACzB,KAAK,EAAE,eAAe,IAAI,IAAI;oBAC9B,OAAO,EAAE,8BAA8B,IAAI,uCAAuC;oBAClF,GAAG,EAAE,wCAAwC,IAAI,6EAA6E;iBAC/H,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,KAAK,MAAM,YAAY,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,GAAG,CAAC;oBACF,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,0BAA0B;oBAChC,KAAK,EAAE,mBAAmB,YAAY,CAAC,IAAI,SAAS;oBACpD,OAAO,EAAE,6BAA6B,YAAY,CAAC,IAAI,kCAAkC;oBACzF,GAAG,EAAE,oDAAoD;iBAC1D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"brand.js","sourceRoot":"","sources":["../../../src/cli/check/brand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AnySchema } from "../../schema/schema.js";
|
|
2
|
+
import type { CheckContext } from "./context.js";
|
|
3
|
+
/**
|
|
4
|
+
* COMPUTED FIELDS, HELD TO THE DECLARATION (FR-83).
|
|
5
|
+
*
|
|
6
|
+
* `defineNode({ computed: { net: "…" } })` is asked what a document's
|
|
7
|
+
* `kinds.<kind>.computed` is asked, in the same words: a name that is
|
|
8
|
+
* already a field or relation, an expression that does not parse or names
|
|
9
|
+
* nothing the kind has, a cycle among the kind's computed fields, and work
|
|
10
|
+
* that grows faster than a page can afford. A document's are judged when it
|
|
11
|
+
* is read, at its own paths, so an app compiled from one is not asked twice.
|
|
12
|
+
*/
|
|
13
|
+
export declare function checkComputed<S extends AnySchema>(ctx: CheckContext<S>): void;
|
|
14
|
+
//# sourceMappingURL=computed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../../../src/cli/check/computed.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAkB7E"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { computedOf, validateComputed } from "../../document/computed.js";
|
|
2
|
+
import { documentOf } from "../../document/to-document.js";
|
|
3
|
+
/**
|
|
4
|
+
* COMPUTED FIELDS, HELD TO THE DECLARATION (FR-83).
|
|
5
|
+
*
|
|
6
|
+
* `defineNode({ computed: { net: "…" } })` is asked what a document's
|
|
7
|
+
* `kinds.<kind>.computed` is asked, in the same words: a name that is
|
|
8
|
+
* already a field or relation, an expression that does not parse or names
|
|
9
|
+
* nothing the kind has, a cycle among the kind's computed fields, and work
|
|
10
|
+
* that grows faster than a page can afford. A document's are judged when it
|
|
11
|
+
* is read, at its own paths, so an app compiled from one is not asked twice.
|
|
12
|
+
*/
|
|
13
|
+
export function checkComputed(ctx) {
|
|
14
|
+
const { app, add } = ctx;
|
|
15
|
+
if (documentOf(app))
|
|
16
|
+
return;
|
|
17
|
+
const kinds = new Map();
|
|
18
|
+
for (const kind of app.schema.kinds) {
|
|
19
|
+
const definition = app.schema.tryDefinition(kind);
|
|
20
|
+
kinds.set(kind, { fields: new Set(Object.keys(definition?.fields?.shape ?? {})), edges: new Set(Object.keys(definition?.edges ?? {})), computed: computedOf(definition) });
|
|
21
|
+
}
|
|
22
|
+
if (![...kinds.values()].some((k) => k.computed.size > 0))
|
|
23
|
+
return;
|
|
24
|
+
for (const finding of validateComputed(kinds, (kind, name) => `defineNode("${kind}").computed.${name}`)) {
|
|
25
|
+
add({
|
|
26
|
+
severity: finding.severity,
|
|
27
|
+
code: finding.code,
|
|
28
|
+
where: finding.path,
|
|
29
|
+
message: finding.message,
|
|
30
|
+
fix: finding.fix ?? "Work it out from the kind's own fields and relations, in the rule language.",
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=computed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computed.js","sourceRoot":"","sources":["../../../src/cli/check/computed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAqB,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAI3D;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAsB,GAAoB;IACrE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IACzB,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO;IAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAA0B,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAyH,CAAC;QAC1K,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC7K,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;QAAE,OAAO;IAClE,KAAK,MAAM,OAAO,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,IAAI,eAAe,IAAI,EAAE,CAAC,EAAE,CAAC;QACxG,GAAG,CAAC;YACF,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,IAAI;YACnB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,6EAA6E;SAClG,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hidden-reads.d.ts","sourceRoot":"","sources":["../../../src/cli/check/hidden-reads.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAyHjD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAqChF"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { documentOf } from "../../document/to-document.js";
|
|
2
|
+
import { parseExpr } from "../../document/expr/parse.js";
|
|
3
|
+
import { perMember } from "../../document/expr/analyze.js";
|
|
4
|
+
import { parseTemplate } from "../../document/template.js";
|
|
5
|
+
import { nodeRefKinds } from "../../mutations/node-ref.js";
|
|
6
|
+
import { withArticle } from "../../schema/define-node.js";
|
|
7
|
+
import { permits, rolesOf } from "../../permissions/policy.js";
|
|
8
|
+
/** The kinds an expression reads, standing on `from`: swept, walked to, or read by a relation's name. */
|
|
9
|
+
function kindsRead(expr, from, schema, into, why) {
|
|
10
|
+
const definition = (kind) => schema.tryDefinition(kind);
|
|
11
|
+
const targets = (kinds, edge) => kinds.flatMap((kind) => {
|
|
12
|
+
const to = definition(kind)?.edges?.[edge]?.to;
|
|
13
|
+
return to === "*" ? [...schema.kinds] : [...(to ?? [])];
|
|
14
|
+
});
|
|
15
|
+
const sources = (edge) => schema.kinds.filter((kind) => definition(kind)?.edges?.[edge]);
|
|
16
|
+
const note = (kinds) => kinds.forEach((kind) => into.has(kind) || into.set(kind, why));
|
|
17
|
+
const every = schema.kinds;
|
|
18
|
+
const visit = (e, at) => {
|
|
19
|
+
switch (e.t) {
|
|
20
|
+
case "ident": {
|
|
21
|
+
const reached = targets(at, e.name);
|
|
22
|
+
note(reached);
|
|
23
|
+
return reached;
|
|
24
|
+
}
|
|
25
|
+
case "member": {
|
|
26
|
+
const reached = targets(visit(e.object, at), e.name);
|
|
27
|
+
note(reached);
|
|
28
|
+
return reached;
|
|
29
|
+
}
|
|
30
|
+
case "where": {
|
|
31
|
+
const set = visit(e.set, at);
|
|
32
|
+
visit(e.filter, set);
|
|
33
|
+
return set;
|
|
34
|
+
}
|
|
35
|
+
case "list":
|
|
36
|
+
e.items.forEach((x) => visit(x, at));
|
|
37
|
+
return [];
|
|
38
|
+
case "unary":
|
|
39
|
+
visit(e.operand, at);
|
|
40
|
+
return [];
|
|
41
|
+
case "binary":
|
|
42
|
+
return [...visit(e.left, at), ...visit(e.right, at)];
|
|
43
|
+
case "call": {
|
|
44
|
+
const word = (i) => (e.args[i]?.t === "lit" && typeof e.args[i].value === "string" ? (e.args[i].value) : undefined);
|
|
45
|
+
let reached = [];
|
|
46
|
+
if (e.fn === "all" && word(0))
|
|
47
|
+
reached = [word(0)];
|
|
48
|
+
else if ((e.fn === "out" || e.fn === "in") && word(e.args.length === 2 ? 1 : 0)) {
|
|
49
|
+
// A walk from the record, or from every member of a set (FR-101).
|
|
50
|
+
const edge = word(e.args.length === 2 ? 1 : 0);
|
|
51
|
+
const from = e.args.length === 2 ? visit(e.args[0], at) : at;
|
|
52
|
+
reached = e.fn === "out" ? targets(from, edge) : sources(edge);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
const set = e.args[0] ? visit(e.args[0], at) : [];
|
|
56
|
+
e.args.slice(1).forEach((x, i) => visit(x, perMember(e, i + 1) ? (set.length > 0 ? set : every) : at));
|
|
57
|
+
return e.fn === "first" || e.fn === "sort" || e.fn === "either" ? set : [];
|
|
58
|
+
}
|
|
59
|
+
note(reached);
|
|
60
|
+
return reached;
|
|
61
|
+
}
|
|
62
|
+
default:
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
visit(expr, from);
|
|
67
|
+
}
|
|
68
|
+
/** What a document's act reads, by kind, and where: its condition, its refusal, its sets and effects. */
|
|
69
|
+
function documentActReads(act, schema) {
|
|
70
|
+
const reads = new Map();
|
|
71
|
+
const on = act["on"];
|
|
72
|
+
const from = typeof on === "string" ? [on] : Array.isArray(on) ? on : [];
|
|
73
|
+
const read = (source, why) => {
|
|
74
|
+
if (typeof source !== "string")
|
|
75
|
+
return;
|
|
76
|
+
try {
|
|
77
|
+
kindsRead(parseExpr(source), from, schema, reads, why);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// An expression that does not parse is the compile's to refuse.
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
read(act["allowedWhen"], "its condition");
|
|
84
|
+
if (typeof act["refusal"] === "string") {
|
|
85
|
+
try {
|
|
86
|
+
for (const part of parseTemplate(act["refusal"]))
|
|
87
|
+
if (part.source)
|
|
88
|
+
read(part.source, "its refusal");
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// As above.
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
const values = (set, why) => {
|
|
95
|
+
if (set && typeof set === "object")
|
|
96
|
+
for (const value of Object.values(set))
|
|
97
|
+
if (value && typeof value === "object" && "expr" in value)
|
|
98
|
+
read(value.expr, why);
|
|
99
|
+
};
|
|
100
|
+
values(act["sets"], "a value it sets");
|
|
101
|
+
for (const effect of act["effects"] ?? [])
|
|
102
|
+
values(effect.set, "a value it sets");
|
|
103
|
+
return reads;
|
|
104
|
+
}
|
|
105
|
+
export function checkHiddenReads(ctx) {
|
|
106
|
+
const { app, declaredMutations, add } = ctx;
|
|
107
|
+
const sights = app.policy?.sees ?? [];
|
|
108
|
+
if (!app.policy || sights.length === 0)
|
|
109
|
+
return;
|
|
110
|
+
const schema = app.schema;
|
|
111
|
+
const acts = (documentOf(app)?.acts ?? {});
|
|
112
|
+
/** A role sees a kind when some sight names it for the role, and not only where it is the role's own. */
|
|
113
|
+
const sees = (role, kind) => sights.some((sight) => sight.kinds.includes(kind) && (sight.roles === "*" || sight.roles.includes(role)));
|
|
114
|
+
const roles = [...new Set([...rolesOf(app.policy), ...sights.flatMap((sight) => (sight.roles === "*" ? [] : sight.roles))])].sort();
|
|
115
|
+
for (const mutation of declaredMutations) {
|
|
116
|
+
const reads = Object.prototype.hasOwnProperty.call(acts, mutation.name) ? documentActReads(acts[mutation.name], schema) : new Map();
|
|
117
|
+
for (const kind of mutation.reads ?? [])
|
|
118
|
+
if (!reads.has(kind))
|
|
119
|
+
reads.set(kind, "what it declares it reads");
|
|
120
|
+
const shape = mutation.input.shape ?? {};
|
|
121
|
+
for (const [arg, field] of Object.entries(shape)) {
|
|
122
|
+
if (arg === mutation.subject?.arg)
|
|
123
|
+
continue;
|
|
124
|
+
for (const kind of nodeRefKinds(field) ?? [])
|
|
125
|
+
if (kind !== "*" && !reads.has(kind))
|
|
126
|
+
reads.set(kind, `its argument "${arg}"`);
|
|
127
|
+
}
|
|
128
|
+
if (reads.size === 0)
|
|
129
|
+
continue;
|
|
130
|
+
const subjects = mutation.subject && mutation.subject.kinds !== "*" ? mutation.subject.kinds : [undefined];
|
|
131
|
+
for (const role of roles) {
|
|
132
|
+
const runs = subjects.some((kind) => permits(app.policy, { kind: "human", id: "themselves", roles: [role] }, mutation.name, kind, undefined, "themselves").ok);
|
|
133
|
+
if (!runs)
|
|
134
|
+
continue;
|
|
135
|
+
for (const [kind, why] of reads) {
|
|
136
|
+
if (sees(role, kind))
|
|
137
|
+
continue;
|
|
138
|
+
const argument = why.startsWith("its argument");
|
|
139
|
+
add({
|
|
140
|
+
severity: "warning",
|
|
141
|
+
code: "act-reads-hidden-kind",
|
|
142
|
+
where: mutation.name,
|
|
143
|
+
message: argument
|
|
144
|
+
? `"${mutation.name}" asks for ${kind} records (${why}), and "${role}" may run it but may not see one, so "${role}" can never give one: the store refuses it as missing.`
|
|
145
|
+
: `"${mutation.name}" reads ${kind} records (${why}), which "${role}" may run it but may not see: whether it is allowed, what it refuses with or what it writes can tell "${role}" that ${withArticle(kind)} they cannot see exists.`,
|
|
146
|
+
fix: `Let "${role}" see ${kind}, keep "${mutation.name}" from "${role}", or have it read only what "${role}" sees.`,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=hidden-reads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hidden-reads.js","sourceRoot":"","sources":["../../../src/cli/check/hidden-reads.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/check/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/check/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
package/dist/cli/check/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/check/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/check/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|