@source-repo/rpc-cli 3.1.0 → 3.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/dist/mcp.js CHANGED
@@ -3,8 +3,8 @@ import { join, resolve, sep } from 'node:path';
3
3
  import { readableNameFor } from '@source-repo/rpc';
4
4
  import { connectNetwork } from './network.js';
5
5
  import { looksLikeSchema, startFake } from './fake.js';
6
- import { ScriptRunner, deleteScript, environmentFor, listScripts, readScript, saveScript } from './scripts.js';
7
- import { addPackage, listPackages, removePackage } from './packages.js';
6
+ import { environmentFor } from './scripts.js';
7
+ import { ScriptingService, scriptingAuthorizer } from './scripting.js';
8
8
  import { checkPeerOn, diffPeersOn } from './conform.js';
9
9
  import { openTap } from './tapping.js';
10
10
  /**
@@ -218,7 +218,11 @@ const toolsFor = (contracts, allowExec = false, scripts) => [
218
218
  properties: {
219
219
  name: { type: 'string', description: 'A name; the file becomes <name>.ts (or <name>.mjs) in the scripts directory.' },
220
220
  source: { type: 'string', description: 'The program. TypeScript by default - Node runs it directly - so `import type { Pump } from ...` gives a typed proxy.' },
221
- language: { type: 'string', enum: ['ts', 'mjs'], description: 'Default ts. Use mjs for plain JavaScript, or when the server runs on a Node older than 22.6.' }
221
+ language: { type: 'string', enum: ['ts', 'mjs'], description: 'Default ts. Use mjs for plain JavaScript, or when the server runs on a Node older than 22.6.' },
222
+ node: {
223
+ type: 'string',
224
+ description: 'Which node to do this on. Absent means this one. Another peer works only if that node has named this one as permitted to script it, which is arranged there and not here.'
225
+ }
222
226
  },
223
227
  required: ['name', 'source'],
224
228
  additionalProperties: false
@@ -227,32 +231,94 @@ const toolsFor = (contracts, allowExec = false, scripts) => [
227
231
  {
228
232
  name: 'list_scripts',
229
233
  description: 'The scripts in the directory, and which of them are running here.',
230
- inputSchema: { type: 'object', properties: {}, additionalProperties: false }
234
+ inputSchema: {
235
+ type: 'object',
236
+ properties: {
237
+ node: {
238
+ type: 'string',
239
+ description: 'Which node to do this on. Absent means this one. Another peer works only if that node has named this one as permitted to script it, which is arranged there and not here.'
240
+ }
241
+ },
242
+ additionalProperties: false
243
+ }
231
244
  },
232
245
  {
233
246
  name: 'read_script',
234
247
  description: 'The source of one saved script, for changing a part of it rather than rewriting the whole.',
235
- inputSchema: { type: 'object', properties: { name: { type: 'string' } }, required: ['name'], additionalProperties: false }
248
+ inputSchema: {
249
+ type: 'object',
250
+ properties: {
251
+ name: { type: 'string' },
252
+ node: {
253
+ type: 'string',
254
+ description: 'Which node to do this on. Absent means this one. Another peer works only if that node has named this one as permitted to script it, which is arranged there and not here.'
255
+ }
256
+ },
257
+ required: ['name'],
258
+ additionalProperties: false
259
+ }
236
260
  },
237
261
  {
238
262
  name: 'delete_script',
239
263
  description: 'Remove a script from the directory. It is stopped first if it is running.',
240
- inputSchema: { type: 'object', properties: { name: { type: 'string' } }, required: ['name'], additionalProperties: false }
264
+ inputSchema: {
265
+ type: 'object',
266
+ properties: {
267
+ name: { type: 'string' },
268
+ node: {
269
+ type: 'string',
270
+ description: 'Which node to do this on. Absent means this one. Another peer works only if that node has named this one as permitted to script it, which is arranged there and not here.'
271
+ }
272
+ },
273
+ required: ['name'],
274
+ additionalProperties: false
275
+ }
241
276
  },
242
277
  {
243
278
  name: 'start_script',
244
279
  description: 'Run a saved script as its own process. Returns immediately; use script_output to see what it printed.',
245
- inputSchema: { type: 'object', properties: { name: { type: 'string' } }, required: ['name'], additionalProperties: false }
280
+ inputSchema: {
281
+ type: 'object',
282
+ properties: {
283
+ name: { type: 'string' },
284
+ node: {
285
+ type: 'string',
286
+ description: 'Which node to do this on. Absent means this one. Another peer works only if that node has named this one as permitted to script it, which is arranged there and not here.'
287
+ }
288
+ },
289
+ required: ['name'],
290
+ additionalProperties: false
291
+ }
246
292
  },
247
293
  {
248
294
  name: 'stop_script',
249
295
  description: 'Stop a running script. Scripts are stopped anyway when this server exits.',
250
- inputSchema: { type: 'object', properties: { name: { type: 'string' } }, required: ['name'], additionalProperties: false }
296
+ inputSchema: {
297
+ type: 'object',
298
+ properties: {
299
+ name: { type: 'string' },
300
+ node: {
301
+ type: 'string',
302
+ description: 'Which node to do this on. Absent means this one. Another peer works only if that node has named this one as permitted to script it, which is arranged there and not here.'
303
+ }
304
+ },
305
+ required: ['name'],
306
+ additionalProperties: false
307
+ }
251
308
  },
252
309
  {
253
310
  name: 'list_packages',
254
311
  description: 'The npm packages a script in this directory may import, with what is declared and what is actually installed.',
255
- inputSchema: { type: 'object', properties: {}, additionalProperties: false }
312
+ inputSchema: {
313
+ type: 'object',
314
+ properties: {
315
+ node: {
316
+ type: 'string',
317
+ description: 'Which node to do this on. Absent means this one. Another peer works only if that node has named this one as permitted to script it, which is arranged there and not here.'
318
+ }
319
+ },
320
+ additionalProperties: false
321
+ }
256
322
  },
257
323
  {
258
324
  name: 'add_package',
@@ -262,7 +328,11 @@ const toolsFor = (contracts, allowExec = false, scripts) => [
262
328
  type: 'object',
263
329
  properties: {
264
330
  spec: { type: 'string', description: 'Package name, optionally with a version range.' },
265
- allowInstallScripts: { type: 'boolean', description: 'Permit the package to run its own install hooks. Default false.' }
331
+ allowInstallScripts: { type: 'boolean', description: 'Permit the package to run its own install hooks. Default false.' },
332
+ node: {
333
+ type: 'string',
334
+ description: 'Which node to do this on. Absent means this one. Another peer works only if that node has named this one as permitted to script it, which is arranged there and not here.'
335
+ }
266
336
  },
267
337
  required: ['spec'],
268
338
  additionalProperties: false
@@ -271,12 +341,34 @@ const toolsFor = (contracts, allowExec = false, scripts) => [
271
341
  {
272
342
  name: 'remove_package',
273
343
  description: 'Uninstall an npm package from the scripts directory.',
274
- inputSchema: { type: 'object', properties: { name: { type: 'string' } }, required: ['name'], additionalProperties: false }
344
+ inputSchema: {
345
+ type: 'object',
346
+ properties: {
347
+ name: { type: 'string' },
348
+ node: {
349
+ type: 'string',
350
+ description: 'Which node to do this on. Absent means this one. Another peer works only if that node has named this one as permitted to script it, which is arranged there and not here.'
351
+ }
352
+ },
353
+ required: ['name'],
354
+ additionalProperties: false
355
+ }
275
356
  },
276
357
  {
277
358
  name: 'script_output',
278
359
  description: 'The most recent output of a script, running or finished, with stderr lines marked "! ". This is how a script reports; it has no other channel.',
279
- inputSchema: { type: 'object', properties: { name: { type: 'string' } }, required: ['name'], additionalProperties: false }
360
+ inputSchema: {
361
+ type: 'object',
362
+ properties: {
363
+ name: { type: 'string' },
364
+ node: {
365
+ type: 'string',
366
+ description: 'Which node to do this on. Absent means this one. Another peer works only if that node has named this one as permitted to script it, which is arranged there and not here.'
367
+ }
368
+ },
369
+ required: ['name'],
370
+ additionalProperties: false
371
+ }
280
372
  }
281
373
  ]
282
374
  : [])
@@ -289,16 +381,61 @@ export const startMcp = async (options) => {
289
381
  // stdout carries the protocol, so this goes to stderr like every other word this server says.
290
382
  if (options.allowExec)
291
383
  process.stderr.write('source-rpc mcp: --allow-exec is on, so start_fake will run JavaScript or Python the client sends. Development machines only.\n');
384
+ // Said at least as loudly as --allow-exec, because it is the larger grant of the two: a handler
385
+ // is a method body in a sandbox that is not a boundary, and a script is a process with this
386
+ // server's own privileges, its environment and its bus credentials. The smaller one announcing
387
+ // itself while the bigger one stayed quiet was the wrong way round.
388
+ if (options.scripts)
389
+ process.stderr.write(`source-rpc mcp: --scripts is on, so this server will write and run programs in ${options.scripts} with your privileges, and may install packages there. Development machines only.\n`);
390
+ // Louder than the rest, because this is the one that puts it on the network rather than under
391
+ // the person at the keyboard.
392
+ if (options.scriptableBy?.length)
393
+ process.stderr.write(`source-rpc mcp: --scriptable-by is on, so ${options.scriptableBy.join(' and ')} may write and run programs on this machine over the network. They must authenticate as those names; a peer this network cannot identify is refused.\n`);
292
394
  if (!options.broker && !options.hub)
293
395
  throw new Error('startMcp: give it a broker, a hub, or both');
294
- // Exposes nothing. This is a window onto the network, not a peer offering anything to it.
295
- const connected = await connectNetwork(options);
396
+ // A window onto the network and nothing more, unless --scriptable-by names somebody - at which
397
+ // point this peer offers one namespace and the guard that comes with it. The guard goes on at
398
+ // construction rather than afterwards, so there is no instant where the namespace is reachable
399
+ // and unguarded.
400
+ const scriptableBy = options.scriptableBy?.filter((entry) => entry.trim()) ?? [];
401
+ const connected = await connectNetwork({
402
+ ...options,
403
+ ...(scriptableBy.length ? { authorize: scriptingAuthorizer({ directory: options.scripts ?? '', allow: scriptableBy }) } : {})
404
+ });
296
405
  const { network, online } = connected;
297
406
  /** Peers this server is standing up, stopped when it exits so none outlive the conversation. */
