youmd 0.13.0 → 0.13.2

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.
Files changed (36) hide show
  1. package/dist/commands/agents.js +1 -1
  2. package/dist/commands/agents.js.map +1 -1
  3. package/dist/commands/connect.d.ts +3 -0
  4. package/dist/commands/connect.d.ts.map +1 -1
  5. package/dist/commands/connect.js +39 -0
  6. package/dist/commands/connect.js.map +1 -1
  7. package/dist/commands/mcp.d.ts +4 -1
  8. package/dist/commands/mcp.d.ts.map +1 -1
  9. package/dist/commands/mcp.js +16 -9
  10. package/dist/commands/mcp.js.map +1 -1
  11. package/dist/generated/capability-registry.d.ts +112 -96
  12. package/dist/generated/capability-registry.d.ts.map +1 -1
  13. package/dist/generated/capability-registry.js +113 -96
  14. package/dist/generated/capability-registry.js.map +1 -1
  15. package/dist/generated/native-host-integrity.d.ts +2 -0
  16. package/dist/generated/native-host-integrity.d.ts.map +1 -0
  17. package/dist/generated/native-host-integrity.js +6 -0
  18. package/dist/generated/native-host-integrity.js.map +1 -0
  19. package/dist/index.js +2 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/lib/bamf-context-link.d.ts +90 -0
  22. package/dist/lib/bamf-context-link.d.ts.map +1 -0
  23. package/dist/lib/bamf-context-link.js +469 -0
  24. package/dist/lib/bamf-context-link.js.map +1 -0
  25. package/dist/lib/connected-access-native.d.ts +12 -0
  26. package/dist/lib/connected-access-native.d.ts.map +1 -1
  27. package/dist/lib/connected-access-native.js +142 -1
  28. package/dist/lib/connected-access-native.js.map +1 -1
  29. package/dist/lib/connected-context.d.ts.map +1 -1
  30. package/dist/lib/connected-context.js +2 -0
  31. package/dist/lib/connected-context.js.map +1 -1
  32. package/native/prebuilds/darwin-universal/youmd-native-host +0 -0
  33. package/native/prebuilds/darwin-universal/youmd-native-host.sha256 +1 -0
  34. package/native/prebuilds/darwin-universal/youmd_safe_open.node +0 -0
  35. package/package.json +3 -2
  36. package/scripts/build-native-host.mjs +51 -0
