@query-farm/vgi-rpc 0.8.0 → 0.9.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.
@@ -8,5 +8,6 @@ export { ARROW_CONTENT_TYPE, type AuthenticateFn, type BearerValidateFn, bearerA
8
8
  export { Protocol } from "./protocol.js";
9
9
  export { bool, bytes, float, float32, inferParamTypes, int, int8, int16, int32, type SchemaLike, str, toSchema, uint8, uint16, uint32, uint64, } from "./schema.js";
10
10
  export { VgiRpcServer } from "./server.js";
11
+ export { serveStream, type ServeStreamOptions } from "./serve-stream.js";
11
12
  export { type CallContext, type CallStatistics, type DispatchHook, type DispatchInfo, type ExchangeFn, type ExchangeInit, type HeaderInit, type HookToken, type LogContext, type MethodDefinition, MethodType, OutputCollector, type ProducerFn, type ProducerInit, type ServeStartHook, TransportKind, type UnaryHandler, } from "./types.js";
12
13
  //# sourceMappingURL=index.core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.core.d.ts","sourceRoot":"","sources":["../src/index.core.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iCAAiC,EACjC,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,cAAc,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,SAAS,EACT,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,OAAO,EACP,eAAe,EACf,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,UAAU,EACf,GAAG,EACH,QAAQ,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,GACP,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,UAAU,EACV,eAAe,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,aAAa,EACb,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.core.d.ts","sourceRoot":"","sources":["../src/index.core.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iCAAiC,EACjC,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,cAAc,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,SAAS,EACT,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,OAAO,EACP,eAAe,EACf,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,UAAU,EACf,GAAG,EACH,QAAQ,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,GACP,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,UAAU,EACV,eAAe,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,aAAa,EACb,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -8664,17 +8664,20 @@ class VgiRpcServer {
8664
8664
  ` + ` Direction: ${direction}`);
8665
8665
  }
8666
8666
  async run() {
8667
- const stdin = process.stdin;
8668
8667
  if (process.stdin.isTTY || process.stdout.isTTY) {
8669
8668
  process.stderr.write("WARNING: This process communicates via Arrow IPC on stdin/stdout " + `and is not intended to be run interactively.
8670
8669
  ` + "It should be launched as a subprocess by an RPC client " + `(e.g. vgi_rpc.connect()).
8671
8670
  `);
8672
8671
  }
8673
- const reader = await IpcStreamReader.create(stdin);
8674
- const writer = new IpcStreamWriter;
8672
+ const stdin = process.stdin;
8673
+ await this.serveConnection(stdin);
8674
+ }
8675
+ async serveConnection(readable, writable, transportKind = "pipe" /* PIPE */) {
8676
+ const reader = await IpcStreamReader.create(readable);
8677
+ const writer = new IpcStreamWriter(writable);
8675
8678
  try {
8676
8679
  while (true) {
8677
- await this.notifyTransport("pipe" /* PIPE */);
8680
+ await this.notifyTransport(transportKind);
8678
8681
  await this.serveOne(reader, writer);
8679
8682
  }
8680
8683
  } catch (e) {
@@ -8791,6 +8794,17 @@ class VgiRpcServer {
8791
8794
  }
8792
8795
  }
8793
8796
  }
8797
+ // src/serve-stream.ts
8798
+ //! Serve a protocol over a caller-provided byte-stream pair — the stream
8799
+ //! sibling of `serveTcp` / `serveUnix`, with no socket/listener of its own.
8800
+ //!
8801
+ //! Useful for transports the launcher helpers don't cover: a Web Worker /
8802
+ //! `MessagePort` bridge (postMessage), an in-memory pipe, or a pre-connected
8803
+ //! socket. The host side already has this symmetry via `pipeConnect`.
8804
+ async function serveStream(protocol, options) {
8805
+ const server = new VgiRpcServer(protocol, options.serverOptions);
8806
+ await server.serveConnection(options.readable, options.writable, options.transportKind);
8807
+ }
8794
8808
  // src/launcher/hash.ts
8795
8809
  var HASH_LEN = 16;
8796
8810
  function canonicalJson(value) {
@@ -9740,6 +9754,7 @@ export {
9740
9754
  socketPaths,
9741
9755
  serveUnix,
9742
9756
  serveTcp,
9757
+ serveStream,
9743
9758
  resolveExternalLocation,
9744
9759
  probeSocket,
9745
9760
  pipeConnect,
@@ -9820,4 +9835,4 @@ export {
9820
9835
  ARROW_CONTENT_TYPE
9821
9836
  };
9822
9837
 
9823
- //# debugId=EB2D2F8879345A8964756E2164756E21
9838
+ //# debugId=FD35C475AB9ACBBD64756E2164756E21