298
407
  const fakes = new Map();
299
408
  // Given the same network this server joined, so a script reads its broker url rather than
300
409
  // inventing one that is right on this machine and wrong on the next.
301
- const runner = options.scripts ? new ScriptRunner(options.scripts, environmentFor(options)) : undefined;
410
+ // The same service a node exposes to the bus, held directly rather than called over RPC - which
411
+ // is what "local" means for the guard: not a peer name to compare, but no RPC at all.
412
+ const scripting = options.scripts
413
+ ? new ScriptingService({ directory: options.scripts, environment: environmentFor(options), allow: scriptableBy })
414
+ : undefined;
415
+ // Offered to the bus only when somebody has been named. Without that the object is held for this
416
+ // server's own use and no peer can reach it, which is the difference between a node that can
417
+ // script itself and one that can be scripted.
418
+ if (scripting && scriptableBy.length)
419
+ connected.network.exposeClassInstance(scripting);
420
+ /**
421
+ * Whichever node a tool was aimed at. Absent, or this server's own name, is the local object;
422
+ * anything else is that peer's `scripting` namespace, reached the ordinary way.
423
+ *
424
+ * This is the whole of what makes a test hall one place. The tools below do not know which they
425
+ * are talking to, because there is nothing to know - the method names are the same either way,
426
+ * which is the point of having made it a namespace rather than a set of tool handlers.
427
+ */
428
+ const scriptingOn = async (node) => {
429
+ const target = typeof node === 'string' && node.trim() ? node.trim() : undefined;
430
+ if (!target || target === options.name) {
431
+ if (!scripting)
432
+ throw new Error('scripting is not enabled here - start this server with --scripts <dir>');
433
+ return scripting;
434
+ }
435
+ if (!(await connected.network.awaitPeer(target, 5000)))
436
+ throw new Error(`'${target}' is not on this network. Run list_peers to see who is.`);
437
+ return (await connected.network.proxy('scripting', target)).remote;
438
+ };
302
439
  /** A contract given inline, or the name of one saved in the contracts directory. */