@@ -0,0 +1,469 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.BAMF_CALLBACK_PATH = exports.YOUMD_BAMF_API_BASE = exports.BAMF_CONTEXT_ENDPOINT = exports.BAMF_CONTEXT_AUTHORIZE_URL = exports.BAMF_CONTEXT_RUNTIME_BINDING = exports.BAMF_CONTEXT_APPLICATION_ID = void 0;
37
+ exports.createNativeBAMFContext = createNativeBAMFContext;
38
+ exports.createBAMFLoopback = createBAMFLoopback;
39
+ exports.loadBAMFStoredLink = loadBAMFStoredLink;
40
+ exports.saveBAMFStoredLink = saveBAMFStoredLink;
41
+ exports.bamfAuthorizationUrl = bamfAuthorizationUrl;
42
+ exports.startBAMFContextLink = startBAMFContextLink;
43
+ exports.performBAMFContextAction = performBAMFContextAction;
44
+ const crypto = __importStar(require("crypto"));
45
+ const fs = __importStar(require("fs"));
46
+ const http = __importStar(require("http"));
47
+ const os = __importStar(require("os"));
48
+ const path = __importStar(require("path"));
49
+ const canonical_json_1 = require("./canonical-json");
50
+ const config_1 = require("./config");
51
+ const machine_identity_1 = require("./machine-identity");
52
+ const connected_access_native_1 = require("./connected-access-native");
53
+ exports.BAMF_CONTEXT_APPLICATION_ID = "app:youmd-bamf-context-link-helper";
54
+ exports.BAMF_CONTEXT_RUNTIME_BINDING = "com.youmd.bamf-context-link-helper";
55
+ exports.BAMF_CONTEXT_AUTHORIZE_URL = "https://bamf.com/connect/youmd";
56
+ exports.BAMF_CONTEXT_ENDPOINT = "https://apwjquujfnnpyapwjwrw.supabase.co/functions/v1/bamf-youmd-context-link";
57
+ exports.YOUMD_BAMF_API_BASE = "https://kindly-cassowary-600.convex.site/api/v1/me/agent-access";
58
+ exports.BAMF_CALLBACK_PATH = "/bamf-context-link/callback";
59
+ const B64URL_43 = /^[A-Za-z0-9_-]{43}$/;
60
+ const BAMF_CHALLENGE = /^bctx_ch_[A-Za-z0-9_-]{32,128}$/;
61
+ const BAMF_GRANT = /^bctx_v1_[A-Za-z0-9_-]{43}$/;
62
+ const YOUMD_LINK = /^bamfctx:[A-Za-z0-9_-]{16,128}$/;
63
+ const NONCE = /^nonce:[A-Za-z0-9_-]{16,128}$/;
64
+ const COMPACT_JWS = /^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/;
65
+ const SAFE_REQUEST_ID = /^[A-Za-z0-9._:-]{8,160}$/;
66
+ const SAFE_ERROR_CODE = /^[a-z0-9_]{3,80}$/;
67
+ const MAX_CALLBACK_BODY = 2048;
68
+ const CALLBACK_TIMEOUT_MS = 5 * 60000;
69
+ const recentResponseIds = new Set();
70
+ function exactObject(value, keys, code) {
71
+ if (!value || typeof value !== "object" || Array.isArray(value))
72
+ throw new Error(code);
73
+ const row = value;
74
+ if (Object.keys(row).sort().join(",") !== [...keys].sort().join(","))
75
+ throw new Error(code);
76
+ return row;
77
+ }
78
+ function exactJwk(value) {
79
+ const row = exactObject(value, ["crv", "kty", "x"], "bamf_native_key_invalid");
80
+ if (row.kty !== "OKP" || row.crv !== "Ed25519" || typeof row.x !== "string" || !B64URL_43.test(row.x))
81
+ throw new Error("bamf_native_key_invalid");
82
+ return { kty: "OKP", crv: "Ed25519", x: row.x };
83
+ }
84
+ function thumbprint(jwk) {
85
+ return crypto.createHash("sha256").update((0, canonical_json_1.canonicalJsonString)(jwk)).digest("base64url");
86
+ }
87
+ function nativeLoaded(deps) {
88
+ if (!deps.run)
89
+ return (0, connected_access_native_1.provisionBundledNativeHost)(deps);
90
+ return { config: { bindingClass: "cli_only" }, paths: (0, connected_access_native_1.nativeHostPaths)((deps.homedir ?? os.homedir)()) };
91
+ }
92
+ function exactNativeEnvelope(value, keys, type, status) {
93
+ exactObject(value, keys, "bamf_native_response_invalid");
94
+ if (value.type !== type || value.status !== status || value.ok !== true || value.keyStorage !== "macos_keychain_backed" || value.authorityGranted !== false || value.secretValuesExposed !== false)
95
+ throw new Error("bamf_native_response_invalid");
96
+ }
97
+ function parseNativeKey(value, type, status) {
98
+ exactNativeEnvelope(value, ["type", "ok", "status", "publicJwk", "keyThumbprint", "keyStorage", "authorityGranted", "secretValuesExposed"], type, status);
99
+ const publicJwk = exactJwk(value.publicJwk);
100
+ if (typeof value.keyThumbprint !== "string" || value.keyThumbprint !== thumbprint(publicJwk))
101
+ throw new Error("bamf_native_key_invalid");
102
+ return { publicJwk, keyThumbprint: value.keyThumbprint };
103
+ }
104
+ function decodeJWTPart(value) {
105
+ if (!/^[A-Za-z0-9_-]+$/.test(value))
106
+ throw new Error("bamf_native_dpop_invalid");
107
+ try {
108
+ return JSON.parse(Buffer.from(value, "base64url").toString("utf8"));
109
+ }
110
+ catch {
111
+ throw new Error("bamf_native_dpop_invalid");
112
+ }
113
+ }
114
+ function parseNativeProof(value, expectedStatus, expected) {
115
+ exactNativeEnvelope(value, ["type", "ok", "status", "dpopProof", "publicJwk", "keyThumbprint", "iat", "jti", "keyStorage", "authorityGranted", "secretValuesExposed"], "connected_access.bamf_dpop_result.v1", expectedStatus);
116
+ const key = parseNativeKey({ type: "connected_access.ensure_bamf_context_key_result.v1", ok: true, status: "key_ready", publicJwk: value.publicJwk, keyThumbprint: value.keyThumbprint, keyStorage: value.keyStorage, authorityGranted: false, secretValuesExposed: false }, "connected_access.ensure_bamf_context_key_result.v1", "key_ready");
117
+ if (typeof value.dpopProof !== "string" || !COMPACT_JWS.test(value.dpopProof) || typeof value.iat !== "number" || !Number.isInteger(value.iat) || typeof value.jti !== "string" || !/^[A-Za-z0-9_-]{22,128}$/.test(value.jti))
118
+ throw new Error("bamf_native_dpop_invalid");
119
+ const [encodedHeader, encodedPayload] = value.dpopProof.split(".");
120
+ const header = exactObject(decodeJWTPart(encodedHeader), ["alg", "jwk", "typ"], "bamf_native_dpop_invalid");
121
+ const expectedPayloadKeys = ["htm", "htu", "iat", "jti", ...(expected.nonce ? ["nonce"] : []), ...(expected.ath ? ["ath"] : [])];
122
+ const payload = exactObject(decodeJWTPart(encodedPayload), expectedPayloadKeys, "bamf_native_dpop_invalid");
123
+ if (header.alg !== "EdDSA" || header.typ !== "dpop+jwt" || (0, canonical_json_1.canonicalJsonString)(exactJwk(header.jwk)) !== (0, canonical_json_1.canonicalJsonString)(key.publicJwk)
124
+ || payload.htm !== "POST" || payload.htu !== expected.htu || payload.iat !== value.iat || payload.jti !== value.jti
125
+ || (expected.nonce ? payload.nonce !== expected.nonce : "nonce" in payload)
126
+ || (expected.ath ? payload.ath !== expected.ath : "ath" in payload))
127
+ throw new Error("bamf_native_dpop_invalid");
128
+ return { ...key, dpopProof: value.dpopProof, iat: value.iat, jti: value.jti };
129
+ }
130
+ function createNativeBAMFContext(deps = {}) {
131
+ const common = { applicationId: exports.BAMF_CONTEXT_APPLICATION_ID, runtimeBinding: exports.BAMF_CONTEXT_RUNTIME_BINDING };
132
+ const call = (request) => (0, connected_access_native_1.nativeHostCall)(request, nativeLoaded(deps), deps);
133
+ return {
134
+ ensureKey: async () => parseNativeKey(await call({ type: "connected_access.ensure_bamf_context_key_request.v1", ...common }), "connected_access.ensure_bamf_context_key_result.v1", "key_ready"),
135
+ signYouMdComplete: async ({ nonce }) => parseNativeProof(await call({ type: "connected_access.bamf_youmd_complete_dpop_request.v1", ...common, nonce }), "signed_bamf_youmd_complete_proof", { htu: `${exports.YOUMD_BAMF_API_BASE}/bamf-context-links/complete`, nonce }),
136
+ signResource: async ({ action, grantRef }) => parseNativeProof(await call({ type: "connected_access.bamf_resource_dpop_request.v1", ...common, action, grantRef }), `signed_bamf_${action}_proof`, { htu: `${exports.BAMF_CONTEXT_ENDPOINT}?action=${action}`, ath: crypto.createHash("sha256").update(grantRef).digest("base64url") }),
137
+ };
138
+ }
139
+ function safeCallbackBody(req) {
140
+ return new Promise((resolve, reject) => {
141
+ const declared = req.headers["content-length"];
142
+ if (typeof declared !== "string" || !/^\d{1,4}$/.test(declared) || Number(declared) > MAX_CALLBACK_BODY)
143
+ return reject(new Error("bamf_callback_body_invalid"));
144
+ const chunks = [];
145
+ let size = 0;
146
+ req.on("data", (chunk) => { size += chunk.length; if (size > MAX_CALLBACK_BODY) {
147
+ req.destroy();
148
+ reject(new Error("bamf_callback_body_invalid"));
149
+ }
150
+ else
151
+ chunks.push(chunk); });
152
+ req.once("end", () => resolve(Buffer.concat(chunks).toString("utf8")));
153
+ req.once("error", () => reject(new Error("bamf_callback_body_invalid")));
154
+ });
155
+ }
156
+ function callbackResponse(res, status, message) {
157
+ const body = `<!doctype html><meta charset="utf-8"><title>BAMF context link</title><p>${message}</p>`;
158
+ res.writeHead(status, { "Cache-Control": "no-store", "Content-Security-Policy": "default-src 'none'; style-src 'unsafe-inline'", "Content-Type": "text/html; charset=utf-8", "Referrer-Policy": "no-referrer", "X-Content-Type-Options": "nosniff" });
159
+ res.end(body);
160
+ }
161
+ /** A one-request, literal-IPv4 loopback receiver for BAMF's native form POST. */
162
+ async function createBAMFLoopback(state, timeoutMs = CALLBACK_TIMEOUT_MS) {
163
+ if (!B64URL_43.test(state) || !Number.isInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > CALLBACK_TIMEOUT_MS)
164
+ throw new Error("bamf_loopback_invalid");
165
+ let settle;
166
+ let fail;
167
+ let settled = false;
168
+ const callback = new Promise((resolve, reject) => { settle = resolve; fail = reject; });
169
+ const server = http.createServer(async (req, res) => {
170
+ const address = server.address();
171
+ const port = address && typeof address === "object" ? address.port : 0;
172
+ const validHeaders = req.method === "POST" && req.url === exports.BAMF_CALLBACK_PATH && req.headers.host === `127.0.0.1:${port}`
173
+ && req.headers.origin === "https://bamf.com" && req.headers["content-type"] === "application/x-www-form-urlencoded"
174
+ && req.headers["sec-fetch-mode"] === "navigate" && req.headers["sec-fetch-dest"] === "document";
175
+ if (!validHeaders) {
176
+ callbackResponse(res, 400, "Invalid callback.");
177
+ return;
178
+ }
179
+ try {
180
+ const body = await safeCallbackBody(req);
181
+ const params = new URLSearchParams(body);
182
+ const entries = [...params.entries()];
183
+ const approved = entries.length === 2 && entries.filter(([key]) => key === "state").length === 1 && entries.filter(([key]) => key === "bamfChallenge").length === 1
184
+ && params.get("state") === state && BAMF_CHALLENGE.test(params.get("bamfChallenge") ?? "");
185
+ const denied = entries.length === 2 && entries.filter(([key]) => key === "state").length === 1 && entries.filter(([key]) => key === "error").length === 1
186
+ && params.get("state") === state && params.get("error") === "access_denied";
187
+ if (!approved && !denied)
188
+ throw new Error("bamf_callback_invalid");
189
+ callbackResponse(res, 200, "BAMF connection received. Return to the terminal.");
190
+ if (!settled) {
191
+ settled = true;
192
+ server.close();
193
+ if (denied)
194
+ fail(new Error("bamf_access_denied"));
195
+ else
196
+ settle({ bamfChallenge: params.get("bamfChallenge") });
197
+ }
198
+ }
199
+ catch {
200
+ callbackResponse(res, 400, "Invalid callback.");
201
+ }
202
+ });
203
+ await new Promise((resolve, reject) => { server.once("error", reject); server.listen(0, "127.0.0.1", resolve); });
204
+ const address = server.address();
205
+ if (!address || typeof address !== "object" || address.address !== "127.0.0.1" || address.port < 1024) {
206
+ server.close();
207
+ throw new Error("bamf_loopback_unavailable");
208
+ }
209
+ const timer = setTimeout(() => { if (!settled) {
210
+ settled = true;
211
+ server.close();
212
+ fail(new Error("bamf_callback_timeout"));
213
+ } }, timeoutMs);
214
+ callback.finally(() => clearTimeout(timer)).catch(() => { });
215
+ return {
216
+ redirectUri: `http://127.0.0.1:${address.port}${exports.BAMF_CALLBACK_PATH}`,
217
+ wait: () => callback,
218
+ cancel: () => { if (!settled) {
219
+ settled = true;
220
+ server.close();
221
+ fail(new Error("bamf_callback_cancelled"));
222
+ } },
223
+ };
224
+ }
225
+ function storePath(deps) {
226
+ return path.join((deps.homedir ?? os.homedir)(), ".youmd", "bamf-context-link.json");
227
+ }
228
+ function exactStored(value) {
229
+ const row = exactObject(value, ["grantRef", "youmdLinkId", "deviceJkt", "expiresAt"], "bamf_local_state_invalid");
230
+ const parsedExpiry = typeof row.expiresAt === "string" ? Date.parse(row.expiresAt) : Number.NaN;
231
+ if (typeof row.grantRef !== "string" || !BAMF_GRANT.test(row.grantRef) || typeof row.youmdLinkId !== "string" || !YOUMD_LINK.test(row.youmdLinkId)
232
+ || typeof row.deviceJkt !== "string" || !B64URL_43.test(row.deviceJkt) || typeof row.expiresAt !== "string" || !Number.isFinite(parsedExpiry)
233
+ || new Date(parsedExpiry).toISOString() !== row.expiresAt)
234
+ throw new Error("bamf_local_state_invalid");
235
+ return row;
236
+ }
237
+ function loadBAMFStoredLink(deps = {}) {
238
+ const target = storePath(deps);
239
+ let stat;
240
+ try {
241
+ stat = fs.lstatSync(target);
242
+ }
243
+ catch (error) {
244
+ if (error.code === "ENOENT")
245
+ return null;
246
+ throw new Error("bamf_local_state_unavailable");
247
+ }
248
+ if (!stat.isFile() || stat.isSymbolicLink() || (stat.mode & 0o777) !== 0o600 || (typeof process.getuid === "function" && stat.uid !== process.getuid()))
249
+ throw new Error("bamf_local_state_permissions_unsafe");
250
+ let value;
251
+ try {
252
+ value = JSON.parse(fs.readFileSync(target, "utf8"));
253
+ }
254
+ catch {
255
+ throw new Error("bamf_local_state_invalid");
256
+ }
257
+ return exactStored(value);
258
+ }
259
+ function saveBAMFStoredLink(value, deps = {}) {
260
+ const exact = exactStored(value);
261
+ const target = storePath(deps);
262
+ const directory = path.dirname(target);
263
+ fs.mkdirSync(directory, { recursive: true, mode: 0o700 });
264
+ const dirStat = fs.lstatSync(directory);
265
+ if (!dirStat.isDirectory() || dirStat.isSymbolicLink() || (dirStat.mode & 0o022) !== 0 || (typeof process.getuid === "function" && dirStat.uid !== process.getuid()))
266
+ throw new Error("bamf_local_directory_unsafe");
267
+ if (fs.existsSync(target)) {
268
+ const current = fs.lstatSync(target);
269
+ if (!current.isFile() || current.isSymbolicLink())
270
+ throw new Error("bamf_local_state_permissions_unsafe");
271
+ }
272
+ const temporary = path.join(directory, `.bamf-context-link.${process.pid}.${crypto.randomBytes(8).toString("hex")}`);
273
+ const descriptor = fs.openSync(temporary, "wx", 0o600);
274
+ try {
275
+ fs.writeFileSync(descriptor, `${JSON.stringify(exact)}\n`, "utf8");
276
+ fs.fsyncSync(descriptor);
277
+ }
278
+ finally {
279
+ fs.closeSync(descriptor);
280
+ }
281
+ fs.chmodSync(temporary, 0o600);
282
+ fs.renameSync(temporary, target);
283
+ fs.chmodSync(target, 0o600);
284
+ }
285
+ function removeBAMFStoredLink(deps) {
286
+ const target = storePath(deps);
287
+ const stored = loadBAMFStoredLink(deps);
288
+ if (!stored)
289
+ throw new Error("bamf_not_connected");
290
+ fs.unlinkSync(target);
291
+ }
292
+ function deviceId(jkt) {
293
+ const machine = (0, machine_identity_1.getPhysicalMachineKey)();
294
+ return `device:bamf_${crypto.createHash("sha256").update(`${machine}:${jkt}`).digest("hex").slice(0, 48)}`;
295
+ }
296
+ async function jsonResponse(response) {
297
+ const contentType = response.headers.get("content-type") ?? "";
298
+ if (!contentType.toLowerCase().startsWith("application/json"))
299
+ throw new Error("bamf_api_response_invalid");
300
+ const text = await response.text();
301
+ if (Buffer.byteLength(text) > 32768)
302
+ throw new Error("bamf_api_response_invalid");
303
+ try {
304
+ return JSON.parse(text);
305
+ }
306
+ catch {
307
+ throw new Error("bamf_api_response_invalid");
308
+ }
309
+ }
310
+ function safeServerError(response, value) {
311
+ try {
312
+ const outer = exactObject(value, ["error"], "invalid");
313
+ const error = exactObject(outer.error, ["code", "message", "request_id"], "invalid");
314
+ const code = typeof error.code === "string" && SAFE_ERROR_CODE.test(error.code) ? error.code : "request_failed";
315
+ return new Error(`bamf_http_${response.status}_${code}`);
316
+ }
317
+ catch {
318
+ return new Error(`bamf_http_${response.status}_request_failed`);
319
+ }
320
+ }
321
+ function registerResponseId(value) {
322
+ if (typeof value !== "string" || !SAFE_REQUEST_ID.test(value) || recentResponseIds.has(value))
323
+ throw new Error("bamf_response_replayed");
324
+ recentResponseIds.add(value);
325
+ if (recentResponseIds.size > 256)
326
+ recentResponseIds.delete(recentResponseIds.values().next().value);
327
+ return value;
328
+ }
329
+ async function bamfPost(action, body, dpop, request) {
330
+ const endpoint = action === "connect" ? exports.BAMF_CONTEXT_ENDPOINT : `${exports.BAMF_CONTEXT_ENDPOINT}?action=${action}`;
331
+ const headers = { Accept: "application/json", "Cache-Control": "no-store", "Content-Type": "application/json" };
332
+ if (dpop)
333
+ headers.DPoP = dpop;
334
+ // Never add Authorization here. The authenticated BAMF browser transaction
335
+ // was consumed through the assertion challenge and PKCE binding.
336
+ const response = await request(endpoint, { method: "POST", headers, body: JSON.stringify(body), redirect: "error", signal: AbortSignal.timeout(15000) });
337
+ const value = await jsonResponse(response);
338
+ if (!response.ok)
339
+ throw safeServerError(response, value);
340
+ return value;
341
+ }
342
+ async function ownerPost(pathname, body, token, request, dpop) {
343
+ const headers = { Accept: "application/json", Authorization: `Bearer ${token}`, "Cache-Control": "no-store", "Content-Type": "application/json" };
344
+ if (dpop)
345
+ headers.DPoP = dpop;
346
+ const response = await request(`${exports.YOUMD_BAMF_API_BASE}${pathname}`, { method: "POST", headers, body: JSON.stringify(body), redirect: "error", signal: AbortSignal.timeout(15000) });
347
+ const value = await jsonResponse(response);
348
+ if (!response.ok)
349
+ throw new Error(`youmd_bamf_http_${response.status}`);
350
+ return value;
351
+ }
352
+ async function ensureYouMdBinding(key, token, request) {
353
+ const id = deviceId(key.keyThumbprint);
354
+ const enrolled = await ownerPost("/device-keys/enroll", { deviceId: id, publicJwk: (0, canonical_json_1.canonicalJsonString)(key.publicJwk) }, token, request);
355
+ const deviceKey = enrolled.deviceKey && typeof enrolled.deviceKey === "object" ? enrolled.deviceKey : {};
356
+ if (typeof deviceKey.keyId !== "string" || !/^dak_[A-Za-z0-9]{32}$/.test(deviceKey.keyId))
357
+ throw new Error("youmd_bamf_key_enrollment_invalid");
358
+ const registered = await ownerPost("/applications/register", { applicationId: exports.BAMF_CONTEXT_APPLICATION_ID, runtime: "native_helper", runtimeBinding: exports.BAMF_CONTEXT_RUNTIME_BINDING, allowedOrigins: ["https://www.you.md"] }, token, request);
359
+ const application = registered.application && typeof registered.application === "object" ? registered.application : {};
360
+ if (application.applicationId !== exports.BAMF_CONTEXT_APPLICATION_ID || application.runtimeBinding !== exports.BAMF_CONTEXT_RUNTIME_BINDING)
361
+ throw new Error("youmd_bamf_application_invalid");
362
+ return { deviceId: id, keyId: deviceKey.keyId };
363
+ }
364
+ function parseProjection(value) {
365
+ const row = exactObject(value, ["portal_slug", "allowed_capability_identifiers", "freshness", "revision", "authorityGranted", "secretValuesExposed"], "bamf_projection_invalid");
366
+ if (typeof row.portal_slug !== "string" || !/^[a-z0-9][a-z0-9-]{1,80}$/.test(row.portal_slug) || !Array.isArray(row.allowed_capability_identifiers) || row.allowed_capability_identifiers.length !== 1 || row.allowed_capability_identifiers[0] !== "portal.context.read"
367
+ || typeof row.freshness !== "string" || !Number.isFinite(Date.parse(row.freshness)) || typeof row.revision !== "number" || !Number.isInteger(row.revision) || row.revision < 1 || row.authorityGranted !== false || row.secretValuesExposed !== false)
368
+ throw new Error("bamf_projection_invalid");
369
+ return row;
370
+ }
371
+ function publicResult(action, grantExpiresAt, projection, revoked) {
372
+ return { ok: true, action, connected: action !== "revoke", ...(grantExpiresAt ? { expiresAt: grantExpiresAt } : {}), ...(projection ? { freshUntil: projection.freshness, projection } : {}), ...(revoked ? { revoked } : {}), authorityGranted: false, secretValuesExposed: false };
373
+ }
374
+ function bamfAuthorizationUrl(input) {
375
+ if (!B64URL_43.test(input.state) || !B64URL_43.test(input.deviceJkt) || !B64URL_43.test(input.codeChallenge) || !/^http:\/\/127\.0\.0\.1:\d{4,5}\/bamf-context-link\/callback$/.test(input.redirectUri))
376
+ throw new Error("bamf_authorization_url_invalid");
377
+ const url = new URL(exports.BAMF_CONTEXT_AUTHORIZE_URL);
378
+ url.searchParams.set("state", input.state);
379
+ url.searchParams.set("device_jkt", input.deviceJkt);
380
+ url.searchParams.set("code_challenge", input.codeChallenge);
381
+ url.searchParams.set("code_challenge_method", "S256");
382
+ url.searchParams.set("redirect_uri", input.redirectUri);
383
+ return url.toString();
384
+ }
385
+ async function startBAMFContextLink(deps = {}) {
386
+ const token = (deps.authToken ?? config_1.getAuthToken)();
387
+ if (!token)
388
+ throw new Error("authentication_required");
389
+ const existing = loadBAMFStoredLink(deps);
390
+ if (existing) {
391
+ if (Date.parse(existing.expiresAt) <= Date.now())
392
+ removeBAMFStoredLink(deps);
393
+ else
394
+ throw new Error("bamf_already_connected");
395
+ }
396
+ const request = deps.fetch ?? fetch;
397
+ const native = deps.native ?? createNativeBAMFContext(deps.nativeHostDeps);
398
+ const random = deps.randomBytes ?? crypto.randomBytes;
399
+ const state = random(32).toString("base64url");
400
+ const verifier = random(64).toString("base64url");
401
+ if (!B64URL_43.test(state) || !/^[A-Za-z0-9._~-]{43,128}$/.test(verifier))
402
+ throw new Error("bamf_randomness_invalid");
403
+ const codeChallenge = crypto.createHash("sha256").update(verifier).digest("base64url");
404
+ const key = await native.ensureKey();
405
+ const binding = await ensureYouMdBinding(key, token, request);
406
+ const loopback = await (deps.createLoopback ?? createBAMFLoopback)(state, deps.callbackTimeoutMs ?? CALLBACK_TIMEOUT_MS);
407
+ try {
408
+ const authorizationUrl = bamfAuthorizationUrl({ state, deviceJkt: key.keyThumbprint, codeChallenge, redirectUri: loopback.redirectUri });
409
+ (deps.openUrl ?? (() => { throw new Error("bamf_browser_open_unavailable"); }))(authorizationUrl);
410
+ const { bamfChallenge } = await loopback.wait();
411
+ const prepared = await ownerPost("/bamf-context-links/prepare", { deviceId: binding.deviceId, keyId: binding.keyId, applicationId: exports.BAMF_CONTEXT_APPLICATION_ID, audience: "bamf:context-link", scope: "portal.context.read", bamfChallenge, ownerConsent: true }, token, request);
412
+ const exactPrepared = exactObject(prepared, ["linkId", "nonce", "expiresAt", "authorityGranted", "secretValuesExposed"], "youmd_bamf_prepare_invalid");
413
+ if (typeof exactPrepared.linkId !== "string" || !YOUMD_LINK.test(exactPrepared.linkId) || typeof exactPrepared.nonce !== "string" || !NONCE.test(exactPrepared.nonce) || typeof exactPrepared.expiresAt !== "number" || !Number.isInteger(exactPrepared.expiresAt) || exactPrepared.expiresAt <= Date.now() || exactPrepared.authorityGranted !== false || exactPrepared.secretValuesExposed !== false)
414
+ throw new Error("youmd_bamf_prepare_invalid");
415
+ const proof = await native.signYouMdComplete({ nonce: exactPrepared.nonce });
416
+ if (proof.keyThumbprint !== key.keyThumbprint)
417
+ throw new Error("bamf_native_key_changed");
418
+ const completed = await ownerPost("/bamf-context-links/complete", { linkId: exactPrepared.linkId, nonce: exactPrepared.nonce, bamfChallenge }, token, request, proof.dpopProof);
419
+ const exactComplete = exactObject(completed, ["jws", "authorityGranted", "secretValuesExposed"], "youmd_bamf_complete_invalid");
420
+ if (typeof exactComplete.jws !== "string" || !COMPACT_JWS.test(exactComplete.jws) || exactComplete.authorityGranted !== false || exactComplete.secretValuesExposed !== false)
421
+ throw new Error("youmd_bamf_complete_invalid");
422
+ const connected = await bamfPost("connect", { action: "connect", assertion: exactComplete.jws, state, verifier, redirectUri: loopback.redirectUri }, undefined, request);
423
+ const exactConnected = exactObject(connected, ["ok", "request_id", "grant_ref", "projection"], "bamf_connect_response_invalid");
424
+ if (exactConnected.ok !== true || typeof exactConnected.grant_ref !== "string" || !BAMF_GRANT.test(exactConnected.grant_ref))
425
+ throw new Error("bamf_connect_response_invalid");
426
+ registerResponseId(exactConnected.request_id);
427
+ const projection = parseProjection(exactConnected.projection);
428
+ saveBAMFStoredLink({ grantRef: exactConnected.grant_ref, youmdLinkId: exactPrepared.linkId, deviceJkt: key.keyThumbprint, expiresAt: projection.freshness }, deps);
429
+ return publicResult("start", projection.freshness, projection);
430
+ }
431
+ finally {
432
+ loopback.cancel();
433
+ }
434
+ }
435
+ async function performBAMFContextAction(action, deps = {}) {
436
+ const stored = loadBAMFStoredLink(deps);
437
+ if (!stored)
438
+ throw new Error("bamf_not_connected");
439
+ const native = deps.native ?? createNativeBAMFContext(deps.nativeHostDeps);
440
+ const request = deps.fetch ?? fetch;
441
+ const proof = await native.signResource({ action, grantRef: stored.grantRef });
442
+ if (proof.keyThumbprint !== stored.deviceJkt)
443
+ throw new Error("bamf_native_key_changed");
444
+ let response;
445
+ try {
446
+ response = await bamfPost(action, { action, grantRef: stored.grantRef }, proof.dpopProof, request);
447
+ }
448
+ catch (error) {
449
+ if (error instanceof Error && error.message === "bamf_http_401_context_link_grant_unavailable") {
450
+ removeBAMFStoredLink(deps);
451
+ throw new Error("bamf_not_connected");
452
+ }
453
+ throw error;
454
+ }
455
+ if (action === "revoke") {
456
+ const exact = exactObject(response, ["ok", "request_id", "revoked", "authorityGranted", "secretValuesExposed"], "bamf_revoke_response_invalid");
457
+ if (exact.ok !== true || exact.revoked !== true || exact.authorityGranted !== false || exact.secretValuesExposed !== false)
458
+ throw new Error("bamf_revoke_response_invalid");
459
+ registerResponseId(exact.request_id);
460
+ removeBAMFStoredLink(deps);
461
+ return publicResult("revoke", undefined, undefined, true);
462
+ }
463
+ const exact = exactObject(response, ["ok", "request_id", "projection"], "bamf_resource_response_invalid");
464
+ if (exact.ok !== true)
465
+ throw new Error("bamf_resource_response_invalid");
466
+ registerResponseId(exact.request_id);
467
+ return publicResult(action, stored.expiresAt, parseProjection(exact.projection));
468
+ }
469
+ //# sourceMappingURL=bamf-context-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bamf-context-link.js","sourceRoot":"","sources":["../../src/lib/bamf-context-link.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,18 @@ export type NativeHostDeps = {
24
24
  readFileSync?: typeof fs.readFileSync;
