@source-repo/rpc-cli 3.0.0 → 3.2.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,6 +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 { environmentFor } from './scripts.js';
7
+ import { ScriptingService, scriptingAuthorizer } from './scripting.js';
6
8
  import { checkPeerOn, diffPeersOn } from './conform.js';
7
9
  import { openTap } from './tapping.js';
8
10
  /**
@@ -50,7 +52,7 @@ const INTERNAL_ERROR = -32603;
50
52
  * shell; the ones that write a contract to disk appear only when a directory was named, so a server
51
53
  * that cannot write files does not advertise tools claiming it can.
52
54
  */
53
- const toolsFor = (contracts) => [
55
+ const toolsFor = (contracts, allowExec = false, scripts) => [
54
56
  {
55
57
  name: 'list_peers',
56
58
  description: 'List the peers currently on the msgrpc network, with the ones this server can reach right now.',
@@ -92,6 +94,11 @@ const toolsFor = (contracts) => [
92
94
  '. `script` can supply canned returns, deliberate failures and events on a timer: ' +
93
95
  '{"returns":{"plant.read":{"celsius":84}},"fails":{"plant.halt":"Unauthorized"},"emits":[{"event":"plant.alarm","every":2000}]}. ' +
94
96
  'The failure code "Timeout" is the special one - that method never answers at all, which is how a caller\'s own timeout is staged. ' +
97
+ (allowExec
98
+ ? 'For a simulation that reacts rather than repeats, `state` seeds shared variables and `handlers` gives a method a JavaScript body: ' +
99
+ '{"state":{"celsius":20,"setpoint":20},"handlers":{"plant.setSetpoint":"(v) => { state.setpoint = v }","plant.read":"() => ({celsius: state.celsius += Math.sign(state.setpoint - state.celsius)})"}}. ' +
100
+ '`python` runs a program instead - {"python":{"program":"@rpc(\'plant.read\')\\ndef read(): return {\'celsius\': 20}","targets":["plant.read"]}} - which keeps its own state and is started once. '
101
+ : '') +
95
102
  'This joins the real network, so it will not take a name a peer already answers to.',
96
103
  inputSchema: {
97
104
  type: 'object',
@@ -99,7 +106,7 @@ const toolsFor = (contracts) => [
99
106
  name: { type: 'string', description: 'The peer name to serve under. Defaults to fake-<three words>.' },
100
107
  schema: { type: 'object', description: 'The contract, as an msgrpc schema: {"schema":1,"namespaces":{...}}.' },
101
108
  ...(contracts ? { contract: { type: 'string', description: 'The name of a saved contract to serve instead of passing one inline.' } } : {}),
102
- script: { type: 'object', description: 'Canned returns, deliberate failures and timed events. Optional.' }
109
+ script: { type: 'object', description: 'Canned returns, deliberate failures and timed events. Optional.' + (allowExec ? ' May also carry `state`, `handlers` and `python`.' : '') }
103
110
  },
104
111
  additionalProperties: false
105
112
  }
@@ -197,6 +204,173 @@ const toolsFor = (contracts) => [
197
204
  inputSchema: { type: 'object', properties: {}, additionalProperties: false }
198
205
  }
199
206
  ]
207
+ : []),
208
+ ...(scripts
209
+ ? [
210
+ {
211
+ name: 'save_script',
212
+ description: 'Write a script to the scripts directory. A script is an ESM Node program that imports @source-repo/rpc and is a peer in its own right - ' +
213
+ 'so unlike start_fake it is not bound to one contract and can call as well as answer, drive a sequence, watch events, or stand several peers up at once. ' +
214
+ 'It runs as its own process. The network this server is on is in the environment as SOURCE_RPC_HUB, SOURCE_RPC_BROKER, SOURCE_RPC_PREFIX and SOURCE_RPC_TOKEN, ' +
215
+ 'so a script should read those rather than hardcode a url. Saving does not start it.',
216
+ inputSchema: {
217
+ type: 'object',
218
+ properties: {
219
+ name: { type: 'string', description: 'A name; the file becomes <name>.ts (or <name>.mjs) in the scripts directory.' },
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.' },
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
+ }
226
+ },
227
+ required: ['name', 'source'],
228
+ additionalProperties: false
229
+ }
230
+ },
231
+ {
232
+ name: 'list_scripts',
233
+ description: 'The scripts in the directory, and which of them are running here.',
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
+ }
244
+ },
245
+ {
246
+ name: 'read_script',
247
+ description: 'The source of one saved script, for changing a part of it rather than rewriting the whole.',
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
+ }
260
+ },
261
+ {
262
+ name: 'delete_script',
263
+ description: 'Remove a script from the directory. It is stopped first if it is running.',
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
+ }
276
+ },
277
+ {
278
+ name: 'start_script',
279
+ description: 'Run a saved script as its own process. Returns immediately; use script_output to see what it printed.',
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
+ }
292
+ },
293
+ {
294
+ name: 'stop_script',
295
+ description: 'Stop a running script. Scripts are stopped anyway when this server exits.',
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
+ }
308
+ },
309
+ {
310
+ name: 'list_packages',
311
+ description: 'The npm packages a script in this directory may import, with what is declared and what is actually installed.',
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
+ }
322
+ },
323
+ {
324
+ name: 'add_package',
325
+ description: 'Install an npm package into the scripts directory so a script can import it. Give a name, optionally with a range: `zod` or `@scope/name@^2`. ' +
326
+ 'Install scripts are skipped by default, because a postinstall hook is unreviewed code from the registry running here - pass allowInstallScripts only for a package that needs a native build, and say why.',
327
+ inputSchema: {
328
+ type: 'object',
329
+ properties: {
330
+ spec: { type: 'string', description: 'Package name, optionally with a version range.' },
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
+ }
336
+ },
337
+ required: ['spec'],
338
+ additionalProperties: false
339
+ }
340
+ },
341
+ {
342
+ name: 'remove_package',
343
+ description: 'Uninstall an npm package from the scripts directory.',
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
+ }
356
+ },
357
+ {
358
+ name: 'script_output',
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.',
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
+ }
372
+ }
373
+ ]
200
374
  : [])