303
440
  const contractFrom = async (args) => {
304
441
  if (args.schema) {
@@ -376,92 +513,76 @@ export const startMcp = async (options) => {
376
513
  return { text: `${peer}.${namespace}.${method} failed: ${failureText(e)}`, isError: true };
377
514
  }
378
515
  }
379
- if (runner && options.scripts) {
380
- const directory = options.scripts;
516
+ if (scripting && options.scripts) {
381
517
  const scriptName = String(args.name ?? '');
382
- if (name === 'save_script') {
383
- if (!scriptName || args.source === undefined)
384
- return { text: 'save_script needs name and source.', isError: true };
518
+ // One shape for every one of these: find the node, call the method, report what came
519
+ // back. A refusal from the far end arrives as Forbidden, and saying what that means is
520
+ // worth more than the code - a key is exchanged out of band, never over this bus.
521
+ const on = async (act) => {
522
+ let target;
385
523
  try {
386
- const language = args.language === 'mjs' ? 'mjs' : 'ts';
387
- return { text: `Saved ${saveScript(directory, scriptName, String(args.source), language)}. It is not running; start_script runs it.` };
524
+ target = await scriptingOn(args.node);
388
525
  }
389
526
  catch (e) {
390
- return { text: `could not save '${scriptName}': ${failureText(e)}`, isError: true };
527
+ return { text: failureText(e), isError: true };
391
528
  }
392
- }
393
- if (name === 'list_scripts')
394
- return {
395
- text: JSON.stringify(listScripts(directory).map((script) => ({
396
- ...script,
397
- running: runner.isRunning(script.name),
398
- ...(runner.status(script.name)?.ended ? { ended: runner.status(script.name).ended } : {})
399
- })), null, 2)
400
- };
401
- if (name === 'read_script') {
402
529
  try {
403
- return { text: readScript(directory, scriptName) };
530
+ return await act(target);
404
531
  }
405
532
  catch (e) {
406
- return { text: `could not read '${scriptName}': ${failureText(e)}`, isError: true };
533
+ const refused = /Forbidden/.test(failureText(e));
534
+ return {
535
+ text: refused
536
+ ? `${String(args.node)} refused: it has not named this peer as one that may script it. That is granted on the far node and the key comes to you out of band - it is deliberately not something this bus can hand over.`
537
+ : failureText(e),
538
+ isError: true
539
+ };
407
540
  }
541
+ };
542
+ if (name === 'save_script') {
543
+ if (!scriptName || args.source === undefined)
544
+ return { text: 'save_script needs name and source.', isError: true };
545
+ return await on(async (target) => ({
546
+ text: `Saved ${await target.save(scriptName, String(args.source), args.language === 'mjs' ? 'mjs' : 'ts')}. It is not running; start_script runs it.`
547
+ }));
408
548
  }
409
- if (name === 'delete_script') {
410
- try {
411
- if (runner.isRunning(scriptName))
412
- await runner.stop(scriptName);
413
- deleteScript(directory, scriptName);
549
+ if (name === 'list_scripts')
550
+ return await on(async (target) => ({ text: JSON.stringify(await target.list(), null, 2) }));
551
+ if (name === 'read_script')
552
+ return await on(async (target) => ({ text: await target.read(scriptName) }));
553
+ if (name === 'delete_script')
554
+ return await on(async (target) => {
555
+ await target.remove(scriptName);
414
556
  return { text: `${scriptName} deleted.` };
415
- }
416
- catch (e) {
417
- return { text: `could not delete '${scriptName}': ${failureText(e)}`, isError: true };
418
- }
419
- }
420
- if (name === 'start_script') {
421
- try {
422
- const started = runner.start(scriptName);
557
+ });
558
+ if (name === 'start_script')
559
+ return await on(async (target) => {
560
+ const started = await target.start(scriptName);
423
561
  return { text: `${scriptName} started as pid ${started.pid ?? 'unknown'}. It is a process of its own; script_output is how it reports.` };
424
- }
425
- catch (e) {
426
- return { text: `could not start '${scriptName}': ${failureText(e)}`, isError: true };
427
- }
428
- }
429
- if (name === 'stop_script') {
430
- try {
431
- await runner.stop(scriptName);
562
+ });
563
+ if (name === 'stop_script')
564
+ return await on(async (target) => {
565
+ await target.stop(scriptName);
432
566
  return { text: `${scriptName} stopped.` };
433
- }
434
- catch (e) {
435
- return { text: failureText(e), isError: true };
436
- }
437
- }
567
+ });
438
568
  if (name === 'list_packages')
439
- return { text: JSON.stringify(listPackages(directory), null, 2) };
440
- if (name === 'add_package') {
441
- try {
442
- const result = await addPackage(directory, String(args.spec ?? ''), args.allowInstallScripts === true);
569
+ return await on(async (target) => ({ text: JSON.stringify(await target.packages(), null, 2) }));
570
+ if (name === 'add_package')
571
+ return await on(async (target) => {
572
+ const result = await target.addPackage(String(args.spec ?? ''), args.allowInstallScripts === true);
443
573
  return { text: result.output || 'Installed.', isError: !result.ok };
444
- }
445
- catch (e) {
446
- return { text: failureText(e), isError: true };
447
- }
448
- }
449
- if (name === 'remove_package') {
450
- try {
451
- const result = await removePackage(directory, scriptName);
574
+ });
575
+ if (name === 'remove_package')
576
+ return await on(async (target) => {
577
+ const result = await target.removePackage(scriptName);
452
578
  return { text: result.output || 'Removed.', isError: !result.ok };
453
- }
454
- catch (e) {
455
- return { text: failureText(e), isError: true };
456
- }
457
- }
458
- if (name === 'script_output') {
459
- const record = runner.status(scriptName);
460
- if (!record)
461
- return { text: `'${scriptName}' has not been started here.`, isError: true };
462
- const ended = record.ended ? `\n(ended: code ${String(record.ended.code)}${record.ended.signal ? `, signal ${record.ended.signal}` : ''})` : '';
463
- return { text: (record.output.length ? record.output.join('\n') : 'It has printed nothing yet.') + ended };
464
- }
579
+ });
580
+ if (name === 'script_output')
581
+ return await on(async (target) => {
582
+ const record = await target.output(scriptName);
583
+ const ended = record.ended ? `\n(ended: code ${String(record.ended.code)}${record.ended.signal ? `, signal ${record.ended.signal}` : ''})` : '';
584
+ return { text: (record.output.length ? record.output.join('\n') : 'It has printed nothing yet.') + ended };
585
+ });
465
586
  }
466
587
  if (name === 'start_fake')
467
588
  return await startFakeTool(args);
@@ -675,7 +796,7 @@ export const startMcp = async (options) => {
675
796
  fakes.clear();
676
797
  // Scripts are separate processes, so they would outlive this one and go on holding peer
677
798
  // names nobody is serving. Stopped rather than orphaned.
678
- await runner?.stopAll();
799
+ await scripting?.close();
679
800
  await connected.close();
680
801
  };
681
802
  // Not stdout: see the note at the top. A client learns what is here from initialize.
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
package/dist/network.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { RpcServer, type MessageSigner, type MessageVerifier, type Transport } from '@source-repo/rpc';
1
+ import { RpcServer, type MessageSigner, type MessageVerifier, type RpcAuthorizer, type Transport } from '@source-repo/rpc';
2
2
  /**
3
3
  * Joining a network the way every command here joins one: an MQTT broker, a socket.io hub, or both.
4
4
  *
@@ -22,6 +22,12 @@ export interface NetworkOptions {
22
22
  verify?: MessageVerifier;
23
23
  /** Handshake credentials for a hub that authenticates. No flag: a secret does not belong in `ps`. */
24
24
  hubCredentials?: unknown;
25
+ /**
26
+ * Decides what callers may reach on this peer. Only meaningful for a window that has been given
27
+ * something to offer - see `--scriptable-by`, which is the one thing that turns this from a
28
+ * peer that exposes nothing into a peer that exposes something worth guarding.
29
+ */
30
+ authorize?: RpcAuthorizer;
25
31
  /**
26
32
  * Talk to an `https://`, `wss://` or `mqtts://` peer without checking its certificate.
27
33
  *
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAA2C,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE9J;;;;;;;GAOG;AAEH,MAAM,WAAW,cAAc;IAC3B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,mFAAmF;IACnF,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,qGAAqG;IACrG,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,YAAa,cAAc,KAAG,SAAS,EAuBpE,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,SAAS,CAAA;IAClB,6EAA6E;IAC7E,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,YAAmB,cAAc,KAAG,OAAO,CAAC,gBAAgB,CAkBtF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,cAAqB,gBAAgB,QAAQ,MAAM,WAAW,MAAM,qBAOzF,CAAA"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EAGT,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,SAAS,EACjB,MAAM,kBAAkB,CAAA;AAEzB;;;;;;;GAOG;AAEH,MAAM,WAAW,cAAc;IAC3B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,mFAAmF;IACnF,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,qGAAqG;IACrG,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;OAIG;IACH,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,YAAa,cAAc,KAAG,SAAS,EAuBpE,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,SAAS,CAAA;IAClB,6EAA6E;IAC7E,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,YAAmB,cAAc,KAAG,OAAO,CAAC,gBAAgB,CAmBtF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,cAAqB,gBAAgB,QAAQ,MAAM,WAAW,MAAM,qBAOzF,CAAA"}
package/dist/network.js CHANGED
@@ -32,7 +32,8 @@ export const connectNetwork = async (options) => {
32
32
  name: options.name,
33
33
  callTimeout: options.callTimeout,
34
34
  readyTimeout: 15000,
35
- transports: networkTransports(options)
35
+ transports: networkTransports(options),
36
+ ...(options.authorize ? { authorize: options.authorize } : {})
36
37
  });
37
38
  await network.ready();
38
39
  for (const peer of network.peers.names())
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,19 @@ export declare const listPackages: (directory: string) => ({
17
17
  range: string;
18
18
  installed: null;
19
19
  })[];
20
+ /**
21
+ * npm's own JavaScript entry point, run by the Node already running this - not the `npm` shim.
22
+ *
23
+ * On Windows the shim is `npm.cmd`, and since the fix for CVE-2024-27980 Node refuses to spawn a
24
+ * `.cmd` without `shell: true`. Turning the shell on would be worse than the problem: a version
25
+ * range is a legitimate part of a package spec and `>`, `<`, `|` and `^` are all permitted in one,
26
+ * which is ordinary text to `execFile` and metacharacters to `cmd.exe`. Reaching past the shim to
27
+ * the script it would have run keeps arguments as argv on every platform, which is the only version
28
+ * of this that is safe by construction rather than by quoting.
29
+ *
30
+ * Exported for the test, which checks both layouts without needing the other operating system.
31
+ */
32
+ export declare const npmEntryPoint: (execPath?: string, platform?: NodeJS.Platform) => string | undefined;
20
33
  export declare const addPackage: (directory: string, spec: string, allowInstallScripts?: boolean) => Promise<{
21
34
  ok: boolean;
22
35
  output: string;
@@ -1 +1 @@
1
- {"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../src/packages.ts"],"names":[],"mappings":"AA0BA;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,cAAe,MAAM,WAK/C,CAAA;AAYD,oGAAoG;AACpG,eAAO,MAAM,YAAY,cAAe,MAAM;;;;;;;;IAYO,CAAA;AA0BrD,eAAO,MAAM,UAAU,cAAqB,MAAM,QAAQ,MAAM;QAd1C,OAAO;YAAU,MAAM;EAoB5C,CAAA;AAED,eAAO,MAAM,aAAa,cAAqB,MAAM,QAAQ,MAAM;QAtB7C,OAAO;YAAU,MAAM;EAyB5C,CAAA"}
1
+ {"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../src/packages.ts"],"names":[],"mappings":"AA0BA;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,cAAe,MAAM,WAK/C,CAAA;AAYD,oGAAoG;AACpG,eAAO,MAAM,YAAY,cAAe,MAAM;;;;;;;;IAYO,CAAA;AAWrD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,iCAA2C,MAAM,CAAC,QAAQ,uBASnF,CAAA;AAsBD,eAAO,MAAM,UAAU,cAAqB,MAAM,QAAQ,MAAM;QAnB1C,OAAO;YAAU,MAAM;EAyB5C,CAAA;AAED,eAAO,MAAM,aAAa,cAAqB,MAAM,QAAQ,MAAM;QA3B7C,OAAO;YAAU,MAAM;EA8B5C,CAAA"}