@bluelibs/runner-dev 6.2.0 → 6.3.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 +131 -12
- package/dist/cli/generators/initUtils.js +1 -1
- package/dist/cli/generators/initUtils.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/README.md.js +17 -4
- package/dist/cli/generators/scaffold/templates/README.md.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/index.d.ts +2 -1
- package/dist/cli/generators/scaffold/templates/index.js +5 -3
- package/dist/cli/generators/scaffold/templates/index.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/package.json.d.ts +7 -2
- package/dist/cli/generators/scaffold/templates/package.json.js +7 -2
- package/dist/cli/generators/scaffold/templates/package.json.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/src/app.test.ts.d.ts +1 -0
- package/dist/cli/generators/scaffold/templates/src/app.test.ts.js +29 -0
- package/dist/cli/generators/scaffold/templates/src/app.test.ts.js.map +1 -0
- package/dist/cli/generators/scaffold/templates/src/app.ts.d.ts +1 -0
- package/dist/cli/generators/scaffold/templates/src/app.ts.js +15 -0
- package/dist/cli/generators/scaffold/templates/src/app.ts.js.map +1 -0
- package/dist/cli/generators/scaffold/templates/src/main.ts.js +3 -10
- package/dist/cli/generators/scaffold/templates/src/main.ts.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/tsconfig.json.d.ts +2 -0
- package/dist/cli/generators/scaffold/templates/tsconfig.json.js +2 -0
- package/dist/cli/generators/scaffold/templates/tsconfig.json.js.map +1 -1
- package/dist/cli/generators/scaffold.js +2 -1
- package/dist/cli/generators/scaffold.js.map +1 -1
- package/dist/cli.js +0 -0
- package/dist/docs/packageDocs.d.ts +16 -0
- package/dist/docs/packageDocs.js +107 -0
- package/dist/docs/packageDocs.js.map +1 -0
- package/dist/exportDocs.d.ts +10 -0
- package/dist/exportDocs.js +98 -0
- package/dist/exportDocs.js.map +1 -0
- package/dist/generated/resolvers-types.d.ts +114 -29
- package/dist/index.d.ts +4 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/env.d.ts +5 -0
- package/dist/mcp/env.js +30 -1
- package/dist/mcp/env.js.map +1 -1
- package/dist/mcp/help.d.ts +8 -1
- package/dist/mcp/help.js +30 -4
- package/dist/mcp/help.js.map +1 -1
- package/dist/mcp/http.js +10 -0
- package/dist/mcp/http.js.map +1 -1
- package/dist/mcp/projectOverview.js +13 -4
- package/dist/mcp/projectOverview.js.map +1 -1
- package/dist/mcp/snapshot.d.ts +22 -0
- package/dist/mcp/snapshot.js +347 -0
- package/dist/mcp/snapshot.js.map +1 -0
- package/dist/mcp/tools/graphql.mutation.js +4 -1
- package/dist/mcp/tools/graphql.mutation.js.map +1 -1
- package/dist/mcp/tools/graphql.ping.js +1 -1
- package/dist/mcp/tools/graphql.ping.js.map +1 -1
- package/dist/mcp/tools/graphql.query.js +1 -1
- package/dist/mcp/tools/graphql.query.js.map +1 -1
- package/dist/mcp/tools/help.read.js +7 -5
- package/dist/mcp/tools/help.read.js.map +1 -1
- package/dist/mcp/tools/help.runner.js +3 -1
- package/dist/mcp/tools/help.runner.js.map +1 -1
- package/dist/mcp/tools/help.runnerDev.js +4 -4
- package/dist/mcp/tools/help.runnerDev.js.map +1 -1
- package/dist/mcp.js +4 -9
- package/dist/mcp.js.map +1 -1
- package/dist/resources/docsPayload.d.ts +33 -0
- package/dist/resources/docsPayload.js +171 -0
- package/dist/resources/docsPayload.js.map +1 -0
- package/dist/resources/docsUiAssets.d.ts +27 -0
- package/dist/resources/docsUiAssets.js +150 -0
- package/dist/resources/docsUiAssets.js.map +1 -0
- package/dist/resources/graphql-accumulator.resource.d.ts +1 -0
- package/dist/resources/graphql-accumulator.resource.js +30 -26
- package/dist/resources/graphql-accumulator.resource.js.map +1 -1
- package/dist/resources/live.resource.js +1 -1
- package/dist/resources/live.resource.js.map +1 -1
- package/dist/resources/models/Introspector.d.ts +12 -0
- package/dist/resources/models/Introspector.js +51 -28
- package/dist/resources/models/Introspector.js.map +1 -1
- package/dist/resources/models/initializeFromStore.js +5 -5
- package/dist/resources/models/initializeFromStore.js.map +1 -1
- package/dist/resources/models/initializeFromStore.utils.d.ts +2 -2
- package/dist/resources/models/initializeFromStore.utils.js +395 -68
- package/dist/resources/models/initializeFromStore.utils.js.map +1 -1
- package/dist/resources/models/introspector.tools.js +88 -4
- package/dist/resources/models/introspector.tools.js.map +1 -1
- package/dist/resources/routeHandlers/createDocsServeHandler.js +13 -37
- package/dist/resources/routeHandlers/createDocsServeHandler.js.map +1 -1
- package/dist/resources/routeHandlers/getDocsData.d.ts +1 -6
- package/dist/resources/routeHandlers/getDocsData.js +10 -168
- package/dist/resources/routeHandlers/getDocsData.js.map +1 -1
- package/dist/resources/server.resource.js +0 -1
- package/dist/resources/server.resource.js.map +1 -1
- package/dist/resources/ui.static.js +4 -9
- package/dist/resources/ui.static.js.map +1 -1
- package/dist/schema/model.d.ts +18 -0
- package/dist/schema/model.js +14 -0
- package/dist/schema/model.js.map +1 -1
- package/dist/schema/query.js +3 -3
- package/dist/schema/query.js.map +1 -1
- package/dist/schema/types/AllType.js +2 -21
- package/dist/schema/types/AllType.js.map +1 -1
- package/dist/schema/types/ErrorType.js +1 -3
- package/dist/schema/types/ErrorType.js.map +1 -1
- package/dist/schema/types/EventType.js +6 -19
- package/dist/schema/types/EventType.js.map +1 -1
- package/dist/schema/types/HookType.js +4 -16
- package/dist/schema/types/HookType.js.map +1 -1
- package/dist/schema/types/ResourceType.js +50 -23
- package/dist/schema/types/ResourceType.js.map +1 -1
- package/dist/schema/types/TaskLikeCommon.js +2 -2
- package/dist/schema/types/TaskLikeCommon.js.map +1 -1
- package/dist/schema/types/TaskType.js +6 -19
- package/dist/schema/types/TaskType.js.map +1 -1
- package/dist/schema/types/middleware/UsageTypes.d.ts +1 -0
- package/dist/schema/types/middleware/UsageTypes.js +16 -5
- package/dist/schema/types/middleware/UsageTypes.js.map +1 -1
- package/dist/schema/types/middleware/common.js +2 -2
- package/dist/schema/types/middleware/common.js.map +1 -1
- package/dist/ui/.vite/manifest.json +2 -2
- package/dist/ui/assets/docs-Beb_xRuE.js +304 -0
- package/dist/ui/assets/docs-Beb_xRuE.js.map +1 -0
- package/dist/ui/assets/docs-lid1amCk.css +1 -0
- package/dist/ui/docs/favicon.ico +0 -0
- package/dist/utils/lane-resources.d.ts +69 -0
- package/dist/utils/lane-resources.js +145 -0
- package/dist/utils/lane-resources.js.map +1 -1
- package/dist/utils/runner-namespace.d.ts +1 -0
- package/dist/utils/runner-namespace.js +9 -0
- package/dist/utils/runner-namespace.js.map +1 -0
- package/dist/utils/schemaFormat.d.ts +6 -0
- package/dist/utils/schemaFormat.js +244 -0
- package/dist/utils/schemaFormat.js.map +1 -0
- package/dist/utils/system-namespace.d.ts +1 -0
- package/dist/utils/system-namespace.js +9 -0
- package/dist/utils/system-namespace.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +21 -5
- package/readmes/API_REFERENCE.md +364 -0
- package/readmes/COMPACT_GUIDE.md +254 -0
- package/skills/core/SKILL.md +27 -0
- package/skills/core/references/readmes/API_REFERENCE.md +364 -0
- package/skills/core/references/readmes/COMPACT_GUIDE.md +254 -0
- package/AI.md +0 -630
- package/dist/ui/assets/docs-CWJO6emS.css +0 -1
- package/dist/ui/assets/docs-Zej7hPlV.js +0 -302
- package/dist/ui/assets/docs-Zej7hPlV.js.map +0 -1
- package/readmes/runner-AI.md +0 -917
- package/readmes/runner-durable-workflows.md +0 -2247
- package/readmes/runner-full-guide.md +0 -6010
- package/readmes/runner-remote-lanes.md +0 -910
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PackageDocNotFoundError = exports.RUNNER_FRAMEWORK_COMPLETE_DOC_PATHS = exports.RUNNER_FRAMEWORK_COMPACT_DOC_PATHS = void 0;
|
|
7
|
+
exports.readPackageDoc = readPackageDoc;
|
|
8
|
+
exports.readFirstAvailablePackageDoc = readFirstAvailablePackageDoc;
|
|
9
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
const path_1 = require("../utils/path");
|
|
12
|
+
exports.RUNNER_FRAMEWORK_COMPACT_DOC_PATHS = [
|
|
13
|
+
"readmes/COMPACT_GUIDE.md",
|
|
14
|
+
];
|
|
15
|
+
exports.RUNNER_FRAMEWORK_COMPLETE_DOC_PATHS = [
|
|
16
|
+
"readmes/FULL_GUIDE.md",
|
|
17
|
+
];
|
|
18
|
+
const PACKAGE_NAME_PATTERN = /^(?:@[a-z0-9_.-]+\/)?[a-z0-9_.-]+$/i;
|
|
19
|
+
const PACKAGE_DOC_ROOTS_BY_PACKAGE = {
|
|
20
|
+
"@bluelibs/runner": [
|
|
21
|
+
".agents/skills/bluelibs-runner-core/references",
|
|
22
|
+
"node_modules/@bluelibs/runner",
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
class PackageDocNotFoundError extends Error {
|
|
26
|
+
attemptedPaths;
|
|
27
|
+
constructor(packageName, docPaths, attemptedPaths) {
|
|
28
|
+
super(`Required package docs for ${packageName} were not found. Tried: ${docPaths.join(", ")}`);
|
|
29
|
+
this.attemptedPaths = attemptedPaths;
|
|
30
|
+
this.name = "PackageDocNotFoundError";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.PackageDocNotFoundError = PackageDocNotFoundError;
|
|
34
|
+
function isMissingFileError(error) {
|
|
35
|
+
return (typeof error === "object" &&
|
|
36
|
+
error !== null &&
|
|
37
|
+
"code" in error &&
|
|
38
|
+
error.code === "ENOENT");
|
|
39
|
+
}
|
|
40
|
+
function normalizeDocPath(docPath) {
|
|
41
|
+
const normalized = node_path_1.default.posix.normalize(docPath.replaceAll("\\", "/"));
|
|
42
|
+
if (!normalized ||
|
|
43
|
+
normalized === "." ||
|
|
44
|
+
normalized.startsWith("../") ||
|
|
45
|
+
normalized === ".." ||
|
|
46
|
+
node_path_1.default.posix.isAbsolute(normalized)) {
|
|
47
|
+
return "README.md";
|
|
48
|
+
}
|
|
49
|
+
return normalized;
|
|
50
|
+
}
|
|
51
|
+
function getPackageDocCandidatePaths(root, packageName, normalizedDocPath) {
|
|
52
|
+
const configuredRoots = PACKAGE_DOC_ROOTS_BY_PACKAGE[packageName];
|
|
53
|
+
if (configuredRoots?.length) {
|
|
54
|
+
return configuredRoots.map((configuredRoot) => node_path_1.default.join(root, configuredRoot, normalizedDocPath));
|
|
55
|
+
}
|
|
56
|
+
const packageRoot = node_path_1.default.join(root, "node_modules", packageName);
|
|
57
|
+
return [node_path_1.default.join(packageRoot, normalizedDocPath)];
|
|
58
|
+
}
|
|
59
|
+
async function readPackageDoc(packageName, docPath = "README.md") {
|
|
60
|
+
if (!PACKAGE_NAME_PATTERN.test(packageName)) {
|
|
61
|
+
return {
|
|
62
|
+
packageName,
|
|
63
|
+
filePath: packageName,
|
|
64
|
+
content: "",
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const root = process.cwd();
|
|
68
|
+
const normalizedDocPath = normalizeDocPath(docPath);
|
|
69
|
+
const candidatePaths = getPackageDocCandidatePaths(root, packageName, normalizedDocPath);
|
|
70
|
+
let lastTriedPath = candidatePaths[0];
|
|
71
|
+
for (const candidatePath of candidatePaths) {
|
|
72
|
+
lastTriedPath = candidatePath;
|
|
73
|
+
try {
|
|
74
|
+
const content = await promises_1.default.readFile(candidatePath, "utf8");
|
|
75
|
+
return {
|
|
76
|
+
packageName,
|
|
77
|
+
filePath: (0, path_1.sanitizePath)(candidatePath) ?? candidatePath,
|
|
78
|
+
content,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
if (!isMissingFileError(error)) {
|
|
83
|
+
throw error;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
packageName,
|
|
89
|
+
filePath: (0, path_1.sanitizePath)(lastTriedPath) ?? lastTriedPath,
|
|
90
|
+
content: "",
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
async function readFirstAvailablePackageDoc(packageName, docPaths) {
|
|
94
|
+
const attemptedPaths = [];
|
|
95
|
+
for (const docPath of docPaths) {
|
|
96
|
+
if (!docPath) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const doc = await readPackageDoc(packageName, docPath);
|
|
100
|
+
attemptedPaths.push(doc.filePath);
|
|
101
|
+
if (doc.content) {
|
|
102
|
+
return doc;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
throw new PackageDocNotFoundError(packageName, docPaths, attemptedPaths);
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=packageDocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageDocs.js","sourceRoot":"","sources":["../../src/docs/packageDocs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type ExportDocsOptions = {
|
|
2
|
+
output?: string;
|
|
3
|
+
overwrite?: boolean;
|
|
4
|
+
};
|
|
5
|
+
export type ExportDocsResult = {
|
|
6
|
+
outputDir: string;
|
|
7
|
+
entryHtmlPath: string;
|
|
8
|
+
snapshotPath: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function exportDocs(app: unknown, options?: ExportDocsOptions): Promise<ExportDocsResult>;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.exportDocs = exportDocs;
|
|
7
|
+
const runner_1 = require("@bluelibs/runner");
|
|
8
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const printSchema_1 = require("graphql/utilities/printSchema");
|
|
11
|
+
const docsPayload_1 = require("./resources/docsPayload");
|
|
12
|
+
const graphql_accumulator_resource_1 = require("./resources/graphql-accumulator.resource");
|
|
13
|
+
const Introspector_1 = require("./resources/models/Introspector");
|
|
14
|
+
const docsUiAssets_1 = require("./resources/docsUiAssets");
|
|
15
|
+
function resolveOutputDir(output) {
|
|
16
|
+
const resolved = output ?? "./runner-dev-catalog";
|
|
17
|
+
return node_path_1.default.isAbsolute(resolved)
|
|
18
|
+
? resolved
|
|
19
|
+
: node_path_1.default.resolve(process.cwd(), resolved);
|
|
20
|
+
}
|
|
21
|
+
function isDefaultOutputDir(outputDir) {
|
|
22
|
+
return outputDir === resolveOutputDir("./runner-dev-catalog");
|
|
23
|
+
}
|
|
24
|
+
function isDangerousOutputDir(outputDir) {
|
|
25
|
+
const cwd = node_path_1.default.resolve(process.cwd());
|
|
26
|
+
const parentDir = node_path_1.default.resolve(cwd, "..");
|
|
27
|
+
const homeDir = node_path_1.default.resolve(process.env.HOME || "~");
|
|
28
|
+
const rootDir = node_path_1.default.parse(outputDir).root;
|
|
29
|
+
return [cwd, parentDir, homeDir, rootDir].includes(outputDir);
|
|
30
|
+
}
|
|
31
|
+
async function assertOutputDirIsSafe(outputDir, options) {
|
|
32
|
+
if (isDangerousOutputDir(outputDir)) {
|
|
33
|
+
throw new Error(`Refusing to export Runner-Dev docs into '${outputDir}' because that path is too broad. Pick a dedicated directory instead.`);
|
|
34
|
+
}
|
|
35
|
+
let entries = null;
|
|
36
|
+
try {
|
|
37
|
+
entries = await promises_1.default.readdir(outputDir);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (entries.length === 0) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const canOverwrite = options.overwrite === true || isDefaultOutputDir(outputDir);
|
|
46
|
+
if (!canOverwrite) {
|
|
47
|
+
throw new Error(`Refusing to overwrite the non-empty export directory '${outputDir}'. Pass { overwrite: true } or choose a dedicated path.`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async function exportDocs(app, options = {}) {
|
|
51
|
+
const outputDir = resolveOutputDir(options.output);
|
|
52
|
+
const entryHtmlPath = node_path_1.default.join(outputDir, "index.html");
|
|
53
|
+
const snapshotPath = node_path_1.default.join(outputDir, "snapshot.json");
|
|
54
|
+
const uiAssets = await (0, docsUiAssets_1.resolveDocsBuildAssets)();
|
|
55
|
+
const dryRuntime = await (0, runner_1.run)(app, {
|
|
56
|
+
dryRun: true,
|
|
57
|
+
logs: { printThreshold: null },
|
|
58
|
+
});
|
|
59
|
+
try {
|
|
60
|
+
const store = await dryRuntime.getResourceValue(runner_1.resources.store);
|
|
61
|
+
const runtime = await dryRuntime.getResourceValue(runner_1.resources.runtime);
|
|
62
|
+
const introspector = new Introspector_1.Introspector({ store, runtime });
|
|
63
|
+
const graphqlSdl = (0, printSchema_1.printSchema)((0, graphql_accumulator_resource_1.createRunnerDevGraphqlSchema)());
|
|
64
|
+
const payload = await (0, docsPayload_1.buildDocsPagePayload)({
|
|
65
|
+
store,
|
|
66
|
+
introspector,
|
|
67
|
+
mode: "catalog",
|
|
68
|
+
getGraphqlSdl: () => graphqlSdl,
|
|
69
|
+
});
|
|
70
|
+
if (!payload.graphqlSdl || payload.graphqlSdl.trim().length === 0) {
|
|
71
|
+
throw new Error("Runner-Dev export could not generate graphqlSdl for the snapshot payload.");
|
|
72
|
+
}
|
|
73
|
+
await assertOutputDirIsSafe(outputDir, options);
|
|
74
|
+
await promises_1.default.rm(outputDir, { recursive: true, force: true });
|
|
75
|
+
await promises_1.default.mkdir(node_path_1.default.dirname(outputDir), { recursive: true });
|
|
76
|
+
await promises_1.default.mkdir(outputDir, { recursive: true });
|
|
77
|
+
await promises_1.default.writeFile(snapshotPath, JSON.stringify(payload, null, 2), "utf8");
|
|
78
|
+
await promises_1.default.writeFile(entryHtmlPath, await (0, docsUiAssets_1.renderStandaloneDocsHtml)({
|
|
79
|
+
uiDir: uiAssets.uiDir,
|
|
80
|
+
entry: uiAssets.entry,
|
|
81
|
+
payload,
|
|
82
|
+
}), "utf8");
|
|
83
|
+
return {
|
|
84
|
+
outputDir,
|
|
85
|
+
entryHtmlPath,
|
|
86
|
+
snapshotPath,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
finally {
|
|
90
|
+
try {
|
|
91
|
+
await dryRuntime.dispose();
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
/* best-effort cleanup */
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=exportDocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportDocs.js","sourceRoot":"","sources":["../src/exportDocs.ts"],"names":[],"mappings":";;;;;AA0EA,gCA4DC;AAtID,6CAAqE;AACrE,gEAAkC;AAClC,0DAA6B;AAC7B,+DAA4D;AAC5D,yDAA+D;AAC/D,2FAAwF;AACxF,kEAA+D;AAC/D,2DAGkC;AAalC,SAAS,gBAAgB,CAAC,MAAe;IACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,sBAAsB,CAAC;IAClD,OAAO,mBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC9B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,OAAO,SAAS,KAAK,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,mBAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;IAE3C,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAChE,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,SAAiB,EACjB,OAA0B;IAE1B,IAAI,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,4CAA4C,SAAS,uEAAuE,CAC7H,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAoB,IAAI,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAChB,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAE9D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,yDAAyD,SAAS,yDAAyD,CAC5H,CAAC;IACJ,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,GAAY,EACZ,UAA6B,EAAE;IAE/B,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,MAAM,IAAA,qCAAsB,GAAE,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,IAAA,YAAG,EAAC,GAAU,EAAE;QACvC,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;KAC/B,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,kBAAe,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,kBAAe,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,IAAI,2BAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAA,yBAAW,EAAC,IAAA,2DAA4B,GAAE,CAAC,CAAC;QAE/D,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAoB,EAAC;YACzC,KAAK;YACL,YAAY;YACZ,IAAI,EAAE,SAAS;YACf,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QAED,MAAM,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,kBAAE,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,kBAAE,CAAC,KAAK,CAAC,mBAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,kBAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,kBAAE,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3E,MAAM,kBAAE,CAAC,SAAS,CAChB,aAAa,EACb,MAAM,IAAA,uCAAwB,EAAC;YAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,OAAO;SACR,CAAC,EACF,MAAM,CACP,CAAC;QAEF,OAAO;YACL,SAAS;YACT,aAAa;YACb,YAAY;SACb,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -280,7 +280,7 @@ export type Event = BaseElement & {
|
|
|
280
280
|
emittedBy: Array<Scalars['String']['output']>;
|
|
281
281
|
/** Nodes that emit this event (resolved). Can be Task, Hook or Resource. */
|
|
282
282
|
emittedByResolved: Array<BaseElement>;
|
|
283
|
-
/** Event lane summary derived from
|
|
283
|
+
/** Event lane summary derived from Event Lane applyTo() assignments when present. */
|
|
284
284
|
eventLane: Maybe<EventLaneSummary>;
|
|
285
285
|
/** Contents of the file at filePath (if accessible). Optionally slice by 1-based inclusive line numbers via startLine/endLine. Caution: avoid querying this in bulk; prefer fetching one file at a time. */
|
|
286
286
|
fileContents: Maybe<Scalars['String']['output']>;
|
|
@@ -327,7 +327,7 @@ export type EventFileContentsArgs = {
|
|
|
327
327
|
export type EventFilterInput = {
|
|
328
328
|
/** When true, only events without hooks are returned. */
|
|
329
329
|
hasNoHooks: InputMaybe<Scalars['Boolean']['input']>;
|
|
330
|
-
/** When true, hides
|
|
330
|
+
/** When true, hides system namespace events (`system` / `system.*`). */
|
|
331
331
|
hideSystem: InputMaybe<Scalars['Boolean']['input']>;
|
|
332
332
|
/** Return only events whose id contains this substring. */
|
|
333
333
|
idIncludes: InputMaybe<Scalars['String']['input']>;
|
|
@@ -675,15 +675,17 @@ export type MiddlewareInterceptorOwnersSnapshot = {
|
|
|
675
675
|
};
|
|
676
676
|
export type MiddlewareResourceUsage = {
|
|
677
677
|
__typename?: 'MiddlewareResourceUsage';
|
|
678
|
-
config: Maybe<Scalars['
|
|
678
|
+
config: Maybe<Scalars['String']['output']>;
|
|
679
679
|
id: Scalars['ID']['output'];
|
|
680
680
|
node: Resource;
|
|
681
681
|
};
|
|
682
682
|
export type MiddlewareTaskUsage = {
|
|
683
683
|
__typename?: 'MiddlewareTaskUsage';
|
|
684
|
-
config: Maybe<Scalars['
|
|
684
|
+
config: Maybe<Scalars['String']['output']>;
|
|
685
685
|
id: Scalars['ID']['output'];
|
|
686
|
-
node:
|
|
686
|
+
node: BaseElement;
|
|
687
|
+
origin: Maybe<Scalars['String']['output']>;
|
|
688
|
+
subtreeOwnerId: Maybe<Scalars['ID']['output']>;
|
|
687
689
|
};
|
|
688
690
|
/** Kinds of executable nodes */
|
|
689
691
|
export type NodeKindEnum = 'HOOK' | 'TASK';
|
|
@@ -858,7 +860,7 @@ export type Resource = BaseElement & {
|
|
|
858
860
|
/** Middlewares applied to this resource (resolved) */
|
|
859
861
|
middlewareResolved: Array<ResourceMiddleware>;
|
|
860
862
|
/** Middlewares applied to this resource with per-usage config */
|
|
861
|
-
middlewareResolvedDetailed: Array<
|
|
863
|
+
middlewareResolvedDetailed: Array<ResourceMiddlewareUsage>;
|
|
862
864
|
/** Ids of items this resource overrides */
|
|
863
865
|
overrides: Array<Scalars['String']['output']>;
|
|
864
866
|
/** The registerable items this resource overrides (resolved) */
|
|
@@ -968,20 +970,49 @@ export type ResourceMiddlewareFileContentsArgs = {
|
|
|
968
970
|
endLine: InputMaybe<Scalars['Int']['input']>;
|
|
969
971
|
startLine: InputMaybe<Scalars['Int']['input']>;
|
|
970
972
|
};
|
|
971
|
-
export type
|
|
972
|
-
__typename?: '
|
|
973
|
-
|
|
974
|
-
|
|
973
|
+
export type ResourceMiddlewareUsage = {
|
|
974
|
+
__typename?: 'ResourceMiddlewareUsage';
|
|
975
|
+
config: Maybe<Scalars['String']['output']>;
|
|
976
|
+
id: Scalars['ID']['output'];
|
|
977
|
+
node: ResourceMiddleware;
|
|
978
|
+
};
|
|
979
|
+
export type ResourceSubtreeIdentityRequirement = {
|
|
980
|
+
__typename?: 'ResourceSubtreeIdentityRequirement';
|
|
981
|
+
roles: Array<Scalars['String']['output']>;
|
|
982
|
+
tenant: Scalars['Boolean']['output'];
|
|
983
|
+
user: Scalars['Boolean']['output'];
|
|
984
|
+
};
|
|
985
|
+
export type ResourceSubtreeIdentityScope = {
|
|
986
|
+
__typename?: 'ResourceSubtreeIdentityScope';
|
|
987
|
+
required: Scalars['Boolean']['output'];
|
|
988
|
+
tenant: Scalars['Boolean']['output'];
|
|
989
|
+
user: Scalars['Boolean']['output'];
|
|
990
|
+
};
|
|
991
|
+
export type ResourceSubtreeMiddlewareScope = {
|
|
992
|
+
__typename?: 'ResourceSubtreeMiddlewareScope';
|
|
993
|
+
identityScope: Maybe<ResourceSubtreeIdentityScope>;
|
|
975
994
|
};
|
|
976
995
|
export type ResourceSubtreePolicy = {
|
|
977
996
|
__typename?: 'ResourceSubtreePolicy';
|
|
978
997
|
events: Maybe<ResourceSubtreeValidationBranch>;
|
|
979
998
|
hooks: Maybe<ResourceSubtreeValidationBranch>;
|
|
999
|
+
middleware: Maybe<ResourceSubtreeMiddlewareScope>;
|
|
980
1000
|
resourceMiddleware: Maybe<ResourceSubtreeValidationBranch>;
|
|
981
|
-
resources: Maybe<
|
|
1001
|
+
resources: Maybe<ResourceSubtreeResourceBranch>;
|
|
982
1002
|
tags: Maybe<ResourceSubtreeValidationBranch>;
|
|
983
1003
|
taskMiddleware: Maybe<ResourceSubtreeValidationBranch>;
|
|
984
|
-
tasks: Maybe<
|
|
1004
|
+
tasks: Maybe<ResourceSubtreeTaskBranch>;
|
|
1005
|
+
};
|
|
1006
|
+
export type ResourceSubtreeResourceBranch = {
|
|
1007
|
+
__typename?: 'ResourceSubtreeResourceBranch';
|
|
1008
|
+
middleware: Array<Scalars['String']['output']>;
|
|
1009
|
+
validatorCount: Scalars['Int']['output'];
|
|
1010
|
+
};
|
|
1011
|
+
export type ResourceSubtreeTaskBranch = {
|
|
1012
|
+
__typename?: 'ResourceSubtreeTaskBranch';
|
|
1013
|
+
identity: Array<ResourceSubtreeIdentityRequirement>;
|
|
1014
|
+
middleware: Array<Scalars['String']['output']>;
|
|
1015
|
+
validatorCount: Scalars['Int']['output'];
|
|
985
1016
|
};
|
|
986
1017
|
export type ResourceSubtreeValidationBranch = {
|
|
987
1018
|
__typename?: 'ResourceSubtreeValidationBranch';
|
|
@@ -1288,6 +1319,8 @@ export type TaskMiddlewareUsage = {
|
|
|
1288
1319
|
config: Maybe<Scalars['String']['output']>;
|
|
1289
1320
|
id: Scalars['ID']['output'];
|
|
1290
1321
|
node: TaskMiddleware;
|
|
1322
|
+
origin: Maybe<Scalars['String']['output']>;
|
|
1323
|
+
subtreeOwnerId: Maybe<Scalars['ID']['output']>;
|
|
1291
1324
|
};
|
|
1292
1325
|
export type WithIndex<TObject> = TObject & Record<string, any>;
|
|
1293
1326
|
export type ResolversObject<TObject> = WithIndex<TObject>;
|
|
@@ -1359,7 +1392,7 @@ export type ResolversInterfaceTypes<_RefType extends Record<string, unknown>> =
|
|
|
1359
1392
|
dependsOnResolved: Array<_RefType['Resource']>;
|
|
1360
1393
|
emits: Array<_RefType['Event']>;
|
|
1361
1394
|
middlewareResolved: Array<_RefType['ResourceMiddleware']>;
|
|
1362
|
-
middlewareResolvedDetailed: Array<_RefType['
|
|
1395
|
+
middlewareResolvedDetailed: Array<_RefType['ResourceMiddlewareUsage']>;
|
|
1363
1396
|
overridesResolved: Array<_RefType['BaseElement']>;
|
|
1364
1397
|
registeredByResolved: Maybe<_RefType['Resource']>;
|
|
1365
1398
|
registersResolved: Array<_RefType['BaseElement']>;
|
|
@@ -1496,7 +1529,7 @@ export type ResolversTypes = ResolversObject<{
|
|
|
1496
1529
|
node: ResolversTypes['Resource'];
|
|
1497
1530
|
}>;
|
|
1498
1531
|
MiddlewareTaskUsage: ResolverTypeWrapper<Omit<MiddlewareTaskUsage, 'node'> & {
|
|
1499
|
-
node: ResolversTypes['
|
|
1532
|
+
node: ResolversTypes['BaseElement'];
|
|
1500
1533
|
}>;
|
|
1501
1534
|
NodeKindEnum: NodeKindEnum;
|
|
1502
1535
|
Query: ResolverTypeWrapper<{}>;
|
|
@@ -1504,7 +1537,7 @@ export type ResolversTypes = ResolversObject<{
|
|
|
1504
1537
|
dependsOnResolved: Array<ResolversTypes['Resource']>;
|
|
1505
1538
|
emits: Array<ResolversTypes['Event']>;
|
|
1506
1539
|
middlewareResolved: Array<ResolversTypes['ResourceMiddleware']>;
|
|
1507
|
-
middlewareResolvedDetailed: Array<ResolversTypes['
|
|
1540
|
+
middlewareResolvedDetailed: Array<ResolversTypes['ResourceMiddlewareUsage']>;
|
|
1508
1541
|
overridesResolved: Array<ResolversTypes['BaseElement']>;
|
|
1509
1542
|
registeredByResolved: Maybe<ResolversTypes['Resource']>;
|
|
1510
1543
|
registersResolved: Array<ResolversTypes['BaseElement']>;
|
|
@@ -1524,8 +1557,15 @@ export type ResolversTypes = ResolversObject<{
|
|
|
1524
1557
|
usedBy: Array<ResolversTypes['Resource']>;
|
|
1525
1558
|
usedByDetailed: Array<ResolversTypes['MiddlewareResourceUsage']>;
|
|
1526
1559
|
}>;
|
|
1527
|
-
|
|
1560
|
+
ResourceMiddlewareUsage: ResolverTypeWrapper<Omit<ResourceMiddlewareUsage, 'node'> & {
|
|
1561
|
+
node: ResolversTypes['ResourceMiddleware'];
|
|
1562
|
+
}>;
|
|
1563
|
+
ResourceSubtreeIdentityRequirement: ResolverTypeWrapper<ResourceSubtreeIdentityRequirement>;
|
|
1564
|
+
ResourceSubtreeIdentityScope: ResolverTypeWrapper<ResourceSubtreeIdentityScope>;
|
|
1565
|
+
ResourceSubtreeMiddlewareScope: ResolverTypeWrapper<ResourceSubtreeMiddlewareScope>;
|
|
1528
1566
|
ResourceSubtreePolicy: ResolverTypeWrapper<ResourceSubtreePolicy>;
|
|
1567
|
+
ResourceSubtreeResourceBranch: ResolverTypeWrapper<ResourceSubtreeResourceBranch>;
|
|
1568
|
+
ResourceSubtreeTaskBranch: ResolverTypeWrapper<ResourceSubtreeTaskBranch>;
|
|
1529
1569
|
ResourceSubtreeValidationBranch: ResolverTypeWrapper<ResourceSubtreeValidationBranch>;
|
|
1530
1570
|
RpcLaneSummary: ResolverTypeWrapper<RpcLaneSummary>;
|
|
1531
1571
|
RunDisposeOptions: ResolverTypeWrapper<RunDisposeOptions>;
|
|
@@ -1674,14 +1714,14 @@ export type ResolversParentTypes = ResolversObject<{
|
|
|
1674
1714
|
node: ResolversParentTypes['Resource'];
|
|
1675
1715
|
};
|
|
1676
1716
|
MiddlewareTaskUsage: Omit<MiddlewareTaskUsage, 'node'> & {
|
|
1677
|
-
node: ResolversParentTypes['
|
|
1717
|
+
node: ResolversParentTypes['BaseElement'];
|
|
1678
1718
|
};
|
|
1679
1719
|
Query: {};
|
|
1680
1720
|
Resource: Omit<Resource, 'dependsOnResolved' | 'emits' | 'middlewareResolved' | 'middlewareResolvedDetailed' | 'overridesResolved' | 'registeredByResolved' | 'registersResolved' | 'tags' | 'usedBy'> & {
|
|
1681
1721
|
dependsOnResolved: Array<ResolversParentTypes['Resource']>;
|
|
1682
1722
|
emits: Array<ResolversParentTypes['Event']>;
|
|
1683
1723
|
middlewareResolved: Array<ResolversParentTypes['ResourceMiddleware']>;
|
|
1684
|
-
middlewareResolvedDetailed: Array<ResolversParentTypes['
|
|
1724
|
+
middlewareResolvedDetailed: Array<ResolversParentTypes['ResourceMiddlewareUsage']>;
|
|
1685
1725
|
overridesResolved: Array<ResolversParentTypes['BaseElement']>;
|
|
1686
1726
|
registeredByResolved: Maybe<ResolversParentTypes['Resource']>;
|
|
1687
1727
|
registersResolved: Array<ResolversParentTypes['BaseElement']>;
|
|
@@ -1700,8 +1740,15 @@ export type ResolversParentTypes = ResolversObject<{
|
|
|
1700
1740
|
usedBy: Array<ResolversParentTypes['Resource']>;
|
|
1701
1741
|
usedByDetailed: Array<ResolversParentTypes['MiddlewareResourceUsage']>;
|
|
1702
1742
|
};
|
|
1703
|
-
|
|
1743
|
+
ResourceMiddlewareUsage: Omit<ResourceMiddlewareUsage, 'node'> & {
|
|
1744
|
+
node: ResolversParentTypes['ResourceMiddleware'];
|
|
1745
|
+
};
|
|
1746
|
+
ResourceSubtreeIdentityRequirement: ResourceSubtreeIdentityRequirement;
|
|
1747
|
+
ResourceSubtreeIdentityScope: ResourceSubtreeIdentityScope;
|
|
1748
|
+
ResourceSubtreeMiddlewareScope: ResourceSubtreeMiddlewareScope;
|
|
1704
1749
|
ResourceSubtreePolicy: ResourceSubtreePolicy;
|
|
1750
|
+
ResourceSubtreeResourceBranch: ResourceSubtreeResourceBranch;
|
|
1751
|
+
ResourceSubtreeTaskBranch: ResourceSubtreeTaskBranch;
|
|
1705
1752
|
ResourceSubtreeValidationBranch: ResourceSubtreeValidationBranch;
|
|
1706
1753
|
RpcLaneSummary: RpcLaneSummary;
|
|
1707
1754
|
RunDisposeOptions: RunDisposeOptions;
|
|
@@ -2085,15 +2132,17 @@ export type MiddlewareInterceptorOwnersSnapshotResolvers<ContextType = CustomGra
|
|
|
2085
2132
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
2086
2133
|
}>;
|
|
2087
2134
|
export type MiddlewareResourceUsageResolvers<ContextType = CustomGraphQLContext, ParentType extends ResolversParentTypes['MiddlewareResourceUsage'] = ResolversParentTypes['MiddlewareResourceUsage']> = ResolversObject<{
|
|
2088
|
-
config: Resolver<Maybe<ResolversTypes['
|
|
2135
|
+
config: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
2089
2136
|
id: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
|
|
2090
2137
|
node: Resolver<ResolversTypes['Resource'], ParentType, ContextType>;
|
|
2091
2138
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
2092
2139
|
}>;
|
|
2093
2140
|
export type MiddlewareTaskUsageResolvers<ContextType = CustomGraphQLContext, ParentType extends ResolversParentTypes['MiddlewareTaskUsage'] = ResolversParentTypes['MiddlewareTaskUsage']> = ResolversObject<{
|
|
2094
|
-
config: Resolver<Maybe<ResolversTypes['
|
|
2141
|
+
config: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
2095
2142
|
id: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
|
|
2096
|
-
node: Resolver<ResolversTypes['
|
|
2143
|
+
node: Resolver<ResolversTypes['BaseElement'], ParentType, ContextType>;
|
|
2144
|
+
origin: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
2145
|
+
subtreeOwnerId: Resolver<Maybe<ResolversTypes['ID']>, ParentType, ContextType>;
|
|
2097
2146
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
2098
2147
|
}>;
|
|
2099
2148
|
export type QueryResolvers<ContextType = CustomGraphQLContext, ParentType extends ResolversParentTypes['Query'] = ResolversParentTypes['Query']> = ResolversObject<{
|
|
@@ -2145,7 +2194,7 @@ export type ResourceResolvers<ContextType = CustomGraphQLContext, ParentType ext
|
|
|
2145
2194
|
meta: Resolver<Maybe<ResolversTypes['Meta']>, ParentType, ContextType>;
|
|
2146
2195
|
middleware: Resolver<Array<ResolversTypes['String']>, ParentType, ContextType>;
|
|
2147
2196
|
middlewareResolved: Resolver<Array<ResolversTypes['ResourceMiddleware']>, ParentType, ContextType>;
|
|
2148
|
-
middlewareResolvedDetailed: Resolver<Array<ResolversTypes['
|
|
2197
|
+
middlewareResolvedDetailed: Resolver<Array<ResolversTypes['ResourceMiddlewareUsage']>, ParentType, ContextType>;
|
|
2149
2198
|
overrides: Resolver<Array<ResolversTypes['String']>, ParentType, ContextType>;
|
|
2150
2199
|
overridesResolved: Resolver<Array<ResolversTypes['BaseElement']>, ParentType, ContextType>;
|
|
2151
2200
|
registeredBy: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
@@ -2210,19 +2259,48 @@ export type ResourceMiddlewareResolvers<ContextType = CustomGraphQLContext, Pare
|
|
|
2210
2259
|
visibilityReason: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
2211
2260
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
2212
2261
|
}>;
|
|
2213
|
-
export type
|
|
2214
|
-
|
|
2215
|
-
|
|
2262
|
+
export type ResourceMiddlewareUsageResolvers<ContextType = CustomGraphQLContext, ParentType extends ResolversParentTypes['ResourceMiddlewareUsage'] = ResolversParentTypes['ResourceMiddlewareUsage']> = ResolversObject<{
|
|
2263
|
+
config: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
2264
|
+
id: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
|
|
2265
|
+
node: Resolver<ResolversTypes['ResourceMiddleware'], ParentType, ContextType>;
|
|
2266
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
2267
|
+
}>;
|
|
2268
|
+
export type ResourceSubtreeIdentityRequirementResolvers<ContextType = CustomGraphQLContext, ParentType extends ResolversParentTypes['ResourceSubtreeIdentityRequirement'] = ResolversParentTypes['ResourceSubtreeIdentityRequirement']> = ResolversObject<{
|
|
2269
|
+
roles: Resolver<Array<ResolversTypes['String']>, ParentType, ContextType>;
|
|
2270
|
+
tenant: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
|
|
2271
|
+
user: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
|
|
2272
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
2273
|
+
}>;
|
|
2274
|
+
export type ResourceSubtreeIdentityScopeResolvers<ContextType = CustomGraphQLContext, ParentType extends ResolversParentTypes['ResourceSubtreeIdentityScope'] = ResolversParentTypes['ResourceSubtreeIdentityScope']> = ResolversObject<{
|
|
2275
|
+
required: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
|
|
2276
|
+
tenant: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
|
|
2277
|
+
user: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
|
|
2278
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
2279
|
+
}>;
|
|
2280
|
+
export type ResourceSubtreeMiddlewareScopeResolvers<ContextType = CustomGraphQLContext, ParentType extends ResolversParentTypes['ResourceSubtreeMiddlewareScope'] = ResolversParentTypes['ResourceSubtreeMiddlewareScope']> = ResolversObject<{
|
|
2281
|
+
identityScope: Resolver<Maybe<ResolversTypes['ResourceSubtreeIdentityScope']>, ParentType, ContextType>;
|
|
2216
2282
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
2217
2283
|
}>;
|
|
2218
2284
|
export type ResourceSubtreePolicyResolvers<ContextType = CustomGraphQLContext, ParentType extends ResolversParentTypes['ResourceSubtreePolicy'] = ResolversParentTypes['ResourceSubtreePolicy']> = ResolversObject<{
|
|
2219
2285
|
events: Resolver<Maybe<ResolversTypes['ResourceSubtreeValidationBranch']>, ParentType, ContextType>;
|
|
2220
2286
|
hooks: Resolver<Maybe<ResolversTypes['ResourceSubtreeValidationBranch']>, ParentType, ContextType>;
|
|
2287
|
+
middleware: Resolver<Maybe<ResolversTypes['ResourceSubtreeMiddlewareScope']>, ParentType, ContextType>;
|
|
2221
2288
|
resourceMiddleware: Resolver<Maybe<ResolversTypes['ResourceSubtreeValidationBranch']>, ParentType, ContextType>;
|
|
2222
|
-
resources: Resolver<Maybe<ResolversTypes['
|
|
2289
|
+
resources: Resolver<Maybe<ResolversTypes['ResourceSubtreeResourceBranch']>, ParentType, ContextType>;
|
|
2223
2290
|
tags: Resolver<Maybe<ResolversTypes['ResourceSubtreeValidationBranch']>, ParentType, ContextType>;
|
|
2224
2291
|
taskMiddleware: Resolver<Maybe<ResolversTypes['ResourceSubtreeValidationBranch']>, ParentType, ContextType>;
|
|
2225
|
-
tasks: Resolver<Maybe<ResolversTypes['
|
|
2292
|
+
tasks: Resolver<Maybe<ResolversTypes['ResourceSubtreeTaskBranch']>, ParentType, ContextType>;
|
|
2293
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
2294
|
+
}>;
|
|
2295
|
+
export type ResourceSubtreeResourceBranchResolvers<ContextType = CustomGraphQLContext, ParentType extends ResolversParentTypes['ResourceSubtreeResourceBranch'] = ResolversParentTypes['ResourceSubtreeResourceBranch']> = ResolversObject<{
|
|
2296
|
+
middleware: Resolver<Array<ResolversTypes['String']>, ParentType, ContextType>;
|
|
2297
|
+
validatorCount: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
|
|
2298
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
2299
|
+
}>;
|
|
2300
|
+
export type ResourceSubtreeTaskBranchResolvers<ContextType = CustomGraphQLContext, ParentType extends ResolversParentTypes['ResourceSubtreeTaskBranch'] = ResolversParentTypes['ResourceSubtreeTaskBranch']> = ResolversObject<{
|
|
2301
|
+
identity: Resolver<Array<ResolversTypes['ResourceSubtreeIdentityRequirement']>, ParentType, ContextType>;
|
|
2302
|
+
middleware: Resolver<Array<ResolversTypes['String']>, ParentType, ContextType>;
|
|
2303
|
+
validatorCount: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
|
|
2226
2304
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
2227
2305
|
}>;
|
|
2228
2306
|
export type ResourceSubtreeValidationBranchResolvers<ContextType = CustomGraphQLContext, ParentType extends ResolversParentTypes['ResourceSubtreeValidationBranch'] = ResolversParentTypes['ResourceSubtreeValidationBranch']> = ResolversObject<{
|
|
@@ -2402,6 +2480,8 @@ export type TaskMiddlewareUsageResolvers<ContextType = CustomGraphQLContext, Par
|
|
|
2402
2480
|
config: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
2403
2481
|
id: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
|
|
2404
2482
|
node: Resolver<ResolversTypes['TaskMiddleware'], ParentType, ContextType>;
|
|
2483
|
+
origin: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
2484
|
+
subtreeOwnerId: Resolver<Maybe<ResolversTypes['ID']>, ParentType, ContextType>;
|
|
2405
2485
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
2406
2486
|
}>;
|
|
2407
2487
|
export type Resolvers<ContextType = CustomGraphQLContext> = ResolversObject<{
|
|
@@ -2450,8 +2530,13 @@ export type Resolvers<ContextType = CustomGraphQLContext> = ResolversObject<{
|
|
|
2450
2530
|
ResourceHealthTotals: ResourceHealthTotalsResolvers<ContextType>;
|
|
2451
2531
|
ResourceIsolation: ResourceIsolationResolvers<ContextType>;
|
|
2452
2532
|
ResourceMiddleware: ResourceMiddlewareResolvers<ContextType>;
|
|
2453
|
-
|
|
2533
|
+
ResourceMiddlewareUsage: ResourceMiddlewareUsageResolvers<ContextType>;
|
|
2534
|
+
ResourceSubtreeIdentityRequirement: ResourceSubtreeIdentityRequirementResolvers<ContextType>;
|
|
2535
|
+
ResourceSubtreeIdentityScope: ResourceSubtreeIdentityScopeResolvers<ContextType>;
|
|
2536
|
+
ResourceSubtreeMiddlewareScope: ResourceSubtreeMiddlewareScopeResolvers<ContextType>;
|
|
2454
2537
|
ResourceSubtreePolicy: ResourceSubtreePolicyResolvers<ContextType>;
|
|
2538
|
+
ResourceSubtreeResourceBranch: ResourceSubtreeResourceBranchResolvers<ContextType>;
|
|
2539
|
+
ResourceSubtreeTaskBranch: ResourceSubtreeTaskBranchResolvers<ContextType>;
|
|
2455
2540
|
ResourceSubtreeValidationBranch: ResourceSubtreeValidationBranchResolvers<ContextType>;
|
|
2456
2541
|
RpcLaneSummary: RpcLaneSummaryResolvers<ContextType>;
|
|
2457
2542
|
RunDisposeOptions: RunDisposeOptionsResolvers<ContextType>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { dev } from "./resources/dev.resource";
|
|
2
|
+
import { exportDocs } from "./exportDocs";
|
|
2
3
|
export type { ServerConfig, ServerInstance } from "./resources/server.resource";
|
|
3
4
|
export type { CustomGraphQLContext } from "./schema/context";
|
|
4
5
|
export type { CoverageDetails, CoverageService, CoverageSummary, LineCoverage, } from "./resources/coverage.resource";
|
|
5
6
|
export type { EmissionEntry, ErrorEntry, Live, LogEntry, LogLevel, RunRecord, } from "./resources/live.resource";
|
|
6
7
|
export type { EvalResult, InvokeEventResult, InvokeResult, ISwapManager, SwapResult, SwappedTask, } from "./resources/swap.resource";
|
|
7
|
-
export { Introspector, type SerializedIntrospector, } from "./resources/models/Introspector";
|
|
8
|
+
export { Introspector, type InterceptorOwnersSnapshot, type MiddlewareInterceptorOwnerSnapshot, type SerializedIntrospector, } from "./resources/models/Introspector";
|
|
9
|
+
export type { ExportDocsOptions, ExportDocsResult } from "./exportDocs";
|
|
8
10
|
export * from "./schema/model";
|
|
9
11
|
export declare const resources: {
|
|
10
12
|
server: import("@bluelibs/runner").IResource<import("./resources/server.resource").ServerConfig, Promise<import("./resources/server.resource").ServerInstance>, {
|
|
@@ -128,3 +130,4 @@ export declare const resources: {
|
|
|
128
130
|
}, import("@bluelibs/runner").ResourceTagType[], import("@bluelibs/runner").ResourceMiddlewareAttachmentType[]>;
|
|
129
131
|
};
|
|
130
132
|
export { dev };
|
|
133
|
+
export { exportDocs };
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.dev = exports.resources = exports.Introspector = void 0;
|
|
17
|
+
exports.exportDocs = exports.dev = exports.resources = exports.Introspector = void 0;
|
|
18
18
|
const server_resource_1 = require("./resources/server.resource");
|
|
19
19
|
const introspector_resource_1 = require("./resources/introspector.resource");
|
|
20
20
|
const live_resource_1 = require("./resources/live.resource");
|
|
@@ -24,6 +24,8 @@ const graphql_accumulator_resource_1 = require("./resources/graphql-accumulator.
|
|
|
24
24
|
const dev_resource_1 = require("./resources/dev.resource");
|
|
25
25
|
Object.defineProperty(exports, "dev", { enumerable: true, get: function () { return dev_resource_1.dev; } });
|
|
26
26
|
const coverage_resource_1 = require("./resources/coverage.resource");
|
|
27
|
+
const exportDocs_1 = require("./exportDocs");
|
|
28
|
+
Object.defineProperty(exports, "exportDocs", { enumerable: true, get: function () { return exportDocs_1.exportDocs; } });
|
|
27
29
|
var Introspector_1 = require("./resources/models/Introspector");
|
|
28
30
|
Object.defineProperty(exports, "Introspector", { enumerable: true, get: function () { return Introspector_1.Introspector; } });
|
|
29
31
|
__exportStar(require("./schema/model"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iEAA6D;AAC7D,6EAAiE;AACjE,6DAAiD;AACjD,uEAA2D;AAC3D,6DAAwD;AACxD,2FAAmE;AACnE,2DAA+C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iEAA6D;AAC7D,6EAAiE;AACjE,6DAAiD;AACjD,uEAA2D;AAC3D,6DAAwD;AACxD,2FAAmE;AACnE,2DAA+C;AAoDtC,oFApDA,kBAAG,OAoDA;AAnDZ,qEAAyD;AACzD,6CAA0C;AAmDjC,2FAnDA,uBAAU,OAmDA;AAzBnB,gEAKyC;AAJvC,4GAAA,YAAY,OAAA;AAMd,iDAA+B;AAE/B,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAC;AAEjC,wEAAwE;AACxE,qEAAqE;AACxD,QAAA,SAAS,GAAG;IACvB,MAAM,EAAE,gCAAc;IACtB,YAAY,EAAZ,oCAAY;IACZ,IAAI,EAAJ,oBAAI;IACJ,SAAS,EAAT,8BAAS;IACT,WAAW,EAAX,2BAAW;IACX,OAAO,EAAP,sCAAO;IACP,GAAG,EAAH,kBAAG;IACH,QAAQ,EAAR,4BAAQ;CACT,CAAC"}
|
package/dist/mcp/env.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export declare const ENDPOINT: string | undefined;
|
|
2
|
+
export declare const SNAPSHOT_FILE: string | undefined;
|
|
2
3
|
export declare const ALLOW_MUTATIONS: boolean;
|
|
3
4
|
export declare function parseHeadersFromEnv(): Record<string, string>;
|
|
4
5
|
export declare function getEndpoint(): string | undefined;
|
|
6
|
+
export declare function getSnapshotFile(): string | undefined;
|
|
5
7
|
export declare function assertEndpoint(): string;
|
|
8
|
+
export declare function assertSnapshotFile(): string;
|
|
9
|
+
export declare function getGraphqlSourceDescription(): string | undefined;
|
|
10
|
+
export declare function assertGraphqlSourceDescription(): string;
|
package/dist/mcp/env.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ALLOW_MUTATIONS = exports.ENDPOINT = void 0;
|
|
3
|
+
exports.ALLOW_MUTATIONS = exports.SNAPSHOT_FILE = exports.ENDPOINT = void 0;
|
|
4
4
|
exports.parseHeadersFromEnv = parseHeadersFromEnv;
|
|
5
5
|
exports.getEndpoint = getEndpoint;
|
|
6
|
+
exports.getSnapshotFile = getSnapshotFile;
|
|
6
7
|
exports.assertEndpoint = assertEndpoint;
|
|
8
|
+
exports.assertSnapshotFile = assertSnapshotFile;
|
|
9
|
+
exports.getGraphqlSourceDescription = getGraphqlSourceDescription;
|
|
10
|
+
exports.assertGraphqlSourceDescription = assertGraphqlSourceDescription;
|
|
7
11
|
exports.ENDPOINT = process.env.ENDPOINT || process.env.GRAPHQL_ENDPOINT;
|
|
12
|
+
exports.SNAPSHOT_FILE = process.env.SNAPSHOT_FILE;
|
|
8
13
|
exports.ALLOW_MUTATIONS = (process.env.ALLOW_MUTATIONS || "").toLowerCase() === "true";
|
|
9
14
|
function parseHeadersFromEnv() {
|
|
10
15
|
const headersEnv = process.env.HEADERS;
|
|
@@ -31,6 +36,9 @@ function parseHeadersFromEnv() {
|
|
|
31
36
|
function getEndpoint() {
|
|
32
37
|
return process.env.ENDPOINT || process.env.GRAPHQL_ENDPOINT;
|
|
33
38
|
}
|
|
39
|
+
function getSnapshotFile() {
|
|
40
|
+
return process.env.SNAPSHOT_FILE;
|
|
41
|
+
}
|
|
34
42
|
function assertEndpoint() {
|
|
35
43
|
const endpoint = getEndpoint();
|
|
36
44
|
if (!endpoint) {
|
|
@@ -38,4 +46,25 @@ function assertEndpoint() {
|
|
|
38
46
|
}
|
|
39
47
|
return endpoint;
|
|
40
48
|
}
|
|
49
|
+
function assertSnapshotFile() {
|
|
50
|
+
const snapshotFile = getSnapshotFile();
|
|
51
|
+
if (!snapshotFile) {
|
|
52
|
+
throw new Error("SNAPSHOT_FILE env variable is required to use the snapshot-backed MCP server");
|
|
53
|
+
}
|
|
54
|
+
return snapshotFile;
|
|
55
|
+
}
|
|
56
|
+
function getGraphqlSourceDescription() {
|
|
57
|
+
const snapshotFile = getSnapshotFile();
|
|
58
|
+
if (snapshotFile) {
|
|
59
|
+
return `snapshot:${snapshotFile}`;
|
|
60
|
+
}
|
|
61
|
+
return getEndpoint();
|
|
62
|
+
}
|
|
63
|
+
function assertGraphqlSourceDescription() {
|
|
64
|
+
const source = getGraphqlSourceDescription();
|
|
65
|
+
if (!source) {
|
|
66
|
+
throw new Error("Set ENDPOINT/GRAPHQL_ENDPOINT for a live server or SNAPSHOT_FILE for an exported snapshot.");
|
|
67
|
+
}
|
|
68
|
+
return source;
|
|
69
|
+
}
|
|
41
70
|
//# sourceMappingURL=env.js.map
|