25
25
  getuid?: () => number | undefined;
26
26
  run?: NativeHostRunner;
27
+ platform?: NodeJS.Platform;
28
+ bundledExecutablePath?: string;
29
+ renameSync?: typeof fs.renameSync;
30
+ };
31
+ export declare function isUniversalMacOSNativeHost(bytes: Buffer): boolean;
32
+ /**
33
+ * Provision the npm-bundled universal helper at one fixed private location.
34
+ * Existing exact browser bindings and Chrome manifests are never touched.
35
+ */
36
+ export declare function provisionBundledNativeHost(deps?: NativeHostDeps): {
37
+ config: NativeHostConfig;
38
+ paths: NativeHostPaths;
27
39
  };
28
40
  export declare function nativeHostPaths(homedir?: string): NativeHostPaths;
29
41
  export declare function parseNativeHostConfig(raw: string): NativeHostConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"connected-access-native.d.ts","sourceRoot":"","sources":["../../src/lib/connected-access-native.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAKzB,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,QAAY,CAAC;AAiBhD,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,8BAA8B,GAAG,8BAA8B,CAAC;CAC/E,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG;IACpC,4EAA4E;IAC5E,YAAY,EAAE,UAAU,CAAC;CAC1B,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,GAAG,uBAAuB,CAAC;AAEjF,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3F,qEAAqE;AACrE,eAAO,MAAM,4BAA4B,kCAAmC,CAAC;AAC7E,MAAM,MAAM,gBAAgB,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9I,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAClC,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,SAAe,GAAG,eAAe,CAOvE;AAkBD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAYnE;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,gBAAgB,GAAG,uBAAuB,CAGhG;AAED,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,cAAmB,GAAG;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,CASpH;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,GAAE,cAAmB,GAAG,IAAI,CAKlG;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKzD;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMvD;AAeD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,4EAA4E;AAC5E,eAAO,MAAM,eAAe,EAAE,gBAkC5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACzD,EAAE,EAAE,OAAO,CAAC;IACZ,gBAAgB,EAAE,KAAK,CAAC;IACxB,mBAAmB,EAAE,KAAK,CAAC;CAC5B,CAAC;AAEF,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,EAAE;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,EAC7D,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAmB7B;AAYD,wBAAsB,2BAA2B,CAAC,MAAM,CAAC,EAAE;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,EAAE,IAAI,GAAE,cAAmB;;;;;GAQzI;AAED,wBAAsB,2BAA2B,CAAC,MAAM,CAAC,EAAE;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,EAAE,IAAI,GAAE,cAAmB;;;;;;;;GAmBzI;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,EAAE,MAAM,CAAC,EAAE;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,EAAE,IAAI,GAAE,cAAmB;;;GAmB1F;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CAAC,KAAK,EAAE;IAC1D,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,EAAE,MAAM,CAAC,EAAE;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,EAAE,IAAI,GAAE,cAAmB;;;GAmC1F;AAOD,iFAAiF;AACjF,wBAAsB,6BAA6B,CAAC,KAAK,EAAE;IAAE,qBAAqB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,CAAC,EAAE;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,EAAE,IAAI,GAAE,cAAmB;;;GAWnO"}
1
+ {"version":3,"file":"connected-access-native.d.ts","sourceRoot":"","sources":["../../src/lib/connected-access-native.ts"],"names":[],"mappings":"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"}