@canonical/pragma-cli 0.36.0 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/bundled-skills/adoption-a1-styles/SKILL.md +24 -0
- package/bundled-skills/adoption-a2-components/SKILL.md +22 -6
- package/bundled-skills/anatomy-author/ANATOMY_DSL_SPEC.md +1397 -327
- package/bundled-skills/anatomy-author/SKILL.md +840 -137
- package/bundled-skills/design-auditor/SKILL.md +133 -9
- package/bundled-skills/implement-component/SKILL.md +192 -23
- package/bundled-skills/specify-component/SKILL.md +124 -12
- package/bundled-skills/specify-pattern/SKILL.md +47 -8
- package/dist/package.json +23 -20
- package/dist/pragma.conf.js +963 -40
- package/dist/pragma.conf.js.map +1 -1
- package/dist/src/capabilities/capabilities/catalog.js +14 -5
- package/dist/src/capabilities/capabilities/catalog.js.map +1 -1
- package/dist/src/capabilities/capabilities/hints.js +33 -5
- package/dist/src/capabilities/capabilities/hints.js.map +1 -1
- package/dist/src/capabilities/config/show.render.js +30 -2
- package/dist/src/capabilities/config/show.render.js.map +1 -1
- package/dist/src/capabilities/create/create.verb.js +2 -1
- package/dist/src/capabilities/create/create.verb.js.map +1 -1
- package/dist/src/capabilities/create/createSurface.generated.js +23 -1
- package/dist/src/capabilities/create/createSurface.generated.js.map +1 -1
- package/dist/src/capabilities/doctor/checks/checkNodeVersion.js +11 -6
- package/dist/src/capabilities/doctor/checks/checkNodeVersion.js.map +1 -1
- package/dist/src/capabilities/doctor/checks/harnessInventory.js +1 -1
- package/dist/src/capabilities/doctor/checks/harnessInventory.js.map +1 -1
- package/dist/src/capabilities/doctor/checks/isSupportedNodeVersion.js +38 -0
- package/dist/src/capabilities/doctor/checks/isSupportedNodeVersion.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/targetHealth.js +104 -14
- package/dist/src/capabilities/doctor/checks/targetHealth.js.map +1 -1
- package/dist/src/capabilities/graph/connect.render.js +101 -0
- package/dist/src/capabilities/graph/connect.render.js.map +1 -0
- package/dist/src/capabilities/graph/connect.types.js +21 -0
- package/dist/src/capabilities/graph/connect.types.js.map +1 -0
- package/dist/src/capabilities/graph/connect.verb.js +147 -0
- package/dist/src/capabilities/graph/connect.verb.js.map +1 -0
- package/dist/src/capabilities/graph/index.js +5 -3
- package/dist/src/capabilities/graph/index.js.map +1 -1
- package/dist/src/capabilities/graph/queryText.js +206 -0
- package/dist/src/capabilities/graph/queryText.js.map +1 -0
- package/dist/src/capabilities/graph/relationIndex.js +302 -0
- package/dist/src/capabilities/graph/relationIndex.js.map +1 -0
- package/dist/src/capabilities/graph/runConnect.js +456 -0
- package/dist/src/capabilities/graph/runConnect.js.map +1 -0
- package/dist/src/capabilities/graph/runQuery.js +21 -4
- package/dist/src/capabilities/graph/runQuery.js.map +1 -1
- package/dist/src/capabilities/setup/buildPlan.js +6 -2
- package/dist/src/capabilities/setup/buildPlan.js.map +1 -1
- package/dist/src/capabilities/setup/operations/index.js +7 -2
- package/dist/src/capabilities/setup/operations/index.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupCompletions.js +6 -2
- package/dist/src/capabilities/setup/operations/setupCompletions.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupConfig.js +4 -2
- package/dist/src/capabilities/setup/operations/setupConfig.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupGenerator.js +72 -14
- package/dist/src/capabilities/setup/operations/setupGenerator.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupLsp.js +372 -62
- package/dist/src/capabilities/setup/operations/setupLsp.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupMcp.js +150 -5
- package/dist/src/capabilities/setup/operations/setupMcp.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupSkills.js +4 -2
- package/dist/src/capabilities/setup/operations/setupSkills.js.map +1 -1
- package/dist/src/capabilities/setup/operations/writability.js +114 -0
- package/dist/src/capabilities/setup/operations/writability.js.map +1 -0
- package/dist/src/capabilities/setup/plan.js.map +1 -1
- package/dist/src/capabilities/setup/setup.verb.js +80 -31
- package/dist/src/capabilities/setup/setup.verb.js.map +1 -1
- package/dist/src/capabilities/setup/targets.js +124 -42
- package/dist/src/capabilities/setup/targets.js.map +1 -1
- package/dist/src/capabilities/shared/index.js +1 -1
- package/dist/src/capabilities/shared/index.js.map +1 -1
- package/dist/src/constants.js +7 -1
- package/dist/src/constants.js.map +1 -1
- package/dist/src/kernel/error/renderError.js +3 -2
- package/dist/src/kernel/error/renderError.js.map +1 -1
- package/dist/src/kernel/error/validOptions.js +41 -0
- package/dist/src/kernel/error/validOptions.js.map +1 -0
- package/dist/src/kernel/packs/compile.js +90 -6
- package/dist/src/kernel/packs/compile.js.map +1 -1
- package/dist/src/kernel/packs/cursor.js +135 -0
- package/dist/src/kernel/packs/cursor.js.map +1 -0
- package/dist/src/kernel/packs/graphql/buildLookupDocument.js +9 -2
- package/dist/src/kernel/packs/graphql/buildLookupDocument.js.map +1 -1
- package/dist/src/kernel/packs/paging.js +108 -0
- package/dist/src/kernel/packs/paging.js.map +1 -0
- package/dist/src/kernel/packs/renderPack.js +154 -5
- package/dist/src/kernel/packs/renderPack.js.map +1 -1
- package/dist/src/kernel/packs/resolveEntity.js +118 -19
- package/dist/src/kernel/packs/resolveEntity.js.map +1 -1
- package/dist/src/kernel/packs/runBodies.js +156 -18
- package/dist/src/kernel/packs/runBodies.js.map +1 -1
- package/dist/src/kernel/packs/schema.js +160 -12
- package/dist/src/kernel/packs/schema.js.map +1 -1
- package/dist/src/kernel/packs/sparql/authorQuery.js +227 -0
- package/dist/src/kernel/packs/sparql/authorQuery.js.map +1 -0
- package/dist/src/kernel/packs/sparql/buildListQuery.js +251 -0
- package/dist/src/kernel/packs/sparql/buildListQuery.js.map +1 -0
- package/dist/src/kernel/packs/sparql/buildLookupQuery.js +125 -22
- package/dist/src/kernel/packs/sparql/buildLookupQuery.js.map +1 -1
- package/dist/src/kernel/packs/sparql/filterValues.js +145 -0
- package/dist/src/kernel/packs/sparql/filterValues.js.map +1 -0
- package/dist/src/kernel/packs/sparql/index.js +24 -14
- package/dist/src/kernel/packs/sparql/index.js.map +1 -1
- package/dist/src/kernel/packs/sparql/runSelect.js +10 -4
- package/dist/src/kernel/packs/sparql/runSelect.js.map +1 -1
- package/dist/src/kernel/packs/sparql/searchTerm.js +25 -0
- package/dist/src/kernel/packs/sparql/searchTerm.js.map +1 -0
- package/dist/src/kernel/packs/storyRules.js +151 -0
- package/dist/src/kernel/packs/storyRules.js.map +1 -0
- package/dist/src/kernel/packs/tierScope.js +310 -0
- package/dist/src/kernel/packs/tierScope.js.map +1 -0
- package/dist/src/kernel/packs/types.js +80 -0
- package/dist/src/kernel/packs/types.js.map +1 -1
- package/dist/src/kernel/project/cli/buildProgram.js +10 -1
- package/dist/src/kernel/project/cli/buildProgram.js.map +1 -1
- package/dist/src/kernel/project/cli/dispatch.js +104 -3
- package/dist/src/kernel/project/cli/dispatch.js.map +1 -1
- package/dist/src/kernel/project/cli/rootHelp.js +8 -5
- package/dist/src/kernel/project/cli/rootHelp.js.map +1 -1
- package/dist/src/kernel/project/cli/suggestNames.js +31 -7
- package/dist/src/kernel/project/cli/suggestNames.js.map +1 -1
- package/dist/src/kernel/project/mcp/registerVerb.js +5 -1
- package/dist/src/kernel/project/mcp/registerVerb.js.map +1 -1
- package/dist/src/kernel/render/renderers.js +34 -2
- package/dist/src/kernel/render/renderers.js.map +1 -1
- package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js +2 -3
- package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js.map +1 -1
- package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js +1 -1
- package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js.map +1 -1
- package/dist/src/kernel/runtime/graphpack/embedded/pack.manifest.generated.js +4 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.manifest.generated.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/embedded.js +13 -6
- package/dist/src/kernel/runtime/graphpack/embedded.js.map +1 -1
- package/dist/src/kernel/runtime/graphpack/read.js +17 -10
- package/dist/src/kernel/runtime/graphpack/read.js.map +1 -1
- package/dist/src/kernel/runtime/loadSession.js +3 -1
- package/dist/src/kernel/runtime/loadSession.js.map +1 -1
- package/dist/src/kernel/runtime/probe.js +1 -1
- package/dist/src/kernel/runtime/probe.js.map +1 -1
- package/dist/src/kernel/runtime/readEntity.js +19 -4
- package/dist/src/kernel/runtime/readEntity.js.map +1 -1
- package/dist/src/kernel/runtime/refs/parseRef.js +17 -1
- package/dist/src/kernel/runtime/refs/parseRef.js.map +1 -1
- package/dist/src/kernel/runtime/refs/resolve.js +38 -5
- package/dist/src/kernel/runtime/refs/resolve.js.map +1 -1
- package/dist/src/kernel/spec/emitReference.js +1 -1
- package/dist/src/kernel/spec/emitReference.js.map +1 -1
- package/package.json +23 -20
- package/pragma.conf.ts +983 -40
- package/src/capabilities/block.parity.test.ts +207 -27
- package/src/capabilities/block.shipped.exec.test.ts +156 -14
- package/src/capabilities/block.tierRank.exec.test.ts +46 -9
- package/src/capabilities/capabilities/catalog.ts +14 -5
- package/src/capabilities/capabilities/hints.ts +40 -5
- package/src/capabilities/config/collectConfigShow.test.ts +1 -0
- package/src/capabilities/config/set.test.ts +24 -25
- package/src/capabilities/config/show.render.test.ts +9 -4
- package/src/capabilities/config/show.render.ts +30 -2
- package/src/capabilities/create/byteEquality.test.ts +28 -1
- package/src/capabilities/create/create.test.ts +1 -0
- package/src/capabilities/create/create.verb.ts +2 -1
- package/src/capabilities/create/createGrammar.test.ts +4 -1
- package/src/capabilities/create/createSurface.generated.ts +23 -1
- package/src/capabilities/create/crossCli.subprocess.test.ts +10 -3
- package/src/capabilities/distribution.parity.test.ts +12 -11
- package/src/capabilities/distribution.test.ts +77 -7
- package/src/capabilities/doctor/checks/checkNodeVersion.test.ts +49 -0
- package/src/capabilities/doctor/checks/checkNodeVersion.ts +11 -7
- package/src/capabilities/doctor/checks/harnessInventory.test.ts +13 -6
- package/src/capabilities/doctor/checks/harnessInventory.ts +8 -4
- package/src/capabilities/doctor/checks/isSupportedNodeVersion.test.ts +111 -0
- package/src/capabilities/doctor/checks/isSupportedNodeVersion.ts +34 -0
- package/src/capabilities/doctor/checks/mcpCommand.test.ts +7 -1
- package/src/capabilities/doctor/checks/targetHealth.ts +114 -13
- package/src/capabilities/doctor/doctor.test.ts +327 -36
- package/src/capabilities/emptyRecovery.test.ts +84 -28
- package/src/capabilities/graph/connect.render.ts +141 -0
- package/src/capabilities/graph/connect.shipped.exec.test.ts +370 -0
- package/src/capabilities/graph/connect.test.ts +361 -0
- package/src/capabilities/graph/connect.types.ts +136 -0
- package/src/capabilities/graph/connect.verb.ts +165 -0
- package/src/capabilities/graph/index.ts +5 -3
- package/src/capabilities/graph/query.shipped.exec.test.ts +66 -0
- package/src/capabilities/graph/query.test.ts +17 -0
- package/src/capabilities/graph/queryText.test.ts +121 -0
- package/src/capabilities/graph/queryText.ts +240 -0
- package/src/capabilities/graph/relationIndex.ts +372 -0
- package/src/capabilities/graph/runConnect.ts +577 -0
- package/src/capabilities/graph/runQuery.ts +21 -6
- package/src/capabilities/lazy.test.ts +32 -2
- package/src/capabilities/listBudget.shipped.exec.test.ts +239 -0
- package/src/capabilities/listLookup.shipped.exec.test.ts +387 -0
- package/src/capabilities/listQuery.shipped.exec.test.ts +400 -0
- package/src/capabilities/resources/resources.test.ts +38 -2
- package/src/capabilities/setup/buildPlan.ts +7 -1
- package/src/capabilities/setup/operations/index.ts +14 -0
- package/src/capabilities/setup/operations/setupCompletions.ts +9 -2
- package/src/capabilities/setup/operations/setupConfig.ts +7 -2
- package/src/capabilities/setup/operations/setupGenerator.ts +93 -15
- package/src/capabilities/setup/operations/setupLsp.ts +544 -85
- package/src/capabilities/setup/operations/setupMcp.ts +212 -4
- package/src/capabilities/setup/operations/setupSkills.ts +7 -2
- package/src/capabilities/setup/operations/writability.test.ts +151 -0
- package/src/capabilities/setup/operations/writability.ts +135 -0
- package/src/capabilities/setup/plan.ts +11 -0
- package/src/capabilities/setup/setup.test.ts +992 -16
- package/src/capabilities/setup/setup.verb.ts +84 -36
- package/src/capabilities/setup/targets.ts +152 -48
- package/src/capabilities/setup/types.ts +41 -5
- package/src/capabilities/shared/index.ts +1 -0
- package/src/capabilities/sources/sources.test.ts +55 -0
- package/src/capabilities/surface.test.ts +59 -11
- package/src/capabilities/tier.parity.test.ts +2 -2
- package/src/capabilities/token.parity.test.ts +784 -0
- package/src/capabilities/tokenGraph.cli.test.ts +279 -0
- package/src/capabilities/tokenGraph.shipped.exec.test.ts +653 -0
- package/src/capabilities/variable.parity.test.ts +448 -0
- package/src/constants.ts +8 -0
- package/src/kernel/completion/shellDrive.test.ts +32 -30
- package/src/kernel/config/defaults.test.ts +21 -2
- package/src/kernel/config/readConfig.test.ts +1 -1
- package/src/kernel/error/renderError.ts +3 -2
- package/src/kernel/error/validOptions.test.ts +57 -0
- package/src/kernel/error/validOptions.ts +45 -0
- package/src/kernel/packs/collect.test.ts +2 -0
- package/src/kernel/packs/compile.test.ts +188 -15
- package/src/kernel/packs/compile.ts +109 -14
- package/src/kernel/packs/cursor.ts +135 -0
- package/src/kernel/packs/filteredEmpty.test.ts +213 -0
- package/src/kernel/packs/graphql/buildLookupDocument.ts +16 -9
- package/src/kernel/packs/graphqlSource.test.ts +152 -0
- package/src/kernel/packs/listNotice.test.ts +156 -0
- package/src/kernel/packs/paging.ts +110 -0
- package/src/kernel/packs/renderPack.ts +186 -13
- package/src/kernel/packs/resolveEntity.test.ts +62 -3
- package/src/kernel/packs/resolveEntity.ts +186 -26
- package/src/kernel/packs/runBodies.ts +196 -26
- package/src/kernel/packs/schema.ts +180 -13
- package/src/kernel/packs/sparql/authorQuery.test.ts +179 -0
- package/src/kernel/packs/sparql/authorQuery.ts +257 -0
- package/src/kernel/packs/sparql/buildListQuery.test.ts +344 -0
- package/src/kernel/packs/sparql/buildListQuery.ts +344 -0
- package/src/kernel/packs/sparql/buildLookupQuery.test.ts +138 -0
- package/src/kernel/packs/sparql/buildLookupQuery.ts +140 -20
- package/src/kernel/packs/sparql/filterValues.test.ts +86 -0
- package/src/kernel/packs/sparql/filterValues.ts +182 -0
- package/src/kernel/packs/sparql/index.ts +30 -14
- package/src/kernel/packs/sparql/runSelect.test.ts +63 -0
- package/src/kernel/packs/sparql/runSelect.ts +42 -2
- package/src/kernel/packs/sparql/searchTerm.ts +29 -0
- package/src/kernel/packs/storyRules.ts +180 -0
- package/src/kernel/packs/tierScope.test.ts +487 -0
- package/src/kernel/packs/tierScope.ts +409 -0
- package/src/kernel/packs/toolDescription.test.ts +13 -10
- package/src/kernel/packs/types.ts +311 -9
- package/src/kernel/project/cli/buildProgram.ts +17 -1
- package/src/kernel/project/cli/dispatch.test.ts +87 -0
- package/src/kernel/project/cli/dispatch.ts +114 -4
- package/src/kernel/project/cli/rootHelp.ts +8 -5
- package/src/kernel/project/cli/suggest.test.ts +35 -0
- package/src/kernel/project/cli/suggestNames.ts +34 -7
- package/src/kernel/project/mcp/registerVerb.ts +5 -1
- package/src/kernel/render/contracts.ts +2 -0
- package/src/kernel/render/prefixes.test.ts +2 -0
- package/src/kernel/render/renderers.test.ts +43 -0
- package/src/kernel/render/renderers.ts +34 -1
- package/src/kernel/runtime/graphpack/embedded/pack.generated.ts +2 -3
- package/src/kernel/runtime/graphpack/embedded/pack.index.generated.ts +1 -1
- package/src/kernel/runtime/graphpack/embedded/pack.manifest.generated.ts +3 -0
- package/src/kernel/runtime/graphpack/embedded.ts +14 -6
- package/src/kernel/runtime/graphpack/graphpack.test.ts +31 -5
- package/src/kernel/runtime/graphpack/read.ts +17 -13
- package/src/kernel/runtime/loadSession.ts +3 -1
- package/src/kernel/runtime/probe.ts +1 -1
- package/src/kernel/runtime/readEntity.ts +19 -4
- package/src/kernel/runtime/refs/parseRef.test.ts +49 -1
- package/src/kernel/runtime/refs/parseRef.ts +25 -1
- package/src/kernel/runtime/refs/resolve.ts +39 -5
- package/src/kernel/runtime/types.ts +30 -0
- package/src/kernel/spec/emitReference.ts +1 -1
- package/src/kernel/spec/surfaceConformance.test.ts +2 -2
- package/src/kernel/spec/types.ts +17 -0
- package/src/testing/PARITY_GAPS.ts +4 -4
- package/src/testing/behavioral/agentSession.mcp.test.ts +43 -39
- package/src/testing/behavioral/completion.test.ts +7 -6
- package/src/testing/behavioral/disclosure.test.ts +39 -37
- package/src/testing/behavioral/errorMatrix.mcp.test.ts +82 -64
- package/src/testing/behavioral/errorMatrix.storeless.test.ts +11 -10
- package/src/testing/behavioral/journeys.cli.test.ts +71 -32
- package/src/testing/behavioral/journeys.defaultPack.test.ts +6 -4
- package/src/testing/behavioral/journeys.firstInstall.test.ts +70 -5
- package/src/testing/behavioral/journeys.mcpLifecycle.mcp.test.ts +4 -3
- package/src/testing/behavioral/journeys.packageStories.test.ts +2 -1
- package/src/testing/behavioral/mcpSurface.test.ts +28 -25
- package/src/testing/behavioral/parity.test.ts +25 -23
- package/src/testing/eval/__snapshots__/eval.test.ts.snap +20 -0
- package/src/testing/eval/cases/effectful.ts +7 -1
- package/src/testing/eval/cases/readNouns.ts +100 -11
- package/src/testing/fixtures/blockGraph.ts +89 -5
- package/src/testing/fixtures/connectGraph.ts +159 -0
- package/src/testing/fixtures/graph/canonical.ts +128 -32
- package/src/testing/helpers/fsProbe.ts +88 -0
- package/src/testing/helpers/runCli.test.ts +44 -0
- package/src/testing/helpers/runCli.ts +27 -3
- package/src/testing/perf/budgets.test.ts +3 -1
- package/src/testing/perf/budgets.ts +138 -54
- package/dist/src/kernel/packs/sparql/applyFilters.js +0 -167
- package/dist/src/kernel/packs/sparql/applyFilters.js.map +0 -1
- package/dist/src/kernel/packs/sparql/applySearch.js +0 -25
- package/dist/src/kernel/packs/sparql/applySearch.js.map +0 -1
- package/src/kernel/packs/sparql/applyFilters.ts +0 -203
- package/src/kernel/packs/sparql/applySearch.ts +0 -33
|
@@ -2,19 +2,25 @@
|
|
|
2
2
|
* The shared run bodies a compiled pack verb closes over.
|
|
3
3
|
*
|
|
4
4
|
* Each factory returns a `VerbSpec.run` closure. Reads are plain async: the list
|
|
5
|
-
* body
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* body admits the caller's filter values against the graph's vocabulary, then
|
|
6
|
+
* runs ONE generated SELECT that carries the filters, the search and the page's
|
|
7
|
+
* bounds; the lookup body resolves names → IRIs and fetches per the declared
|
|
8
|
+
* source, gated by the resolved disclosure level; the sample body draws N random
|
|
9
|
+
* entities at the highest level. All store access is through the runtime facade
|
|
10
|
+
* (lazy), so these factories carry no heavy static import.
|
|
10
11
|
*/
|
|
11
12
|
import { cliRecovery, PragmaError } from "../error/index.js";
|
|
13
|
+
import { encodeCursor, pageFingerprint, readCursor } from "./cursor.js";
|
|
12
14
|
import { resolvePackDetail } from "./disclosure.js";
|
|
15
|
+
import { readLimit } from "./paging.js";
|
|
13
16
|
import { listEntityNames, resolveLookup, } from "./resolveEntity.js";
|
|
14
17
|
import { parseSampleCount, pickRandom } from "./sample.js";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
18
|
+
import { buildListQuery } from "./sparql/buildListQuery.js";
|
|
19
|
+
import { resolveFilterPredicates, } from "./sparql/filterValues.js";
|
|
17
20
|
import { runSelect } from "./sparql/runSelect.js";
|
|
21
|
+
import { readSearchTerm } from "./sparql/searchTerm.js";
|
|
22
|
+
import { resolveReadScope, scopeIris, scopeLabel, } from "./tierScope.js";
|
|
23
|
+
import { ENTITY_VARIABLE, } from "./types.js";
|
|
18
24
|
/** The highest canonical level — sample fetches everything for shape discovery. */
|
|
19
25
|
const HIGHEST_LEVEL = "detailed";
|
|
20
26
|
/**
|
|
@@ -35,19 +41,115 @@ function listRecovery(noun) {
|
|
|
35
41
|
/**
|
|
36
42
|
* Build the run body for a list-shaped verb (`list` or an extra verb).
|
|
37
43
|
*
|
|
38
|
-
* Zero rows is a plain empty list — a SUCCESS, not an error. It returns
|
|
39
|
-
* (JSON stays `[]`, exit 0); the formatter turns the emptiness into
|
|
40
|
-
* message (a pack's `emptyRecovery` becomes that message's hint).
|
|
41
|
-
* results through EMPTY_RESULTS would map to exit 1 and break the
|
|
42
|
-
* `ok:true` list contract, so the run body never throws on emptiness.
|
|
44
|
+
* Zero rows is a plain empty list — a SUCCESS, not an error. It returns an
|
|
45
|
+
* empty page (JSON stays `[]`, exit 0); the formatter turns the emptiness into
|
|
46
|
+
* a non-blank message (a pack's `emptyRecovery` becomes that message's hint).
|
|
47
|
+
* Routing zero results through EMPTY_RESULTS would map to exit 1 and break the
|
|
48
|
+
* uniform `ok:true` list contract, so the run body never throws on emptiness.
|
|
49
|
+
* An empty PAGE is the same calm answer: a caller who walked past the last row
|
|
50
|
+
* asked a legitimate question and got a legitimate nothing.
|
|
51
|
+
*
|
|
52
|
+
* `limit + 1` rows are asked for and at most `limit` returned. That extra row
|
|
53
|
+
* is the whole "are there more" answer — a `COUNT` over the filtered
|
|
54
|
+
* population would be a second full evaluation of the same query to learn one
|
|
55
|
+
* boolean.
|
|
43
56
|
*/
|
|
44
57
|
export function makeListRun(shape, meta) {
|
|
45
58
|
return async (params, rt) => {
|
|
46
|
-
const rows = await runSelect(rt, shape.query, meta.source);
|
|
47
59
|
const vocabularies = await readFilterVocabularies(rt, shape.filters, params, meta.source);
|
|
48
|
-
|
|
60
|
+
const predicates = resolveFilterPredicates(shape.filters, params, vocabularies, meta.source.label);
|
|
61
|
+
const search = readSearchTerm(shape.search, params);
|
|
62
|
+
const scope = await resolveReadScope(rt, meta.tierScope, params.tier, meta.source);
|
|
63
|
+
// The scope as the query builder takes it, or nothing: a story with no
|
|
64
|
+
// declared hierarchy, and a read that asked for every tier, both compile
|
|
65
|
+
// the query they always did.
|
|
66
|
+
const tiers = scope ? scopeIris(scope) : [];
|
|
67
|
+
const listScope = meta.tierScope && tiers.length > 0
|
|
68
|
+
? { entity: ENTITY_VARIABLE, via: meta.tierScope.via, tiers }
|
|
69
|
+
: undefined;
|
|
70
|
+
const limit = readLimit(params.limit);
|
|
71
|
+
// The cursor is spendable only on the read that issued it, and the read IS
|
|
72
|
+
// the author query plus the admitted arguments — the tier scope among them.
|
|
73
|
+
// A cursor minted under one scope and spent under another would page
|
|
74
|
+
// through a population it was not cut from, which is the same defect the
|
|
75
|
+
// fingerprint exists to prevent for filters.
|
|
76
|
+
const fingerprint = pageFingerprint([
|
|
77
|
+
shape.query,
|
|
78
|
+
JSON.stringify(predicates),
|
|
79
|
+
JSON.stringify(search ?? null),
|
|
80
|
+
// Only when there IS a scope: the fingerprint names the read, and an
|
|
81
|
+
// unscoped read has no scope to name. Adding an empty one unconditionally
|
|
82
|
+
// would re-hash every cursor every unscoped story has ever issued, for a
|
|
83
|
+
// component that says nothing about them.
|
|
84
|
+
...(listScope ? [JSON.stringify(tiers)] : []),
|
|
85
|
+
]);
|
|
86
|
+
const offset = readCursor(params.after, fingerprint);
|
|
87
|
+
const rows = await runSelect(rt, buildListQuery({
|
|
88
|
+
query: shape.query,
|
|
89
|
+
predicates,
|
|
90
|
+
...(search ? { search } : {}),
|
|
91
|
+
...(listScope ? { scope: listScope } : {}),
|
|
92
|
+
window: { limit: limit + 1, offset },
|
|
93
|
+
label: meta.source.label,
|
|
94
|
+
}), meta.source);
|
|
95
|
+
const hasMore = rows.length > limit;
|
|
96
|
+
const applied = appliedFilters(shape, params, search?.term, scope);
|
|
97
|
+
return {
|
|
98
|
+
rows: hasMore ? rows.slice(0, limit) : rows,
|
|
99
|
+
...(hasMore
|
|
100
|
+
? { nextAfter: encodeCursor(offset + limit, fingerprint) }
|
|
101
|
+
: {}),
|
|
102
|
+
...(applied.length > 0 ? { filters: applied } : {}),
|
|
103
|
+
...(scope?.kind === "tiers"
|
|
104
|
+
? { scope: { tiers: scope.tiers.map((tier) => tier.local) } }
|
|
105
|
+
: {}),
|
|
106
|
+
limit,
|
|
107
|
+
};
|
|
49
108
|
};
|
|
50
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* The filters this read was narrowed by, in the spelling the caller used.
|
|
112
|
+
*
|
|
113
|
+
* Read off the DECLARED filters and the search term rather than off the
|
|
114
|
+
* compiled predicates: what an empty answer has to name is the argument a
|
|
115
|
+
* reader typed (`--search zzzznotreal`), not the query variable it bound to.
|
|
116
|
+
* A repeated flag accumulates into an array; it is joined here so the renderer
|
|
117
|
+
* never has to know that.
|
|
118
|
+
*
|
|
119
|
+
* A per-call `--tier` counts as one of them, and a CONFIGURED or default scope
|
|
120
|
+
* does not. The distinction is the one this list exists to draw: these are the
|
|
121
|
+
* arguments a reader TYPED, so an empty answer can hand them back as flags to
|
|
122
|
+
* edit. A scope nobody asked for is reported by the page's own `scope` instead,
|
|
123
|
+
* which every format states in its own register.
|
|
124
|
+
*
|
|
125
|
+
* @param shape - The story's list shape (its declared filters).
|
|
126
|
+
* @param params - The arguments this invocation supplied.
|
|
127
|
+
* @param search - The normalised search term, when the caller supplied one.
|
|
128
|
+
* @param scope - The tier scope in force, when the noun is tiered.
|
|
129
|
+
* @returns One entry per filter in force, in declared order, search last.
|
|
130
|
+
*/
|
|
131
|
+
function appliedFilters(shape, params, search, scope) {
|
|
132
|
+
const applied = [];
|
|
133
|
+
for (const filter of shape.filters ?? []) {
|
|
134
|
+
const provided = params[filter.param];
|
|
135
|
+
if (provided === undefined)
|
|
136
|
+
continue;
|
|
137
|
+
const value = Array.isArray(provided)
|
|
138
|
+
? provided.map(String).join(", ")
|
|
139
|
+
: String(provided);
|
|
140
|
+
if (value === "")
|
|
141
|
+
continue;
|
|
142
|
+
applied.push({ param: filter.param, value });
|
|
143
|
+
}
|
|
144
|
+
if (search !== undefined)
|
|
145
|
+
applied.push({ param: "search", value: search });
|
|
146
|
+
if (scope !== undefined && typeof params.tier === "string") {
|
|
147
|
+
const value = params.tier.trim();
|
|
148
|
+
if (value !== "")
|
|
149
|
+
applied.push({ param: "tier", value });
|
|
150
|
+
}
|
|
151
|
+
return applied;
|
|
152
|
+
}
|
|
51
153
|
/**
|
|
52
154
|
* Read the declared vocabulary of each value-free filter the caller actually
|
|
53
155
|
* used.
|
|
@@ -82,12 +184,22 @@ async function readFilterVocabularies(rt, filters, params, source) {
|
|
|
82
184
|
}
|
|
83
185
|
return resolved;
|
|
84
186
|
}
|
|
85
|
-
/**
|
|
86
|
-
|
|
187
|
+
/**
|
|
188
|
+
* Build the run body for a lookup verb (variadic names → resolved entities).
|
|
189
|
+
*
|
|
190
|
+
* A TIERED noun's lookup carries the scope too, and it is the same scope its
|
|
191
|
+
* list carries — one rule, so `block list` and `block lookup` cannot disagree
|
|
192
|
+
* about which Button a reader means. What differs is what the scope DOES: a
|
|
193
|
+
* list omits what is out of scope, a lookup prefers what is in it and falls
|
|
194
|
+
* back rather than answering "no such block" about a block that exists
|
|
195
|
+
* ({@link ./resolveEntity.applyScope}).
|
|
196
|
+
*/
|
|
197
|
+
export function makeLookupRun(lookup, noun, source, prefixes, tierScope) {
|
|
87
198
|
return async (params, rt) => {
|
|
88
199
|
const names = readNames(params);
|
|
89
200
|
const level = await resolvePackDetail(rt, lookup.disclosure);
|
|
90
|
-
const
|
|
201
|
+
const scope = await resolveReadScope(rt, tierScope, params.tier, source);
|
|
202
|
+
const output = await resolveLookup(rt, lookup, noun, names, source, prefixes, level, lookupScope(tierScope, scope));
|
|
91
203
|
// A total miss (single or all-miss) exits non-zero; a partial batch renders
|
|
92
204
|
// the results it found and notes the misses.
|
|
93
205
|
if (output.results.length === 0 && output.errors.length > 0) {
|
|
@@ -104,7 +216,33 @@ export function makeLookupRun(lookup, noun, source, prefixes) {
|
|
|
104
216
|
return output;
|
|
105
217
|
};
|
|
106
218
|
}
|
|
107
|
-
/**
|
|
219
|
+
/**
|
|
220
|
+
* The resolver's view of a scope, or `undefined` when there is nothing to
|
|
221
|
+
* narrow by.
|
|
222
|
+
*
|
|
223
|
+
* `all` collapses to `undefined` rather than to an empty tier set: a resolver
|
|
224
|
+
* handed an empty set would treat every match as out of scope and report a
|
|
225
|
+
* fallback for a read that asked for every tier.
|
|
226
|
+
*/
|
|
227
|
+
function lookupScope(declaration, scope) {
|
|
228
|
+
if (!declaration || scope === undefined || scope.kind === "all") {
|
|
229
|
+
return undefined;
|
|
230
|
+
}
|
|
231
|
+
const label = scopeLabel(scope);
|
|
232
|
+
if (label === undefined)
|
|
233
|
+
return undefined;
|
|
234
|
+
return { via: declaration.via, tiers: scopeIris(scope), label };
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Build the run body for a sample verb (N random entities at the highest level).
|
|
238
|
+
*
|
|
239
|
+
* UNSCOPED, deliberately, and it is the one read of a tiered noun that is. A
|
|
240
|
+
* sample is a shape probe — "show me what a block record looks like" — drawn at
|
|
241
|
+
* the highest disclosure level for exactly that reason, and the tier a specimen
|
|
242
|
+
* happens to belong to is not part of the shape. Narrowing it would also make
|
|
243
|
+
* the draw pool depend on a setting, so two agents reading the same store would
|
|
244
|
+
* see different exemplars for reasons neither asked about.
|
|
245
|
+
*/
|
|
108
246
|
export function makeSampleRun(lookup, noun, source, prefixes, defaultCount) {
|
|
109
247
|
return async (params, rt) => {
|
|
110
248
|
const count = parseSampleCount(params.count ?? defaultCount);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runBodies.js","sourceRoot":"","sources":["../../../../src/kernel/packs/runBodies.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"runBodies.js","sourceRoot":"","sources":["../../../../src/kernel/packs/runBodies.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,14 +14,43 @@
|
|
|
14
14
|
* statically by `capabilities/distribution.ts` and never revalidated at dispatch
|
|
15
15
|
* (`collect.projectStoryTiers`'s default-origin carve-out); this runs for config-
|
|
16
16
|
* and package-declared stories, and in `distribution.test.ts`'s round-trip.
|
|
17
|
+
*
|
|
18
|
+
* That carve-out is exactly why the rest of the compilability rules are NOT
|
|
19
|
+
* here. A rule stated only in this file reaches a third-party author at
|
|
20
|
+
* declaration and the distribution's own stories not at all — they meet it as a
|
|
21
|
+
* first-call CONFIG_ERROR. Those rules live in {@link ./storyRules}, which
|
|
22
|
+
* `compileStoryModule` runs for every tier, and {@link refineListShape} reports
|
|
23
|
+
* them as zod issues so a config author still reads them here, in the same
|
|
24
|
+
* words and at the same paths.
|
|
17
25
|
*/
|
|
18
26
|
import { z } from "zod";
|
|
19
27
|
import { DETAIL_LEVELS, RECOVERY_CLI_PREFIX } from "../../constants.js";
|
|
20
28
|
import { PragmaError } from "../error/index.js";
|
|
29
|
+
import { listShapeIssues, tierScopeIssues } from "./storyRules.js";
|
|
30
|
+
import { RESERVED_STORY_PARAMS, } from "./types.js";
|
|
21
31
|
const NOUN_PATTERN = /^[a-z][a-z0-9-]*$/;
|
|
22
32
|
/** Message for {@link NOUN_PATTERN} — third-party authors never see the regex. */
|
|
23
33
|
const NOUN_MESSAGE = 'must be lowercase kebab-case, e.g. "design-token"';
|
|
24
|
-
|
|
34
|
+
/**
|
|
35
|
+
* A filter's parameter name: lowercase-initial, then letters and digits.
|
|
36
|
+
*
|
|
37
|
+
* camelCase is admitted because the PROJECTOR already relies on it —
|
|
38
|
+
* `emitSurface`'s `emitVerb` writes a flag as `--${kebabCase(param)}`, so a
|
|
39
|
+
* param named `channelOf` was always going to become `--channel-of`, and only
|
|
40
|
+
* this gate refused to let anyone declare it. A story wanting a two-word
|
|
41
|
+
* dimension had no spelling at all: `channel-of` fails the pattern too, and
|
|
42
|
+
* `channelof` projects to the unreadable `--channelof`.
|
|
43
|
+
*
|
|
44
|
+
* This is a WIDENING of what an author may declare, matched to what the
|
|
45
|
+
* projector already emits, and it closes a tier split rather than opening one:
|
|
46
|
+
* the distribution's own stories are compiled statically and never revalidated
|
|
47
|
+
* (see `storyRules.ts`), so `pragma.conf.ts` could already declare a param this
|
|
48
|
+
* schema would have refused from a package. The same rule now reaches both.
|
|
49
|
+
*
|
|
50
|
+
* Still lowercase-INITIAL: a leading capital would kebab to a leading dash and
|
|
51
|
+
* Commander would read the flag as empty.
|
|
52
|
+
*/
|
|
53
|
+
const FILTER_PARAM_PATTERN = /^[a-z][a-zA-Z0-9]*$/;
|
|
25
54
|
const FIELD_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
26
55
|
const GRAPHQL_NAME_PATTERN = /^[_A-Za-z][_0-9A-Za-z]*$/;
|
|
27
56
|
/**
|
|
@@ -33,13 +62,21 @@ const GRAPHQL_NAME_PATTERN = /^[_A-Za-z][_0-9A-Za-z]*$/;
|
|
|
33
62
|
* `^ds:tier`).
|
|
34
63
|
*/
|
|
35
64
|
const TERM_PATTERN = /^(?:[A-Za-z][A-Za-z0-9+.-]*:\/\/[^<>"\s]+|\^?[A-Za-z][\w-]*:[^/<>"\s]+(?:\/\^?[A-Za-z][\w-]*:[^/<>"\s]+)*)$/;
|
|
36
|
-
/** Params a filter/verb may not claim
|
|
37
|
-
const RESERVED_PARAMS = new Set(
|
|
65
|
+
/** Params a filter/verb may not claim — the kernel's own, from the grammar. */
|
|
66
|
+
const RESERVED_PARAMS = new Set(RESERVED_STORY_PARAMS);
|
|
38
67
|
/**
|
|
39
68
|
* Whether an author-supplied query is a SELECT (optionally preceded by its own
|
|
40
69
|
* PREFIX lines). Every author query a story declares runs through `runSelect`,
|
|
41
70
|
* which reads `result.bindings` — so a non-SELECT is a shape mismatch caught
|
|
42
71
|
* here rather than downstream.
|
|
72
|
+
*
|
|
73
|
+
* Used for a `vocabulary.query` only, which is run exactly as the author wrote
|
|
74
|
+
* it. A `list.query` gets the real reader instead ({@link ./storyRules}, via
|
|
75
|
+
* `sparql/authorQuery.ts`), because this pattern is NARROWER than what a page
|
|
76
|
+
* can now serve: it admits `PREFIX` lines but not a leading comment, not
|
|
77
|
+
* `BASE`, and not a lower-case `prefix` — all of which the lift handles. A
|
|
78
|
+
* grammar that refuses the shape the kernel supports is the same defect as one
|
|
79
|
+
* that admits the shape it cannot, read from the other side.
|
|
43
80
|
*/
|
|
44
81
|
function isSelectQuery(query) {
|
|
45
82
|
return /^\s*(?:PREFIX\s+[^\n]*\n\s*)*SELECT\s/i.test(query);
|
|
@@ -78,6 +115,12 @@ const filterSchema = z
|
|
|
78
115
|
.refine((f) => !f.vocabulary || isSelectQuery(f.vocabulary.query), {
|
|
79
116
|
message: '"vocabulary.query" must be a SPARQL SELECT query',
|
|
80
117
|
});
|
|
118
|
+
// A filter must also say WHAT it admits, one way or the other — it used to be
|
|
119
|
+
// able to say neither and fall back to the values the returned ROWS carried,
|
|
120
|
+
// which a page makes actively wrong. That rule is a compilability rule rather
|
|
121
|
+
// than a shape rule, so it is checked in `storyRules.ts` (which the
|
|
122
|
+
// distribution's own stories reach too) and reported from `refineListShape`
|
|
123
|
+
// below at the same `…filters.N` path it always used.
|
|
81
124
|
const searchSchema = z
|
|
82
125
|
.object({
|
|
83
126
|
variables: z.array(fieldName).min(1),
|
|
@@ -126,6 +169,7 @@ const fieldSchema = z
|
|
|
126
169
|
.strict();
|
|
127
170
|
const sectionSchema = fieldSchema.extend({
|
|
128
171
|
kind: z.enum(["field", "code"]).optional(),
|
|
172
|
+
note: z.string().optional(),
|
|
129
173
|
});
|
|
130
174
|
const nestedExpandSchema = z
|
|
131
175
|
.object({
|
|
@@ -150,6 +194,7 @@ const expandFieldSchema = z
|
|
|
150
194
|
property: term,
|
|
151
195
|
label: z.string().optional(),
|
|
152
196
|
graphqlField: graphqlName.optional(),
|
|
197
|
+
blankWhenSelf: z.literal(true).optional(),
|
|
153
198
|
})
|
|
154
199
|
.strict();
|
|
155
200
|
const expandSchema = z
|
|
@@ -162,6 +207,12 @@ const expandSchema = z
|
|
|
162
207
|
select: z.array(z.union([nestedExpandSchema, expandFieldSchema])).min(1),
|
|
163
208
|
showWhenEmpty: z.boolean().optional(),
|
|
164
209
|
level: z.string().optional(),
|
|
210
|
+
note: z.string().optional(),
|
|
211
|
+
orderBy: z.array(fieldName).min(1).optional(),
|
|
212
|
+
// Only "sparql": see PackExpand.source — the SPARQL lane is every lookup's
|
|
213
|
+
// default, so an expand opting INTO GraphQL would ask for a document the
|
|
214
|
+
// lookup never builds.
|
|
215
|
+
source: z.literal("sparql").optional(),
|
|
165
216
|
})
|
|
166
217
|
.strict();
|
|
167
218
|
const disclosureSchema = z
|
|
@@ -215,6 +266,23 @@ const scopeWeightSchema = z
|
|
|
215
266
|
asserted: term.optional(),
|
|
216
267
|
})
|
|
217
268
|
.strict();
|
|
269
|
+
/**
|
|
270
|
+
* The declared tier hierarchy (`PackTierScope`) that SCOPES a noun's reads.
|
|
271
|
+
*
|
|
272
|
+
* Four terms, no options: the class whose instances are the tiers, the edge
|
|
273
|
+
* from an entity to its tier, the tier property whose `/`-separated name IS the
|
|
274
|
+
* hierarchy, and the base tier every scope keeps. Everything else about the
|
|
275
|
+
* scope — the default, the ancestors, the escape — is the kernel's rule, not a
|
|
276
|
+
* knob, so a pack cannot declare a noun that scopes differently from the rest.
|
|
277
|
+
*/
|
|
278
|
+
const tierScopeSchema = z
|
|
279
|
+
.object({
|
|
280
|
+
type: term,
|
|
281
|
+
via: term,
|
|
282
|
+
by: term,
|
|
283
|
+
base: term.optional(),
|
|
284
|
+
})
|
|
285
|
+
.strict();
|
|
218
286
|
const lookupSchema = z
|
|
219
287
|
.object({
|
|
220
288
|
source: z.enum(["sparql", "graphql"]).optional(),
|
|
@@ -244,6 +312,7 @@ const definitionSchema = z
|
|
|
244
312
|
verbs: z.array(verbSchema).min(1).optional(),
|
|
245
313
|
lookup: lookupSchema.optional(),
|
|
246
314
|
colophon: z.string().optional(),
|
|
315
|
+
tierScope: tierScopeSchema.optional(),
|
|
247
316
|
})
|
|
248
317
|
.strict()
|
|
249
318
|
.superRefine((def, ctx) => {
|
|
@@ -253,18 +322,19 @@ const definitionSchema = z
|
|
|
253
322
|
message: 'a pack must declare at least one of "list" or "lookup".',
|
|
254
323
|
});
|
|
255
324
|
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
message: '"list.query" must be a SPARQL SELECT query.',
|
|
260
|
-
path: ["list", "query"],
|
|
261
|
-
});
|
|
262
|
-
}
|
|
325
|
+
// "must be a SELECT" for a `list.query` is `refineListShape`'s to say, and
|
|
326
|
+
// it says it from the reader that actually splits the query — which admits
|
|
327
|
+
// the prologue shapes this file's own pattern does not.
|
|
263
328
|
refineVerbNames(def, ctx);
|
|
264
|
-
if (def.list)
|
|
329
|
+
if (def.list) {
|
|
265
330
|
refineFilterParams(def.list.filters, ["list"], ctx);
|
|
331
|
+
refineListShape(def.list, ["list"], ctx);
|
|
332
|
+
refineTierScope(def.tierScope, def.list, ["list"], ctx);
|
|
333
|
+
}
|
|
266
334
|
for (const [index, verb] of (def.verbs ?? []).entries()) {
|
|
267
335
|
refineFilterParams(verb.filters, ["verbs", index], ctx);
|
|
336
|
+
refineListShape(verb, ["verbs", index], ctx);
|
|
337
|
+
refineTierScope(def.tierScope, verb, ["verbs", index], ctx);
|
|
268
338
|
}
|
|
269
339
|
if (def.lookup)
|
|
270
340
|
refineLookup(def.lookup, ctx);
|
|
@@ -316,6 +386,49 @@ function refineFilterParams(filters, path, ctx) {
|
|
|
316
386
|
seen.add(filter.param);
|
|
317
387
|
}
|
|
318
388
|
}
|
|
389
|
+
/**
|
|
390
|
+
* The COMPILABILITY rules for one list-shaped body, reported as zod issues.
|
|
391
|
+
*
|
|
392
|
+
* The rules themselves live in {@link ./storyRules}, deliberately outside this
|
|
393
|
+
* module: zod runs only for config- and package-declared stories, and a rule
|
|
394
|
+
* whose violation is a CONFIG_ERROR has to reach the distribution's own stories
|
|
395
|
+
* too — which it does by being checked in `compileStoryModule`, the door every
|
|
396
|
+
* tier comes through. Stated in two places it would be two rules; delegated, a
|
|
397
|
+
* third-party author and the distribution read the same sentence.
|
|
398
|
+
*
|
|
399
|
+
* What they cover: a query a page cannot wrap (its own prologue is lifted, but
|
|
400
|
+
* a `FROM` clause and an unreadable projection cannot be), a filter or search
|
|
401
|
+
* over a variable the query does not project, a filtered query shadowing the
|
|
402
|
+
* generated variable prefix, and a filter that declares neither `values` nor a
|
|
403
|
+
* `vocabulary`. None of them could be checked while filters were predicates
|
|
404
|
+
* over returned rows: a variable that was not there simply matched nothing,
|
|
405
|
+
* silently, with exit 0.
|
|
406
|
+
*/
|
|
407
|
+
function refineListShape(shape, path, ctx) {
|
|
408
|
+
for (const issue of listShapeIssues(shape, path)) {
|
|
409
|
+
ctx.addIssue({
|
|
410
|
+
code: z.ZodIssueCode.custom,
|
|
411
|
+
message: issue.message,
|
|
412
|
+
path: [...issue.path],
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* The tier-scope rules, stated by the same reader the compiler uses.
|
|
418
|
+
*
|
|
419
|
+
* Delegated for the reason every other compilability rule is: a third-party
|
|
420
|
+
* author must be refused where they declare, and the distribution's own stories
|
|
421
|
+
* — which never see zod — must be held to the same rule at compile time.
|
|
422
|
+
*/
|
|
423
|
+
function refineTierScope(tierScope, shape, path, ctx) {
|
|
424
|
+
for (const issue of tierScopeIssues(tierScope, shape, path)) {
|
|
425
|
+
ctx.addIssue({
|
|
426
|
+
code: z.ZodIssueCode.custom,
|
|
427
|
+
message: issue.message,
|
|
428
|
+
path: [...issue.path],
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
}
|
|
319
432
|
/** Cross-field lookup rules — the source rule (§3, F8). */
|
|
320
433
|
function refineLookup(lookup, ctx) {
|
|
321
434
|
const source = lookup.source ?? "sparql";
|
|
@@ -386,14 +499,49 @@ function refineLookup(lookup, ctx) {
|
|
|
386
499
|
path: ["lookup"],
|
|
387
500
|
});
|
|
388
501
|
}
|
|
502
|
+
// The EXPAND's lane, not the lookup's: an expand may opt out of a graphql
|
|
503
|
+
// lookup's document, and the three rules below are rules about the lane
|
|
504
|
+
// that will actually resolve it.
|
|
505
|
+
const expandSource = expand.source ?? source;
|
|
389
506
|
for (const entry of expand.select) {
|
|
390
|
-
if ("relation" in entry &&
|
|
507
|
+
if ("relation" in entry && expandSource !== "graphql") {
|
|
391
508
|
ctx.addIssue({
|
|
392
509
|
code: z.ZodIssueCode.custom,
|
|
393
510
|
message: `expand "${expand.name}" nests a relation, which requires lookup.source "graphql" (the SPARQL expand sub-SELECT is single-hop).`,
|
|
394
511
|
path: ["lookup"],
|
|
395
512
|
});
|
|
396
513
|
}
|
|
514
|
+
if ("blankWhenSelf" in entry &&
|
|
515
|
+
entry.blankWhenSelf &&
|
|
516
|
+
expandSource !== "sparql") {
|
|
517
|
+
ctx.addIssue({
|
|
518
|
+
code: z.ZodIssueCode.custom,
|
|
519
|
+
message: `expand "${expand.name}" field "${entry.name}" sets "blankWhenSelf", which only the SPARQL lane can express — set the expand's "source" to "sparql".`,
|
|
520
|
+
path: ["lookup"],
|
|
521
|
+
});
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
if (expand.orderBy !== undefined) {
|
|
525
|
+
if (expandSource !== "sparql") {
|
|
526
|
+
ctx.addIssue({
|
|
527
|
+
code: z.ZodIssueCode.custom,
|
|
528
|
+
message: `expand "${expand.name}" declares "orderBy", which only the SPARQL lane can express — a GraphQL collection's order is the schema's. Set the expand's "source" to "sparql".`,
|
|
529
|
+
path: ["lookup"],
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
// A name that no select entry declares would order by an unbound
|
|
533
|
+
// variable, which SPARQL permits and which silently orders by nothing —
|
|
534
|
+
// so it is refused where it is written rather than ignored at runtime.
|
|
535
|
+
const selected = new Set(expand.select.map((entry) => entry.name));
|
|
536
|
+
for (const name of expand.orderBy) {
|
|
537
|
+
if (!selected.has(name)) {
|
|
538
|
+
ctx.addIssue({
|
|
539
|
+
code: z.ZodIssueCode.custom,
|
|
540
|
+
message: `expand "${expand.name}" orders by "${name}", which its "select" does not declare.`,
|
|
541
|
+
path: ["lookup"],
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
}
|
|
397
545
|
}
|
|
398
546
|
}
|
|
399
547
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/kernel/packs/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/kernel/packs/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAIL,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,YAAY,GAAG,mBAAmB,CAAC;AACzC,kFAAkF;AAClF,MAAM,YAAY,GAAG,mDAAmD,CAAC;AACzE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AACnD,MAAM,aAAa,GAAG,0BAA0B,CAAC;AACjD,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AACxD;;;;;;;GAOG;AACH,MAAM,YAAY,GAChB,6GAA6G,CAAC;AAEhH,+EAA+E;AAC/E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,wCAAwC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,gCAAgC,CAAC,CAAC;AAC9E,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAC3D,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAElD,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;KAC1D,MAAM,EAAE,CAAC;AAEZ,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE;CAC/B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC;IAC7C,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;IAC5C,OAAO,EAAE,iCAAiC;CAC3C,CAAC;IACF,2EAA2E;IAC3E,8EAA8E;IAC9E,yDAAyD;KACxD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE;IAC1C,OAAO,EACL,mGAAmG;CACtG,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;IACjE,OAAO,EAAE,kDAAkD;CAC5D,CAAC,CAAC;AACL,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,oEAAoE;AACpE,4EAA4E;AAC5E,sDAAsD;AAEtD,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,uDAAuD;IACvD,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,EACjD,+FAA+F,mBAAmB,iBAAiB,CACpI;SACA,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,SAAS,GAAG;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,aAAa,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CAC9C,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;AAChD,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,GAAG,SAAS;IACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,IAAI;IACd,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC;SACN,KAAK,CACJ,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;KACrC,CAAC;SACD,MAAM,EAAE,CACZ;SACA,GAAG,CAAC,CAAC,CAAC;CACV,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;IACpC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,QAAQ,EAAE,IAAI;IACd,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,2EAA2E;IAC3E,yEAAyE;IACzE,uBAAuB;IACvB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;CACvC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC;KACD,MAAM,EAAE;KACR,WAAW,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE;IAC/B,8EAA8E;IAC9E,uEAAuE;IACvE,wEAAwE;IACxE,wCAAwC;IACxC,IACE,UAAU,CAAC,OAAO,KAAK,SAAS;QAChC,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAC/C,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,uBAAuB,UAAU,CAAC,OAAO,wCAAwC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC1H,IAAI,EAAE,CAAC,SAAS,CAAC;SAClB,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC;IAC3B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACf,CAAC;SACE,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAChD,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACvC,CAAC;SACD,MAAM,EAAE;CACZ,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;CAC1B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;;;;;;GAQG;AACH,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,CAAC;IACN,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;CACtB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,EAAE,EAAE,IAAI;IACR,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5D,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACzC,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;CACtC,CAAC;KACD,MAAM,EAAE;KACR,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACxB,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAC7B,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,yDAAyD;SACnE,CAAC,CAAC;IACL,CAAC;IACD,2EAA2E;IAC3E,2EAA2E;IAC3E,wDAAwD;IACxD,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1B,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACzC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACxD,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;QACxD,eAAe,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7C,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,GAAG,CAAC,MAAM;QAAE,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEL;;;;;;;;;GASG;AACH,SAAS,eAAe,CACtB,GAIC,EACD,GAAoB;IAEpB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1D,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAK,GAAG,CAAC,MAA+B,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,mEAAmE;gBAC9F,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CACzB,OAAiD,EACjD,IAAkC,EAClC,GAAoB;IAEpB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,iBAAiB,MAAM,CAAC,KAAK,sBAAsB;gBAC5D,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;aAC3C,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,eAAe,CACtB,KAAe,EACf,IAAkC,EAClC,GAAoB;IAEpB,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CACtB,SAAoC,EACpC,KAAe,EACf,IAAkC,EAClC,GAAoB;IAEpB,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,SAAS,YAAY,CACnB,MAAoC,EACpC,GAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;IAEzC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,0DAA0D;YACnE,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,8EAA8E;IAC9E,+EAA+E;IAC/E,0EAA0E;IAC1E,iCAAiC;IACjC,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACvE,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EACL,yHAAyH;YAC3H,IAAI,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,6EAA6E;IAC7E,kEAAkE;IAClE,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACnD,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,2BAA2B,KAAK,kDAAkD;gBAC3F,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChE,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EACL,mGAAmG;YACrG,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,UAAU,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IAElE,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,UAAU,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,KAAK,uCAAuC;gBAC3F,IAAI,EAAE,CAAC,QAAQ,CAAC;aACjB,CAAC,CAAC;QACL,CAAC;QACD,IACE,MAAM,KAAK,SAAS;YACpB,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC9B,CAAC,KAAK,CAAC,YAAY,EACnB,CAAC;YACD,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,UAAU,KAAK,CAAC,IAAI,8GAA8G;gBAC3I,IAAI,EAAE,CAAC,QAAQ,CAAC;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,WAAW,MAAM,CAAC,IAAI,YAAY,MAAM,CAAC,KAAK,uCAAuC;gBAC9F,IAAI,EAAE,CAAC,QAAQ,CAAC;aACjB,CAAC,CAAC;QACL,CAAC;QACD,0EAA0E;QAC1E,wEAAwE;QACxE,iCAAiC;QACjC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,UAAU,IAAI,KAAK,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBACtD,GAAG,CAAC,QAAQ,CAAC;oBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;oBAC3B,OAAO,EAAE,WAAW,MAAM,CAAC,IAAI,0GAA0G;oBACzI,IAAI,EAAE,CAAC,QAAQ,CAAC;iBACjB,CAAC,CAAC;YACL,CAAC;YACD,IACE,eAAe,IAAI,KAAK;gBACxB,KAAK,CAAC,aAAa;gBACnB,YAAY,KAAK,QAAQ,EACzB,CAAC;gBACD,GAAG,CAAC,QAAQ,CAAC;oBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;oBAC3B,OAAO,EAAE,WAAW,MAAM,CAAC,IAAI,YAAY,KAAK,CAAC,IAAI,yGAAyG;oBAC9J,IAAI,EAAE,CAAC,QAAQ,CAAC;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC9B,GAAG,CAAC,QAAQ,CAAC;oBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;oBAC3B,OAAO,EAAE,WAAW,MAAM,CAAC,IAAI,qJAAqJ;oBACpL,IAAI,EAAE,CAAC,QAAQ,CAAC;iBACjB,CAAC,CAAC;YACL,CAAC;YACD,iEAAiE;YACjE,wEAAwE;YACxE,uEAAuE;YACvE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACnE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,GAAG,CAAC,QAAQ,CAAC;wBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;wBAC3B,OAAO,EAAE,WAAW,MAAM,CAAC,IAAI,gBAAgB,IAAI,yCAAyC;wBAC5F,IAAI,EAAE,CAAC,QAAQ,CAAC;qBACjB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAY,EACZ,MAAc;IAEd,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC;QAC/C,MAAM,WAAW,CAAC,WAAW,CAC3B,oBAAoB,MAAM,OAAO,IAAI,KAAK,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,CAC9E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAsB,CAAC;AACvC,CAAC"}
|