@tripley-kit/xfs-client
v0.1.1
Published
Tripley CEN/XFS xRPC client for optional native XFS host providers
Readme
@tripley-kit/xfs-client
TypeScript client for the optional Tripley Native CEN/XFS provider.
Use it with a 32-bit tripley-native-hostd process when the XFS manager and service provider DLLs are x86:
import { createWebSocketXfsClient } from '@tripley-kit/xfs-client';
const xfs = createWebSocketXfsClient({
url: 'ws://127.0.0.1:39010',
authToken: process.env.XFS_HOST_TOKEN,
});
await xfs.connect();
await xfs.manager.startup({ versionsRequired: { low: 0x0203, high: 0x2803 } });
const opened = await xfs.manager.open({
logicalName: 'IDC',
appId: 'sp-test',
traceLevel: 0,
timeoutMs: 30_000,
serviceVersionsRequired: { low: 0x0203, high: 0x2803 },
});
const status = await xfs.idc.getStatus({ sessionId: opened.session.id, timeoutMs: 30_000 });IDC constants use open enum/flag types so newer SP values remain representable without losing type
safety for known values. Use the generated *FromRaw helpers when accepting numeric input.
Events are delivered on the IDC service instance with both the original XFS result metadata and a typed payload:
import { XfsEventClass, XfsEventClassFromRaw } from '@tripley-kit/xfs-client';
const subscription = xfs.idc.subscribeEvent((event) => {
console.log(event.native.commandOrEventId, event.data);
});
await xfs.manager.registerEvents({
sessionId: opened.session.id,
eventClass: XfsEventClassFromRaw(
XfsEventClass.Service | XfsEventClass.User | XfsEventClass.Execute,
),
});@tripley-kit/native remains the base native capability SDK. CEN/XFS is intentionally split into this package because most apps do not need the XFS API surface.
Simulator automation
Use @tripley-kit/xfs-control-client in test code when a CEN/XFS simulator must be driven from an
automated scenario. For example, an integration test can start readRawData through this package,
then call IdcControl.insertCardByLogicalService from @tripley-kit/xfs-control-client to inject a
specific simulator card into the pending IDC command.
Keep the two packages separate by responsibility: this package is the app-facing XFS API, while
@tripley-kit/xfs-control-client is the simulator control plane for tests and local tooling.
