@agenttool/telescope 0.1.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/CLAUDE.md +71 -0
- package/LICENSE +202 -0
- package/NOTICE +4 -0
- package/README.md +230 -0
- package/dist/archive.d.ts +22 -0
- package/dist/archive.d.ts.map +1 -0
- package/dist/archive.js +477 -0
- package/dist/archive.js.map +1 -0
- package/dist/cli-core.d.ts +7 -0
- package/dist/cli-core.d.ts.map +1 -0
- package/dist/cli-core.js +154 -0
- package/dist/cli-core.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -0
- package/dist/constants.d.ts +6 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +15 -0
- package/dist/constants.js.map +1 -0
- package/dist/errors.d.ts +13 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +25 -0
- package/dist/errors.js.map +1 -0
- package/dist/format.d.ts +4 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +69 -0
- package/dist/format.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/parsers/agent-txt.d.ts +25 -0
- package/dist/parsers/agent-txt.d.ts.map +1 -0
- package/dist/parsers/agent-txt.js +86 -0
- package/dist/parsers/agent-txt.js.map +1 -0
- package/dist/parsers/cards.d.ts +18 -0
- package/dist/parsers/cards.d.ts.map +1 -0
- package/dist/parsers/cards.js +46 -0
- package/dist/parsers/cards.js.map +1 -0
- package/dist/parsers/common.d.ts +19 -0
- package/dist/parsers/common.d.ts.map +1 -0
- package/dist/parsers/common.js +69 -0
- package/dist/parsers/common.js.map +1 -0
- package/dist/parsers/love.d.ts +29 -0
- package/dist/parsers/love.d.ts.map +1 -0
- package/dist/parsers/love.js +247 -0
- package/dist/parsers/love.js.map +1 -0
- package/dist/parsers/pathways.d.ts +13 -0
- package/dist/parsers/pathways.d.ts.map +1 -0
- package/dist/parsers/pathways.js +47 -0
- package/dist/parsers/pathways.js.map +1 -0
- package/dist/plans.d.ts +14 -0
- package/dist/plans.d.ts.map +1 -0
- package/dist/plans.js +131 -0
- package/dist/plans.js.map +1 -0
- package/dist/scan.d.ts +3 -0
- package/dist/scan.d.ts.map +1 -0
- package/dist/scan.js +1093 -0
- package/dist/scan.js.map +1 -0
- package/dist/target.d.ts +6 -0
- package/dist/target.d.ts.map +1 -0
- package/dist/target.js +180 -0
- package/dist/target.js.map +1 -0
- package/dist/transport.d.ts +23 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +291 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +131 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/verify.d.ts +12 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +38 -0
- package/dist/verify.js.map +1 -0
- package/package.json +65 -0
- package/schema/agenttool-telescope-report-v0.1.schema.json +404 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-core.js","sourceRoot":"","sources":["../src/cli-core.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { TelescopeLimits } from "./types.js";
|
|
2
|
+
export declare const REPORT_SCHEMA: "agenttool-telescope/v0.1";
|
|
3
|
+
export declare const TOOL_NAME: "@agenttool/telescope";
|
|
4
|
+
export declare const TOOL_VERSION: "0.1.0";
|
|
5
|
+
export declare const DEFAULT_LIMITS: Readonly<TelescopeLimits>;
|
|
6
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,aAAa,EAAG,0BAAmC,CAAC;AACjE,eAAO,MAAM,SAAS,EAAG,sBAA+B,CAAC;AACzD,eAAO,MAAM,YAAY,EAAG,OAAgB,CAAC;AAE7C,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,eAAe,CAUnD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const REPORT_SCHEMA = "agenttool-telescope/v0.1";
|
|
2
|
+
export const TOOL_NAME = "@agenttool/telescope";
|
|
3
|
+
export const TOOL_VERSION = "0.1.0";
|
|
4
|
+
export const DEFAULT_LIMITS = Object.freeze({
|
|
5
|
+
timeout_ms: 15_000,
|
|
6
|
+
max_response_bytes: 256 * 1024,
|
|
7
|
+
max_total_bytes: 1_500 * 1024,
|
|
8
|
+
max_redirects: 3,
|
|
9
|
+
max_requests: 12,
|
|
10
|
+
max_agent_txt_lines: 512,
|
|
11
|
+
max_agent_txt_line_bytes: 4_096,
|
|
12
|
+
max_json_depth: 20,
|
|
13
|
+
max_json_nodes: 10_000,
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,0BAAmC,CAAC;AACjE,MAAM,CAAC,MAAM,SAAS,GAAG,sBAA+B,CAAC;AACzD,MAAM,CAAC,MAAM,YAAY,GAAG,OAAgB,CAAC;AAE7C,MAAM,CAAC,MAAM,cAAc,GAA8B,MAAM,CAAC,MAAM,CAAC;IACrE,UAAU,EAAE,MAAM;IAClB,kBAAkB,EAAE,GAAG,GAAG,IAAI;IAC9B,eAAe,EAAE,KAAK,GAAG,IAAI;IAC7B,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,EAAE;IAChB,mBAAmB,EAAE,GAAG;IACxB,wBAAwB,EAAE,KAAK;IAC/B,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,MAAM;CACvB,CAAC,CAAC"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare class TargetInputError extends Error {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
constructor(code: string, message: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class NetworkPolicyError extends Error {
|
|
6
|
+
readonly code: string;
|
|
7
|
+
constructor(code: string, message: string);
|
|
8
|
+
}
|
|
9
|
+
export declare class LimitError extends Error {
|
|
10
|
+
readonly code: string;
|
|
11
|
+
constructor(code: string, message: string);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C;AAED,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export class TargetInputError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
constructor(code, message) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.name = "TargetInputError";
|
|
6
|
+
this.code = code;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class NetworkPolicyError extends Error {
|
|
10
|
+
code;
|
|
11
|
+
constructor(code, message) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = "NetworkPolicyError";
|
|
14
|
+
this.code = code;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class LimitError extends Error {
|
|
18
|
+
code;
|
|
19
|
+
constructor(code, message) {
|
|
20
|
+
super(message);
|
|
21
|
+
this.name = "LimitError";
|
|
22
|
+
this.code = code;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,IAAI,CAAS;IAEtB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,CAAS;IAEtB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,KAAK;IAC1B,IAAI,CAAS;IAEtB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
|
package/dist/format.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { TelescopeReport } from "./types.js";
|
|
2
|
+
export declare function escapeTerminalText(value: string, maxLength?: number): string;
|
|
3
|
+
export declare function formatTelescopeReport(report: TelescopeReport, format?: "human" | "json"): string;
|
|
4
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM,CAYzE;AAQD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EACvB,MAAM,GAAE,OAAO,GAAG,MAAgB,GACjC,MAAM,CAyER"}
|
package/dist/format.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export function escapeTerminalText(value, maxLength = 500) {
|
|
2
|
+
const escaped = value.replace(/[\u0000-\u001f\u007f-\u009f\u061c\u200b-\u200f\u2028-\u202e\u2060-\u206f\ufeff]/gu, (character) => {
|
|
3
|
+
const code = character.codePointAt(0)?.toString(16).padStart(4, "0") ?? "0000";
|
|
4
|
+
return `\\u${code}`;
|
|
5
|
+
});
|
|
6
|
+
return escaped.length <= maxLength
|
|
7
|
+
? escaped
|
|
8
|
+
: `${escaped.slice(0, maxLength)}…`;
|
|
9
|
+
}
|
|
10
|
+
function displayClaimValue(value) {
|
|
11
|
+
if (Array.isArray(value))
|
|
12
|
+
return escapeTerminalText(JSON.stringify(value));
|
|
13
|
+
if (typeof value === "string")
|
|
14
|
+
return escapeTerminalText(value);
|
|
15
|
+
return String(value);
|
|
16
|
+
}
|
|
17
|
+
export function formatTelescopeReport(report, format = "human") {
|
|
18
|
+
if (format === "json")
|
|
19
|
+
return `${JSON.stringify(report, null, 2)}\n`;
|
|
20
|
+
const lines = [
|
|
21
|
+
`Telescope ${escapeTerminalText(report.tool.version)} — ${escapeTerminalText(report.subject.origin)}`,
|
|
22
|
+
`status: ${report.status}`,
|
|
23
|
+
`mode: public HTTPS, read-only GETs, credentials omitted · transport ${report.network_boundary.http_transport} · resolver ${report.network_boundary.dns_resolver}`,
|
|
24
|
+
`network boundary: ${escapeTerminalText(report.network_boundary.statement, 2_048)}`,
|
|
25
|
+
"",
|
|
26
|
+
"Sources",
|
|
27
|
+
];
|
|
28
|
+
for (const source of report.sources) {
|
|
29
|
+
const suffix = [
|
|
30
|
+
source.status_code === null ? null : `HTTP ${source.status_code}`,
|
|
31
|
+
source.bytes === null ? null : `${source.bytes} bytes`,
|
|
32
|
+
source.error_code,
|
|
33
|
+
]
|
|
34
|
+
.filter((value) => Boolean(value))
|
|
35
|
+
.join(", ");
|
|
36
|
+
lines.push(`- ${source.id}: ${source.state}${suffix ? ` (${escapeTerminalText(suffix)})` : ""}`, ` ${escapeTerminalText(source.final_url ?? source.url)}`);
|
|
37
|
+
}
|
|
38
|
+
lines.push("", "Surfaces");
|
|
39
|
+
for (const surface of report.surfaces) {
|
|
40
|
+
lines.push(`- ${surface.id}: ${surface.state} · schema ${surface.schema_conformance}`);
|
|
41
|
+
for (const item of surface.claims) {
|
|
42
|
+
lines.push(` ${escapeTerminalText(item.key)} = ${displayClaimValue(item.value)} [${item.basis}]`);
|
|
43
|
+
}
|
|
44
|
+
if (surface.boundary_codes.length > 0) {
|
|
45
|
+
lines.push(` boundaries: ${surface.boundary_codes.join(", ")}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
lines.push("", "Generated actions (never executed by Telescope; POSIX display, prefer executable + argv)");
|
|
49
|
+
if (report.actions.length === 0) {
|
|
50
|
+
lines.push("- none");
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
for (const action of report.actions) {
|
|
54
|
+
lines.push(`- ${action.id}: ${escapeTerminalText(action.display, 32_768)}`, ` boundaries: ${action.boundary_codes.join(", ")}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
lines.push("", "Extensions");
|
|
58
|
+
for (const extension of report.extensions) {
|
|
59
|
+
lines.push(`- ${escapeTerminalText(extension.id)}: ${extension.state} — ${escapeTerminalText(extension.summary)}`);
|
|
60
|
+
}
|
|
61
|
+
if (report.diagnostics.length > 0) {
|
|
62
|
+
lines.push("", "Diagnostics");
|
|
63
|
+
for (const item of report.diagnostics) {
|
|
64
|
+
lines.push(`- ${item.level} ${escapeTerminalText(item.code)}: ${escapeTerminalText(item.message)}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return `${lines.join("\n")}\n`;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { DEFAULT_LIMITS, REPORT_SCHEMA, TOOL_NAME, TOOL_VERSION, } from "./constants.js";
|
|
2
|
+
export { verifyNpmTarballFile } from "./archive.js";
|
|
3
|
+
export { escapeTerminalText, formatTelescopeReport } from "./format.js";
|
|
4
|
+
export { parseAgentTxt } from "./parsers/agent-txt.js";
|
|
5
|
+
export { parseA2aCard, parseMcpCard } from "./parsers/cards.js";
|
|
6
|
+
export { parseLoveDiscovery, parseLoveManifest, selectLoveManifest, } from "./parsers/love.js";
|
|
7
|
+
export { parsePathways } from "./parsers/pathways.js";
|
|
8
|
+
export { inspectTarget } from "./scan.js";
|
|
9
|
+
export { defaultResolveHostname, isGloballyReachableAddress, normalizeTarget, } from "./target.js";
|
|
10
|
+
export { verifyArtifact, verifyArtifactFile } from "./verify.js";
|
|
11
|
+
export type { ActionPlan, AdapterContext, DiscoveryAdapter, ExtensionObservation, FetchLike, NetworkBoundary, ObservationState, ResolveAddress, ResolveHostname, SourceObservation, SurfaceObservation, TelescopeClaim, TelescopeDiagnostic, TelescopeLimits, TelescopeOptions, TelescopeReport, TelescopeSubject, } from "./types.js";
|
|
12
|
+
export type { ArtifactExpectation, VerificationResult } from "./verify.js";
|
|
13
|
+
export type { NpmTarballExpectation, NpmTarballInspectionResult, } from "./archive.js";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,aAAa,EACb,SAAS,EACT,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjE,YAAY,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC3E,YAAY,EACV,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,cAAc,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { DEFAULT_LIMITS, REPORT_SCHEMA, TOOL_NAME, TOOL_VERSION, } from "./constants.js";
|
|
2
|
+
export { verifyNpmTarballFile } from "./archive.js";
|
|
3
|
+
export { escapeTerminalText, formatTelescopeReport } from "./format.js";
|
|
4
|
+
export { parseAgentTxt } from "./parsers/agent-txt.js";
|
|
5
|
+
export { parseA2aCard, parseMcpCard } from "./parsers/cards.js";
|
|
6
|
+
export { parseLoveDiscovery, parseLoveManifest, selectLoveManifest, } from "./parsers/love.js";
|
|
7
|
+
export { parsePathways } from "./parsers/pathways.js";
|
|
8
|
+
export { inspectTarget } from "./scan.js";
|
|
9
|
+
export { defaultResolveHostname, isGloballyReachableAddress, normalizeTarget, } from "./target.js";
|
|
10
|
+
export { verifyArtifact, verifyArtifactFile } from "./verify.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,aAAa,EACb,SAAS,EACT,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { TelescopeLimits } from "../types.js";
|
|
2
|
+
import { type ParseResult } from "./common.js";
|
|
3
|
+
export interface AgentTxtEntry {
|
|
4
|
+
key: string;
|
|
5
|
+
value: string;
|
|
6
|
+
line: number;
|
|
7
|
+
}
|
|
8
|
+
export interface ParsedAgentTxt {
|
|
9
|
+
entries: AgentTxtEntry[];
|
|
10
|
+
selected: {
|
|
11
|
+
substrate: string | null;
|
|
12
|
+
convention: string | null;
|
|
13
|
+
pathways_url: string | null;
|
|
14
|
+
mcp_card_url: string | null;
|
|
15
|
+
webfinger_template: string | null;
|
|
16
|
+
love_packages_url: string | null;
|
|
17
|
+
offer_bus_atom_url: string | null;
|
|
18
|
+
offer_bus_rss_url: string | null;
|
|
19
|
+
offer_bus_json_url: string | null;
|
|
20
|
+
offer_bus_boundary: string | null;
|
|
21
|
+
websub: string | null;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export declare function parseAgentTxt(body: Uint8Array, limits: TelescopeLimits): ParseResult<ParsedAgentTxt>;
|
|
25
|
+
//# sourceMappingURL=agent-txt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-txt.d.ts","sourceRoot":"","sources":["../../src/parsers/agent-txt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzE,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;CACH;AAgBD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,eAAe,GACtB,WAAW,CAAC,cAAc,CAAC,CA+E7B"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { decodeUtf8, parseFailure } from "./common.js";
|
|
2
|
+
const SELECTED_KEYS = {
|
|
3
|
+
Substrate: "substrate",
|
|
4
|
+
Convention: "convention",
|
|
5
|
+
Pathways: "pathways_url",
|
|
6
|
+
"MCP-Server-Card": "mcp_card_url",
|
|
7
|
+
WebFinger: "webfinger_template",
|
|
8
|
+
"LOVE-Packages": "love_packages_url",
|
|
9
|
+
"Offer-Bus": "offer_bus_atom_url",
|
|
10
|
+
"Offer-Bus-RSS": "offer_bus_rss_url",
|
|
11
|
+
"Offer-Bus-JSON": "offer_bus_json_url",
|
|
12
|
+
"Offer-Bus-Boundary": "offer_bus_boundary",
|
|
13
|
+
WebSub: "websub",
|
|
14
|
+
};
|
|
15
|
+
export function parseAgentTxt(body, limits) {
|
|
16
|
+
const decoded = decodeUtf8(body);
|
|
17
|
+
if (!decoded.ok)
|
|
18
|
+
return decoded;
|
|
19
|
+
const lines = decoded.value.split(/\r?\n/);
|
|
20
|
+
if (lines.length > limits.max_agent_txt_lines) {
|
|
21
|
+
return parseFailure("agent_txt_line_limit");
|
|
22
|
+
}
|
|
23
|
+
const entries = [];
|
|
24
|
+
const warnings = [];
|
|
25
|
+
for (const [offset, line] of lines.entries()) {
|
|
26
|
+
if (new TextEncoder().encode(line).byteLength >
|
|
27
|
+
limits.max_agent_txt_line_bytes) {
|
|
28
|
+
return parseFailure("agent_txt_line_too_large");
|
|
29
|
+
}
|
|
30
|
+
const trimmed = line.trim();
|
|
31
|
+
if (!trimmed || trimmed.startsWith("#"))
|
|
32
|
+
continue;
|
|
33
|
+
const colon = line.indexOf(":");
|
|
34
|
+
if (colon <= 0) {
|
|
35
|
+
warnings.push("agent_txt_malformed_line");
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const key = line.slice(0, colon).trim();
|
|
39
|
+
const value = line.slice(colon + 1).trim();
|
|
40
|
+
if (!/^[A-Za-z][A-Za-z0-9-]{0,63}$/.test(key) || value.length === 0) {
|
|
41
|
+
warnings.push("agent_txt_malformed_line");
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
entries.push({ key, value, line: offset + 1 });
|
|
45
|
+
}
|
|
46
|
+
if (entries.length === 0)
|
|
47
|
+
return parseFailure("agent_txt_no_entries");
|
|
48
|
+
const byKey = new Map();
|
|
49
|
+
for (const entry of entries) {
|
|
50
|
+
const existing = byKey.get(entry.key) ?? [];
|
|
51
|
+
existing.push(entry);
|
|
52
|
+
byKey.set(entry.key, existing);
|
|
53
|
+
}
|
|
54
|
+
for (const values of byKey.values()) {
|
|
55
|
+
if (values.length > 1)
|
|
56
|
+
warnings.push("agent_txt_duplicate_key");
|
|
57
|
+
}
|
|
58
|
+
const selected = {
|
|
59
|
+
substrate: null,
|
|
60
|
+
convention: null,
|
|
61
|
+
pathways_url: null,
|
|
62
|
+
mcp_card_url: null,
|
|
63
|
+
webfinger_template: null,
|
|
64
|
+
love_packages_url: null,
|
|
65
|
+
offer_bus_atom_url: null,
|
|
66
|
+
offer_bus_rss_url: null,
|
|
67
|
+
offer_bus_json_url: null,
|
|
68
|
+
offer_bus_boundary: null,
|
|
69
|
+
websub: null,
|
|
70
|
+
};
|
|
71
|
+
for (const [remoteKey, localKey] of Object.entries(SELECTED_KEYS)) {
|
|
72
|
+
const values = byKey.get(remoteKey) ?? [];
|
|
73
|
+
if (values.length === 1) {
|
|
74
|
+
selected[localKey] = values[0]?.value ?? null;
|
|
75
|
+
}
|
|
76
|
+
else if (values.length > 1) {
|
|
77
|
+
warnings.push(`agent_txt_ambiguous_${localKey}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
ok: true,
|
|
82
|
+
value: { entries, selected },
|
|
83
|
+
warnings: [...new Set(warnings)],
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=agent-txt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-txt.js","sourceRoot":"","sources":["../../src/parsers/agent-txt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TelescopeLimits } from "../types.js";
|
|
2
|
+
import { type ParseResult } from "./common.js";
|
|
3
|
+
export interface ParsedMcpCard {
|
|
4
|
+
name: string;
|
|
5
|
+
version: string | null;
|
|
6
|
+
protocol_version: string;
|
|
7
|
+
endpoint: string;
|
|
8
|
+
transport: string | null;
|
|
9
|
+
authentication: string | null;
|
|
10
|
+
}
|
|
11
|
+
export declare function parseMcpCard(body: Uint8Array, limits: TelescopeLimits): ParseResult<ParsedMcpCard>;
|
|
12
|
+
export interface ParsedA2aCard {
|
|
13
|
+
name: string;
|
|
14
|
+
version: string | null;
|
|
15
|
+
endpoint: string | null;
|
|
16
|
+
}
|
|
17
|
+
export declare function parseA2aCard(body: Uint8Array, limits: TelescopeLimits): ParseResult<ParsedA2aCard>;
|
|
18
|
+
//# sourceMappingURL=cards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../../src/parsers/cards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,eAAe,GACtB,WAAW,CAAC,aAAa,CAAC,CAyB5B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,eAAe,GACtB,WAAW,CAAC,aAAa,CAAC,CAkB5B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { isRecord, parseFailure, parseJsonBody, readBoundedString, } from "./common.js";
|
|
2
|
+
export function parseMcpCard(body, limits) {
|
|
3
|
+
const decoded = parseJsonBody(body, limits);
|
|
4
|
+
if (!decoded.ok)
|
|
5
|
+
return decoded;
|
|
6
|
+
if (!isRecord(decoded.value))
|
|
7
|
+
return parseFailure("mcp_card_not_object");
|
|
8
|
+
const name = readBoundedString(decoded.value.name, 256);
|
|
9
|
+
const protocolVersion = readBoundedString(decoded.value.protocolVersion ?? decoded.value.protocol_version, 128);
|
|
10
|
+
const endpoint = readBoundedString(decoded.value.endpoint, 2_048);
|
|
11
|
+
if (!name || !protocolVersion || !endpoint) {
|
|
12
|
+
return parseFailure("mcp_card_missing_fields");
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
ok: true,
|
|
16
|
+
value: {
|
|
17
|
+
name,
|
|
18
|
+
version: readBoundedString(decoded.value.version, 128),
|
|
19
|
+
protocol_version: protocolVersion,
|
|
20
|
+
endpoint,
|
|
21
|
+
transport: readBoundedString(decoded.value.transport, 512),
|
|
22
|
+
authentication: readBoundedString(decoded.value.authentication, 512),
|
|
23
|
+
},
|
|
24
|
+
warnings: [],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export function parseA2aCard(body, limits) {
|
|
28
|
+
const decoded = parseJsonBody(body, limits);
|
|
29
|
+
if (!decoded.ok)
|
|
30
|
+
return decoded;
|
|
31
|
+
if (!isRecord(decoded.value))
|
|
32
|
+
return parseFailure("a2a_card_not_object");
|
|
33
|
+
const name = readBoundedString(decoded.value.name, 256);
|
|
34
|
+
if (!name)
|
|
35
|
+
return parseFailure("a2a_card_missing_name");
|
|
36
|
+
return {
|
|
37
|
+
ok: true,
|
|
38
|
+
value: {
|
|
39
|
+
name,
|
|
40
|
+
version: readBoundedString(decoded.value.version, 128),
|
|
41
|
+
endpoint: readBoundedString(decoded.value.url ?? decoded.value.endpoint, 2_048),
|
|
42
|
+
},
|
|
43
|
+
warnings: [],
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=cards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cards.js","sourceRoot":"","sources":["../../src/parsers/cards.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,iBAAiB,GAElB,MAAM,aAAa,CAAC;AAWrB,MAAM,UAAU,YAAY,CAC1B,IAAgB,EAChB,MAAuB;IAEvB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC,qBAAqB,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,iBAAiB,CACvC,OAAO,CAAC,KAAK,CAAC,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAC/D,GAAG,CACJ,CAAC;IACF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClE,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3C,OAAO,YAAY,CAAC,yBAAyB,CAAC,CAAC;IACjD,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE;YACL,IAAI;YACJ,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC;YACtD,gBAAgB,EAAE,eAAe;YACjC,QAAQ;YACR,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC;YAC1D,cAAc,EAAE,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC;SACrE;QACD,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,YAAY,CAC1B,IAAgB,EAChB,MAAuB;IAEvB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC,qBAAqB,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI;QAAE,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAC;IACxD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE;YACL,IAAI;YACJ,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC;YACtD,QAAQ,EAAE,iBAAiB,CACzB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC3C,KAAK,CACN;SACF;QACD,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TelescopeLimits } from "../types.js";
|
|
2
|
+
export interface ParseSuccess<T> {
|
|
3
|
+
ok: true;
|
|
4
|
+
value: T;
|
|
5
|
+
warnings: string[];
|
|
6
|
+
}
|
|
7
|
+
export interface ParseFailure {
|
|
8
|
+
ok: false;
|
|
9
|
+
code: string;
|
|
10
|
+
}
|
|
11
|
+
export type ParseResult<T> = ParseSuccess<T> | ParseFailure;
|
|
12
|
+
export declare function parseFailure(code: string): ParseFailure;
|
|
13
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
14
|
+
export declare function readBoundedString(value: unknown, maxLength?: number): string | null;
|
|
15
|
+
export declare function isExactSemver(value: string): boolean;
|
|
16
|
+
export declare function isNpmPackageName(value: string): boolean;
|
|
17
|
+
export declare function decodeUtf8(body: Uint8Array): ParseResult<string>;
|
|
18
|
+
export declare function parseJsonBody(body: Uint8Array, limits: TelescopeLimits): ParseResult<unknown>;
|
|
19
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/parsers/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;AAE5D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAEvD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,SAAS,SAAQ,GAChB,MAAM,GAAG,IAAI,CAMf;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIpD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAMvD;AAuBD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAUhE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,eAAe,GACtB,WAAW,CAAC,OAAO,CAAC,CAatB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export function parseFailure(code) {
|
|
2
|
+
return { ok: false, code };
|
|
3
|
+
}
|
|
4
|
+
export function isRecord(value) {
|
|
5
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6
|
+
}
|
|
7
|
+
export function readBoundedString(value, maxLength = 2_048) {
|
|
8
|
+
return typeof value === "string" &&
|
|
9
|
+
value.length > 0 &&
|
|
10
|
+
value.length <= maxLength
|
|
11
|
+
? value
|
|
12
|
+
: null;
|
|
13
|
+
}
|
|
14
|
+
export function isExactSemver(value) {
|
|
15
|
+
return /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-(?:0|[1-9]\d*|[0-9]*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9]\d*|[0-9]*[A-Za-z-][0-9A-Za-z-]*))*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/.test(value);
|
|
16
|
+
}
|
|
17
|
+
export function isNpmPackageName(value) {
|
|
18
|
+
if (value.length > 214 || value.toLowerCase() !== value)
|
|
19
|
+
return false;
|
|
20
|
+
if (value === "node_modules" || value === "favicon.ico")
|
|
21
|
+
return false;
|
|
22
|
+
return /^(?:@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*|[a-z0-9][a-z0-9._-]*)$/.test(value);
|
|
23
|
+
}
|
|
24
|
+
function validateJsonComplexity(value, limits) {
|
|
25
|
+
let nodes = 0;
|
|
26
|
+
const visit = (current, depth) => {
|
|
27
|
+
nodes += 1;
|
|
28
|
+
if (nodes > limits.max_json_nodes || depth > limits.max_json_depth) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
if (Array.isArray(current)) {
|
|
32
|
+
return current.every((entry) => visit(entry, depth + 1));
|
|
33
|
+
}
|
|
34
|
+
if (isRecord(current)) {
|
|
35
|
+
return Object.values(current).every((entry) => visit(entry, depth + 1));
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
};
|
|
39
|
+
return visit(value, 0);
|
|
40
|
+
}
|
|
41
|
+
export function decodeUtf8(body) {
|
|
42
|
+
try {
|
|
43
|
+
return {
|
|
44
|
+
ok: true,
|
|
45
|
+
value: new TextDecoder("utf-8", { fatal: true }).decode(body),
|
|
46
|
+
warnings: [],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return parseFailure("invalid_utf8");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export function parseJsonBody(body, limits) {
|
|
54
|
+
const decoded = decodeUtf8(body);
|
|
55
|
+
if (!decoded.ok)
|
|
56
|
+
return decoded;
|
|
57
|
+
let value;
|
|
58
|
+
try {
|
|
59
|
+
value = JSON.parse(decoded.value);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return parseFailure("invalid_json");
|
|
63
|
+
}
|
|
64
|
+
if (!validateJsonComplexity(value, limits)) {
|
|
65
|
+
return parseFailure("json_complexity_limit");
|
|
66
|
+
}
|
|
67
|
+
return { ok: true, value, warnings: [] };
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/parsers/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { TelescopeLimits } from "../types.js";
|
|
2
|
+
import { type ParseResult } from "./common.js";
|
|
3
|
+
export interface ParsedLoveDiscovery {
|
|
4
|
+
index_url: string;
|
|
5
|
+
access: string | null;
|
|
6
|
+
registry_role: string | null;
|
|
7
|
+
npm_mirror: {
|
|
8
|
+
registry_url: string;
|
|
9
|
+
authority: boolean | null;
|
|
10
|
+
} | null;
|
|
11
|
+
}
|
|
12
|
+
export declare function parseLoveDiscovery(body: Uint8Array, limits: TelescopeLimits): ParseResult<ParsedLoveDiscovery>;
|
|
13
|
+
export interface LoveManifestSelection {
|
|
14
|
+
manifest_url: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function selectLoveManifest(body: Uint8Array, limits: TelescopeLimits, packageName: string, version: string): ParseResult<LoveManifestSelection>;
|
|
17
|
+
export interface ParsedLoveManifest {
|
|
18
|
+
name: string;
|
|
19
|
+
version: string;
|
|
20
|
+
artifact: {
|
|
21
|
+
filename: string;
|
|
22
|
+
sha256: string;
|
|
23
|
+
size: number;
|
|
24
|
+
mirrors: string[];
|
|
25
|
+
};
|
|
26
|
+
dependency_self_contained: boolean | null;
|
|
27
|
+
}
|
|
28
|
+
export declare function parseLoveManifest(body: Uint8Array, limits: TelescopeLimits, expectedName: string, expectedVersion: string): ParseResult<ParsedLoveManifest>;
|
|
29
|
+
//# sourceMappingURL=love.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"love.d.ts","sourceRoot":"","sources":["../../src/parsers/love.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;KAC3B,GAAG,IAAI,CAAC;CACV;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,eAAe,GACtB,WAAW,CAAC,mBAAmB,CAAC,CAoDlC;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,WAAW,CAAC,qBAAqB,CAAC,CAyCpC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,yBAAyB,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3C;AAiCD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,eAAe,EACvB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,WAAW,CAAC,kBAAkB,CAAC,CA2IjC"}
|