@introspection-ai/recipes 0.19.2 → 0.20.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/dist/agents.d.ts +17 -1
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +15 -1
- package/dist/agents.js.map +1 -1
- package/dist/child-agent.d.ts +3 -1
- package/dist/child-agent.d.ts.map +1 -1
- package/dist/child-agent.js +1 -0
- package/dist/child-agent.js.map +1 -1
- package/dist/mcp-chunks/{auth-command-3K7V3VCW.js → auth-command-IQ4J332A.js} +26 -38
- package/dist/mcp-chunks/call-arguments-MCCBPJMY.js +15 -0
- package/dist/mcp-chunks/{call-command-OFPHPFM5.js → call-command-WPQ3MDOE.js} +74 -40
- package/dist/mcp-chunks/{chunk-LNSUME65.js → chunk-24FKKIXI.js} +29 -13
- package/dist/mcp-chunks/{chunk-HTZ2URXW.js → chunk-2CTVPSHF.js} +3 -3
- package/dist/mcp-chunks/{chunk-NCXEJ35U.js → chunk-3FB4ZJ4Z.js} +4 -4
- package/dist/mcp-chunks/{chunk-P3RN22HQ.js → chunk-3MIFROM7.js} +3 -2
- package/dist/mcp-chunks/{chunk-GFYTST6N.js → chunk-54UGGTOX.js} +1 -1
- package/dist/mcp-chunks/{chunk-L4VKBFYI.js → chunk-5HQYKAE7.js} +101 -16
- package/dist/mcp-chunks/{chunk-E6RVTWJY.js → chunk-5YBCGQA7.js} +1 -1
- package/dist/mcp-chunks/{chunk-6D6KPSXN.js → chunk-AJPFOQLF.js} +1 -1
- package/dist/mcp-chunks/{chunk-C2PQFLWS.js → chunk-B4XFULJ6.js} +15 -6
- package/dist/mcp-chunks/{chunk-HAO6PL7Z.js → chunk-DIIFWDZ7.js} +7 -7
- package/dist/mcp-chunks/{chunk-55JIHDU3.js → chunk-EEYUPDRX.js} +1 -1
- package/dist/mcp-chunks/{chunk-7A63PAGP.js → chunk-ETYYCEQF.js} +21 -5
- package/dist/mcp-chunks/{chunk-E6T37ED6.js → chunk-FNQV2ONG.js} +2 -2
- package/dist/mcp-chunks/{chunk-2JHHONW4.js → chunk-FW5QVG6V.js} +1 -1
- package/dist/mcp-chunks/{chunk-YCYSQA5V.js → chunk-FZ7K5EGL.js} +5 -5
- package/dist/mcp-chunks/{chunk-KSMY7PXI.js → chunk-G5C4WVDQ.js} +1 -1
- package/dist/mcp-chunks/{chunk-XRGLP3Z2.js → chunk-GPCLDF6U.js} +1 -1
- package/dist/mcp-chunks/{chunk-KSGYBW3F.js → chunk-GQHTGV5E.js} +72 -22
- package/dist/mcp-chunks/{chunk-64EP2BVO.js → chunk-HULRE4D2.js} +1 -1
- package/dist/mcp-chunks/{chunk-UENXT3NE.js → chunk-ILSK6AWI.js} +1 -1
- package/dist/mcp-chunks/{chunk-RBVYCKCD.js → chunk-ILULMM2E.js} +2 -2
- package/dist/mcp-chunks/{chunk-NZOIX6XW.js → chunk-ITJWLDF5.js} +2 -2
- package/dist/mcp-chunks/{chunk-XUF6KARU.js → chunk-IUFDFNNP.js} +1 -1
- package/dist/mcp-chunks/chunk-JJG2OEHI.js +12 -0
- package/dist/mcp-chunks/{chunk-YPJ5EHXR.js → chunk-K56RW4HB.js} +4 -4
- package/dist/mcp-chunks/{chunk-H7F5RZXS.js → chunk-KJ3CMHWS.js} +2 -1
- package/dist/mcp-chunks/{chunk-WXBPMFSN.js → chunk-LI4L4FOV.js} +91 -34
- package/dist/mcp-chunks/{chunk-ETWN4IIA.js → chunk-LYZRCACV.js} +6 -6
- package/dist/mcp-chunks/{chunk-ZBFZ5UFE.js → chunk-MDVNQ4HM.js} +3 -1
- package/dist/mcp-chunks/{chunk-3IZQW4H4.js → chunk-MNAVFYYV.js} +212 -18
- package/dist/mcp-chunks/{chunk-7DH57OKF.js → chunk-MWD5PZ4G.js} +2 -2
- package/dist/mcp-chunks/{chunk-YSPT6F7K.js → chunk-N2HVJU7X.js} +1 -1
- package/dist/mcp-chunks/{chunk-WWO5WGH5.js → chunk-NACLB5YH.js} +5 -5
- package/dist/mcp-chunks/{chunk-QJACOI2W.js → chunk-NMF5S5DC.js} +4 -2
- package/dist/mcp-chunks/{chunk-54EWGONA.js → chunk-NPU7EMGE.js} +10 -6
- package/dist/mcp-chunks/{chunk-SFREPU3D.js → chunk-NSZY5WLR.js} +1 -1
- package/dist/mcp-chunks/{chunk-7RDLPFIO.js → chunk-QK6LUI5Q.js} +2 -2
- package/dist/mcp-chunks/{chunk-XTL4MHFH.js → chunk-QONTHFPO.js} +11 -7
- package/dist/mcp-chunks/{chunk-YTKRAHO6.js → chunk-RDOD354S.js} +4 -4
- package/dist/mcp-chunks/{chunk-2MEHGB7D.js → chunk-RXSZ2W6Y.js} +1 -1
- package/dist/mcp-chunks/{chunk-UHOKCTZT.js → chunk-RYAUNXFA.js} +1 -1
- package/dist/mcp-chunks/{chunk-GIF7LOYU.js → chunk-SCD2NAX5.js} +2 -2
- package/dist/mcp-chunks/{chunk-F3LL4EBL.js → chunk-SHZVDY6Z.js} +1 -1
- package/dist/mcp-chunks/{chunk-CNDY7WB4.js → chunk-TAVMVGD5.js} +2 -2
- package/dist/mcp-chunks/{chunk-JAKI24KR.js → chunk-U23EY5DN.js} +1 -1
- package/dist/mcp-chunks/{chunk-SB2UUURE.js → chunk-UAIJZBGL.js} +10 -10
- package/dist/mcp-chunks/{chunk-PKOJCYNA.js → chunk-UDG3RHKX.js} +2 -2
- package/dist/mcp-chunks/{chunk-CA5WFJZA.js → chunk-VC6SKXTI.js} +1 -1
- package/dist/mcp-chunks/chunk-VJ2TSA5R.js +818 -0
- package/dist/mcp-chunks/{chunk-FWP4RACK.js → chunk-VREKED5H.js} +2 -2
- package/dist/mcp-chunks/{chunk-2FSDGCHW.js → chunk-WKUCIR2F.js} +374 -527
- package/dist/mcp-chunks/chunk-XRRT3SZM.js +1931 -0
- package/dist/mcp-chunks/{chunk-GSZOK5TS.js → chunk-YDJ7E2PH.js} +3 -3
- package/dist/mcp-chunks/{chunk-LICH4Q7A.js → chunk-ZI44YPFF.js} +4 -4
- package/dist/mcp-chunks/{chunk-DEUU7WSN.js → chunk-ZNKNF2BV.js} +2 -2
- package/dist/mcp-chunks/{chunk-DXPHJFSA.js → chunk-ZSKQI4TS.js} +4 -4
- package/dist/mcp-chunks/{cli-E4P6SZLQ.js → cli-Z7KV4PCE.js} +70 -69
- package/dist/mcp-chunks/client-B3FMQNGF.js +21 -0
- package/dist/mcp-chunks/{config-command-MWF3RHPQ.js → config-command-XXCDOB3M.js} +27 -27
- package/dist/mcp-chunks/daemon-command-BAREANTC.js +35 -0
- package/dist/mcp-chunks/{dist-ZIPUENTM.js → dist-V4UB7RTR.js} +547 -402
- package/dist/mcp-chunks/{emit-ts-command-GOVJJ64A.js → emit-ts-command-FEHTMXXB.js} +16 -16
- package/dist/mcp-chunks/{generate-cli-runner-L5OQIMEY.js → generate-cli-runner-OA6XL77R.js} +49 -42
- package/dist/mcp-chunks/{inspect-cli-command-7OMMREPE.js → inspect-cli-command-UQKKE5VO.js} +9 -9
- package/dist/mcp-chunks/{launch-BWXPLPB7.js → launch-KMPDJOUH.js} +1 -1
- package/dist/mcp-chunks/{lifecycle-B5UC65PT.js → lifecycle-R3IP22MJ.js} +1 -1
- package/dist/mcp-chunks/{list-command-ZO4HVFQK.js → list-command-7ENYKBF6.js} +31 -31
- package/dist/mcp-chunks/{output-utils-M3TJ2N4M.js → output-utils-N75TOWBX.js} +3 -3
- package/dist/mcp-chunks/{prompt-CH6TK0bC-C7OTKGRD.js → prompt-CH6TK0bC-NSBYYJZH.js} +1 -1
- package/dist/mcp-chunks/{record-command-VD3HUQIC.js → record-command-XHPCL7IG.js} +5 -5
- package/dist/mcp-chunks/{replay-command-AX6IN7YD.js → replay-command-CB56L3ZA.js} +6 -6
- package/dist/mcp-chunks/{resource-command-JEZ2DW2G.js → resource-command-STEBHVT7.js} +9 -9
- package/dist/mcp-chunks/{result-utils-3YHYGS45.js → result-utils-UONY2KNY.js} +3 -3
- package/dist/mcp-chunks/runtime-Z45IVD24.js +39 -0
- package/dist/mcp-chunks/{runtime-wrapper-UREU7GC3.js → runtime-wrapper-SYYAQVO6.js} +6 -6
- package/dist/mcp-chunks/{serve-command-M47YZ6JN.js → serve-command-VYSFRZFE.js} +35 -27
- package/dist/mcp-chunks/{timeouts-THZRYP4B.js → timeouts-T3JP3MUF.js} +5 -3
- package/dist/mcp-chunks/{vault-command-53P7MLCB.js → vault-command-AJ3X7GDI.js} +58 -12
- package/dist/mcp-chunks/{webapi-PHEQZQKH.js → webapi-BLTNWSB2.js} +68 -60
- package/dist/mcp-daemon.js +30 -28
- package/dist/mcp-run-worker.js +30 -28
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +2 -1
- package/dist/mcp.js.map +1 -1
- package/dist/pi-extension.d.ts +3 -0
- package/dist/pi-extension.d.ts.map +1 -1
- package/dist/pi-extension.js +27 -0
- package/dist/pi-extension.js.map +1 -1
- package/dist/run-controller.d.ts +3 -1
- package/dist/run-controller.d.ts.map +1 -1
- package/dist/run-controller.js +10 -0
- package/dist/run-controller.js.map +1 -1
- package/dist/session.d.ts +3 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +4 -1
- package/dist/session.js.map +1 -1
- package/docs/host-api.md +12 -0
- package/docs/pi-extension.md +10 -0
- package/package.json +11 -11
- package/vendor/introspection-recipe-check/win32-x64/introspection-recipe-check.exe +0 -0
- package/dist/mcp-chunks/call-arguments-TX3F2TEE.js +0 -15
- package/dist/mcp-chunks/chunk-SRZZQ6TL.js +0 -266
- package/dist/mcp-chunks/client-2EJC4PLL.js +0 -18
- package/dist/mcp-chunks/daemon-command-6CJ26MKI.js +0 -33
- package/dist/mcp-chunks/runtime-HSYVOME7.js +0 -37
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
createKeepAliveRuntime
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-QONTHFPO.js";
|
|
5
5
|
import {
|
|
6
6
|
createRuntime
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-WKUCIR2F.js";
|
|
8
8
|
import {
|
|
9
9
|
createNonInteractiveElicitationResponder
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-VC6SKXTI.js";
|
|
11
|
+
import "./chunk-FNQV2ONG.js";
|
|
12
|
+
import "./chunk-VJ2TSA5R.js";
|
|
13
|
+
import "./chunk-MNAVFYYV.js";
|
|
14
|
+
import "./chunk-B4XFULJ6.js";
|
|
15
|
+
import "./chunk-MWD5PZ4G.js";
|
|
16
|
+
import "./chunk-RXSZ2W6Y.js";
|
|
17
17
|
import {
|
|
18
18
|
MCPORTER_VERSION
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-DEUU7WSN.js";
|
|
19
|
+
} from "./chunk-NSZY5WLR.js";
|
|
20
|
+
import "./chunk-54UGGTOX.js";
|
|
21
|
+
import "./chunk-ZNKNF2BV.js";
|
|
23
22
|
import {
|
|
24
23
|
AnnotationsSchema,
|
|
25
24
|
AudioContentSchema,
|
|
@@ -208,19 +207,22 @@ import {
|
|
|
208
207
|
UnsubscribeRequestSchema,
|
|
209
208
|
UntitledMultiSelectEnumSchemaSchema,
|
|
210
209
|
UntitledSingleSelectEnumSchemaSchema
|
|
211
|
-
} from "./chunk-
|
|
210
|
+
} from "./chunk-K56RW4HB.js";
|
|
212
211
|
import {
|
|
213
212
|
DaemonClient
|
|
214
|
-
} from "./chunk-
|
|
215
|
-
import "./chunk-
|
|
216
|
-
import "./chunk-
|
|
217
|
-
import "./chunk-
|
|
218
|
-
import "./chunk-
|
|
219
|
-
import "./chunk-
|
|
220
|
-
import "./chunk-
|
|
213
|
+
} from "./chunk-GQHTGV5E.js";
|
|
214
|
+
import "./chunk-MDVNQ4HM.js";
|
|
215
|
+
import "./chunk-XRRT3SZM.js";
|
|
216
|
+
import "./chunk-JJG2OEHI.js";
|
|
217
|
+
import "./chunk-LYZRCACV.js";
|
|
218
|
+
import "./chunk-5HQYKAE7.js";
|
|
219
|
+
import "./chunk-ETYYCEQF.js";
|
|
220
|
+
import "./chunk-2CTVPSHF.js";
|
|
221
|
+
import "./chunk-VREKED5H.js";
|
|
222
|
+
import "./chunk-DIIFWDZ7.js";
|
|
221
223
|
import {
|
|
222
224
|
isKeepAliveServer
|
|
223
|
-
} from "./chunk-
|
|
225
|
+
} from "./chunk-AJPFOQLF.js";
|
|
224
226
|
import {
|
|
225
227
|
_enum,
|
|
226
228
|
_null,
|
|
@@ -247,9 +249,10 @@ import {
|
|
|
247
249
|
} from "./chunk-LWVFSQYX.js";
|
|
248
250
|
import "./chunk-LRKZP7DJ.js";
|
|
249
251
|
|
|
250
|
-
// node_modules/.pnpm/mcporter@0.13.
|
|
252
|
+
// node_modules/.pnpm/mcporter@0.13.6/node_modules/mcporter/dist/serve.js
|
|
251
253
|
import http from "node:http";
|
|
252
254
|
import { Readable } from "node:stream";
|
|
255
|
+
import { pipeline } from "node:stream/promises";
|
|
253
256
|
|
|
254
257
|
// node_modules/.pnpm/@modelcontextprotocol+server@2.0.0/node_modules/@modelcontextprotocol/server/dist/chunk-Br0eD_fh.mjs
|
|
255
258
|
var __create = Object.create;
|
|
@@ -15574,7 +15577,7 @@ function toError2(value) {
|
|
|
15574
15577
|
return value instanceof Error ? value : new Error(String(value));
|
|
15575
15578
|
}
|
|
15576
15579
|
|
|
15577
|
-
// node_modules/.pnpm/mcporter@0.13.
|
|
15580
|
+
// node_modules/.pnpm/mcporter@0.13.6/node_modules/mcporter/dist/serve.js
|
|
15578
15581
|
var TOOL_SEPARATOR = "__";
|
|
15579
15582
|
var DEFAULT_OBJECT_SCHEMA = { type: "object" };
|
|
15580
15583
|
var DEFAULT_SERVE_HTTP_HOST = "127.0.0.1";
|
|
@@ -15744,8 +15747,13 @@ async function handleNodeRequest(handler, request, response) {
|
|
|
15744
15747
|
return;
|
|
15745
15748
|
}
|
|
15746
15749
|
const body = Readable.fromWeb(webResponse.body);
|
|
15747
|
-
body
|
|
15748
|
-
|
|
15750
|
+
await pipeHttpResponseBody(body, response);
|
|
15751
|
+
}
|
|
15752
|
+
async function pipeHttpResponseBody(body, response) {
|
|
15753
|
+
try {
|
|
15754
|
+
await pipeline(body, response);
|
|
15755
|
+
} catch {
|
|
15756
|
+
}
|
|
15749
15757
|
}
|
|
15750
15758
|
function toWebRequest(request) {
|
|
15751
15759
|
const host = request.headers.host ?? DEFAULT_SERVE_HTTP_HOST;
|
|
@@ -15839,7 +15847,7 @@ function isSchemaRecord(schema) {
|
|
|
15839
15847
|
return !!schema && typeof schema === "object" && !Array.isArray(schema);
|
|
15840
15848
|
}
|
|
15841
15849
|
|
|
15842
|
-
// node_modules/.pnpm/mcporter@0.13.
|
|
15850
|
+
// node_modules/.pnpm/mcporter@0.13.6/node_modules/mcporter/dist/cli/serve-command.js
|
|
15843
15851
|
async function handleServeCli(args, options) {
|
|
15844
15852
|
const parsed = parseServeArgs(args);
|
|
15845
15853
|
const elicitation = createNonInteractiveElicitationResponder({
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
LIST_TIMEOUT_MS,
|
|
4
|
+
STDOUT_FLUSH_TIMEOUT_MS,
|
|
4
5
|
consumeTimeoutFlag,
|
|
5
6
|
parsePositiveInteger,
|
|
6
7
|
parseTimeout,
|
|
7
8
|
resolveCallTimeout,
|
|
8
9
|
withTimeout
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-NMF5S5DC.js";
|
|
11
|
+
import "./chunk-LYZRCACV.js";
|
|
12
|
+
import "./chunk-DIIFWDZ7.js";
|
|
12
13
|
import "./chunk-LRKZP7DJ.js";
|
|
13
14
|
export {
|
|
14
15
|
LIST_TIMEOUT_MS,
|
|
16
|
+
STDOUT_FLUSH_TIMEOUT_MS,
|
|
15
17
|
consumeTimeoutFlag,
|
|
16
18
|
parsePositiveInteger,
|
|
17
19
|
parseTimeout,
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
CliUsageError
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-FW5QVG6V.js";
|
|
5
5
|
import {
|
|
6
6
|
clearVaultEntry,
|
|
7
7
|
getOAuthVaultPath,
|
|
8
8
|
saveVaultEntry
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-B4XFULJ6.js";
|
|
10
|
+
import "./chunk-ETYYCEQF.js";
|
|
11
|
+
import "./chunk-VREKED5H.js";
|
|
12
|
+
import "./chunk-DIIFWDZ7.js";
|
|
13
13
|
import "./chunk-LRKZP7DJ.js";
|
|
14
14
|
|
|
15
|
-
// node_modules/.pnpm/mcporter@0.13.
|
|
15
|
+
// node_modules/.pnpm/mcporter@0.13.6/node_modules/mcporter/dist/cli/vault-command.js
|
|
16
16
|
import fs from "node:fs/promises";
|
|
17
17
|
async function handleVault(runtime, args, options = {}) {
|
|
18
18
|
const subcommand = args.shift();
|
|
@@ -36,7 +36,7 @@ async function handleVaultSet(runtime, args, options) {
|
|
|
36
36
|
throw new CliUsageError(`Unknown vault set argument '${args[0]}'.`);
|
|
37
37
|
}
|
|
38
38
|
const definition = runtime.getDefinition(server);
|
|
39
|
-
const payload = validateVaultPayload(
|
|
39
|
+
const payload = validateVaultPayload(parseVaultPayload(await readPayload(source, options), source));
|
|
40
40
|
await saveVaultEntry(definition, {
|
|
41
41
|
tokens: payload.tokens,
|
|
42
42
|
...payload.clientInfo ? { clientInfo: payload.clientInfo } : {}
|
|
@@ -92,6 +92,13 @@ async function readPayload(source, options) {
|
|
|
92
92
|
process.stdin.on("error", reject);
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
|
+
function parseVaultPayload(raw, source) {
|
|
96
|
+
try {
|
|
97
|
+
return JSON.parse(raw);
|
|
98
|
+
} catch {
|
|
99
|
+
throw new CliUsageError(source.kind === "file" ? `Vault payload file '${source.path}' is not valid JSON.` : "Vault payload from stdin is not valid JSON.");
|
|
100
|
+
}
|
|
101
|
+
}
|
|
95
102
|
function validateVaultPayload(value) {
|
|
96
103
|
if (!value || typeof value !== "object") {
|
|
97
104
|
throw new CliUsageError("Vault payload must be a JSON object.");
|
|
@@ -124,16 +131,50 @@ function validateOAuthTokens(tokens) {
|
|
|
124
131
|
throw new CliUsageError(`Vault payload tokens.${key} must be a string.`);
|
|
125
132
|
}
|
|
126
133
|
}
|
|
127
|
-
|
|
128
|
-
|
|
134
|
+
for (const key of ["expires_in", "expires_at", "expiresAt"]) {
|
|
135
|
+
const value = tokens[key];
|
|
136
|
+
if (value !== void 0 && (typeof value !== "number" || !Number.isFinite(value))) {
|
|
137
|
+
throw new CliUsageError(`Vault payload tokens.${key} must be a finite number.`);
|
|
138
|
+
}
|
|
129
139
|
}
|
|
130
140
|
}
|
|
141
|
+
var OAUTH_CLIENT_STRING_FIELDS = [
|
|
142
|
+
"client_id",
|
|
143
|
+
"client_secret",
|
|
144
|
+
"token_endpoint_auth_method",
|
|
145
|
+
"application_type",
|
|
146
|
+
"client_name",
|
|
147
|
+
"client_uri",
|
|
148
|
+
"logo_uri",
|
|
149
|
+
"scope",
|
|
150
|
+
"tos_uri",
|
|
151
|
+
"policy_uri",
|
|
152
|
+
"jwks_uri",
|
|
153
|
+
"software_id",
|
|
154
|
+
"software_version",
|
|
155
|
+
"software_statement",
|
|
156
|
+
"issuer"
|
|
157
|
+
];
|
|
158
|
+
var OAUTH_CLIENT_STRING_ARRAY_FIELDS = ["redirect_uris", "grant_types", "response_types", "contacts"];
|
|
159
|
+
var OAUTH_CLIENT_NUMBER_FIELDS = ["client_id_issued_at", "client_secret_expires_at"];
|
|
131
160
|
function validateOAuthClientInfo(clientInfo) {
|
|
132
|
-
for (const
|
|
133
|
-
if (
|
|
161
|
+
for (const key of OAUTH_CLIENT_STRING_FIELDS) {
|
|
162
|
+
if (clientInfo[key] !== void 0 && clientInfo[key] !== null && typeof clientInfo[key] !== "string") {
|
|
134
163
|
throw new CliUsageError(`Vault payload clientInfo.${key} must be a string.`);
|
|
135
164
|
}
|
|
136
165
|
}
|
|
166
|
+
for (const key of OAUTH_CLIENT_STRING_ARRAY_FIELDS) {
|
|
167
|
+
const value = clientInfo[key];
|
|
168
|
+
if (value !== void 0 && value !== null && (!Array.isArray(value) || value.some((item) => typeof item !== "string"))) {
|
|
169
|
+
throw new CliUsageError(`Vault payload clientInfo.${key} must be an array of strings.`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
for (const key of OAUTH_CLIENT_NUMBER_FIELDS) {
|
|
173
|
+
const value = clientInfo[key];
|
|
174
|
+
if (value !== void 0 && value !== null && (typeof value !== "number" || !Number.isFinite(value))) {
|
|
175
|
+
throw new CliUsageError(`Vault payload clientInfo.${key} must be a finite number.`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
137
178
|
}
|
|
138
179
|
function printVaultHelp() {
|
|
139
180
|
const lines = [
|
|
@@ -145,7 +186,12 @@ function printVaultHelp() {
|
|
|
145
186
|
" vault clear <server> Remove the server entry from the OAuth vault.",
|
|
146
187
|
"",
|
|
147
188
|
"Payload:",
|
|
148
|
-
' { "tokens": { "access_token": "...", "token_type": "Bearer" }, "clientInfo": { "client_id": "..." } }'
|
|
189
|
+
' { "tokens": { "access_token": "...", "token_type": "Bearer" }, "clientInfo": { "client_id": "..." } }',
|
|
190
|
+
"",
|
|
191
|
+
" clientInfo accepts a full dynamic client registration response, including the",
|
|
192
|
+
" redirect_uris, grant_types, response_types and contacts arrays, the",
|
|
193
|
+
" client_id_issued_at and client_secret_expires_at timestamps, and provider",
|
|
194
|
+
" metadata outside RFC 7591."
|
|
149
195
|
];
|
|
150
196
|
console.error(lines.join("\n"));
|
|
151
197
|
}
|