201
375
  ];
202
376
  const failureText = (e) => {
@@ -204,13 +378,64 @@ const failureText = (e) => {
204
378
  return error?.code ? `${error.code}: ${error.message ?? ''}`.trim() : e instanceof Error ? e.message : String(e);
205
379
  };
206
380
  export const startMcp = async (options) => {
381
+ // stdout carries the protocol, so this goes to stderr like every other word this server says.
382
+ if (options.allowExec)
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`);
207
394
  if (!options.broker && !options.hub)
208
395
  throw new Error('startMcp: give it a broker, a hub, or both');
209
- // Exposes nothing. This is a window onto the network, not a peer offering anything to it.
210
- 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
+ });
211
405
  const { network, online } = connected;
212
406
  /** Peers this server is standing up, stopped when it exits so none outlive the conversation. */
213
407
  const fakes = new Map();
408
+ // Given the same network this server joined, so a script reads its broker url rather than
409
+ // inventing one that is right on this machine and wrong on the next.
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
+ };
214
439
  /** A contract given inline, or the name of one saved in the contracts directory. */
215
440
  const contractFrom = async (args) => {
216
441
  if (args.schema) {
@@ -288,6 +513,77 @@ export const startMcp = async (options) => {
288
513
  return { text: `${peer}.${namespace}.${method} failed: ${failureText(e)}`, isError: true };
289
514
  }
290
515
  }
516
+ if (scripting && options.scripts) {
517
+ const scriptName = String(args.name ?? '');
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;
523
+ try {
524
+ target = await scriptingOn(args.node);
525
+ }
526
+ catch (e) {
527
+ return { text: failureText(e), isError: true };
528
+ }
529
+ try {
530
+ return await act(target);
531
+ }
532
+ catch (e) {
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
+ };
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
+ }));
548
+ }
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);
556
+ return { text: `${scriptName} deleted.` };
557
+ });
558
+ if (name === 'start_script')
559
+ return await on(async (target) => {
560
+ const started = await target.start(scriptName);
561
+ return { text: `${scriptName} started as pid ${started.pid ?? 'unknown'}. It is a process of its own; script_output is how it reports.` };
562
+ });
563
+ if (name === 'stop_script')
564
+ return await on(async (target) => {
565
+ await target.stop(scriptName);
566
+ return { text: `${scriptName} stopped.` };
567
+ });
568
+ if (name === 'list_packages')
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);
573
+ return { text: result.output || 'Installed.', isError: !result.ok };
574
+ });
575
+ if (name === 'remove_package')
576
+ return await on(async (target) => {
577
+ const result = await target.removePackage(scriptName);
578
+ return { text: result.output || 'Removed.', isError: !result.ok };
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
+ });
586
+ }
291
587
  if (name === 'start_fake')
292
588
  return await startFakeTool(args);
293
589
  if (name === 'stop_fake') {
@@ -443,7 +739,7 @@ export const startMcp = async (options) => {
443
739
  respond(request.id, {});
444
740
  return;
445
741
  case 'tools/list':
446
- respond(request.id, { tools: toolsFor(options.contracts) });
742
+ respond(request.id, { tools: toolsFor(options.contracts, options.allowExec, options.scripts) });
447
743
  return;
448
744
  case 'tools/call': {
449
745
  const name = String(request.params?.name ?? '');
@@ -498,6 +794,9 @@ export const startMcp = async (options) => {
498
794
  for (const fake of fakes.values())
499
795
  await fake.close().catch(() => undefined);
500
796
  fakes.clear();
797
+ // Scripts are separate processes, so they would outlive this one and go on holding peer
798
+ // names nobody is serving. Stopped rather than orphaned.
799
+ await scripting?.close();
501
800
  await connected.close();
502
801
  };
503
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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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The manifest a script directory needs anyway.
3
+ *
4
+ * `type: module` is the load-bearing field: a `.ts` script uses `import`, and Node decides whether
5
+ * that is legal from the nearest package.json. Inside a CommonJS project there is one, it does not
6
+ * say module, and every run then prints a reparse warning that lands in the script's own output.
7
+ * `private` because this is a directory of programs, not something anybody publishes.
8
+ */
9
+ export declare const ensureManifest: (directory: string) => string;
10
+ /** What is declared, and what is actually on disk - which differ when an install failed halfway. */
11
+ export declare const listPackages: (directory: string) => ({
12
+ name: string;
13
+ range: string;
14
+ installed: string;
15
+ } | {
16
+ name: string;
17
+ range: string;
18
+ installed: null;
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;
33
+ export declare const addPackage: (directory: string, spec: string, allowInstallScripts?: boolean) => Promise<{
34
+ ok: boolean;
35
+ output: string;
36
+ }>;
37
+ export declare const removePackage: (directory: string, name: string) => Promise<{
38
+ ok: boolean;
39
+ output: string;
40
+ }>;
41
+ //# sourceMappingURL=packages.d.ts.map
@@ -0,0 +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;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"}