@thermal-label/brother-ql-node 0.0.1 → 0.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/__tests__/discovery.test.js +141 -68
- package/dist/__tests__/discovery.test.js.map +1 -1
- package/dist/__tests__/integration/print.test.d.ts +2 -0
- package/dist/__tests__/integration/print.test.d.ts.map +1 -0
- package/dist/__tests__/integration/print.test.js +71 -0
- package/dist/__tests__/integration/print.test.js.map +1 -0
- package/dist/__tests__/printer.test.js +214 -208
- package/dist/__tests__/printer.test.js.map +1 -1
- package/dist/discovery.d.ts +39 -4
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +87 -14
- package/dist/discovery.js.map +1 -1
- package/dist/index.d.ts +3 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -6
- package/dist/index.js.map +1 -1
- package/dist/printer.d.ts +38 -15
- package/dist/printer.d.ts.map +1 -1
- package/dist/printer.js +108 -149
- package/dist/printer.js.map +1 -1
- package/package.json +7 -5
- package/dist/__tests__/errors.test.d.ts +0 -2
- package/dist/__tests__/errors.test.d.ts.map +0 -1
- package/dist/__tests__/errors.test.js +0 -20
- package/dist/__tests__/errors.test.js.map +0 -1
- package/dist/__tests__/integration/print-image.test.d.ts +0 -2
- package/dist/__tests__/integration/print-image.test.d.ts.map +0 -1
- package/dist/__tests__/integration/print-image.test.js +0 -22
- package/dist/__tests__/integration/print-image.test.js.map +0 -1
- package/dist/__tests__/integration/print-text.test.d.ts +0 -2
- package/dist/__tests__/integration/print-text.test.d.ts.map +0 -1
- package/dist/__tests__/integration/print-text.test.js +0 -25
- package/dist/__tests__/integration/print-text.test.js.map +0 -1
- package/dist/__tests__/integration/print-two-color.test.d.ts +0 -2
- package/dist/__tests__/integration/print-two-color.test.d.ts.map +0 -1
- package/dist/__tests__/integration/print-two-color.test.js +0 -28
- package/dist/__tests__/integration/print-two-color.test.js.map +0 -1
- package/dist/__tests__/integration/tcp.test.d.ts +0 -2
- package/dist/__tests__/integration/tcp.test.d.ts.map +0 -1
- package/dist/__tests__/integration/tcp.test.js +0 -20
- package/dist/__tests__/integration/tcp.test.js.map +0 -1
- package/dist/__tests__/tcp-transport.test.d.ts +0 -2
- package/dist/__tests__/tcp-transport.test.d.ts.map +0 -1
- package/dist/__tests__/tcp-transport.test.js +0 -115
- package/dist/__tests__/tcp-transport.test.js.map +0 -1
- package/dist/__tests__/usb-transport.test.d.ts +0 -2
- package/dist/__tests__/usb-transport.test.d.ts.map +0 -1
- package/dist/__tests__/usb-transport.test.js +0 -99
- package/dist/__tests__/usb-transport.test.js.map +0 -1
- package/dist/errors.d.ts +0 -8
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -15
- package/dist/errors.js.map +0 -1
- package/dist/status.d.ts +0 -2
- package/dist/status.d.ts.map +0 -1
- package/dist/status.js +0 -2
- package/dist/status.js.map +0 -1
- package/dist/transport.d.ts +0 -32
- package/dist/transport.d.ts.map +0 -1
- package/dist/transport.js +0 -120
- package/dist/transport.js.map +0 -1
- package/dist/types.d.ts +0 -13
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"print-image.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/integration/print-image.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { describe, it } from 'vitest';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
/*
|
|
4
|
-
* Hardware verification checklist:
|
|
5
|
-
* - Printer is powered on and connected via USB
|
|
6
|
-
* - 62mm continuous label loaded
|
|
7
|
-
* - Set BROTHER_INTEGRATION_IMAGE to a PNG/JPEG file path (optional)
|
|
8
|
-
* - Run: BROTHER_INTEGRATION=1 pnpm test
|
|
9
|
-
*/
|
|
10
|
-
describe('Integration: print image', () => {
|
|
11
|
-
it.skipIf(!process.env.BROTHER_INTEGRATION)('prints an image label via USB', async () => {
|
|
12
|
-
const { openPrinter, MEDIA } = await import('../../index.js');
|
|
13
|
-
const imagePath = process.env.BROTHER_INTEGRATION_IMAGE ?? join(import.meta.dirname, 'test.png');
|
|
14
|
-
const printer = await openPrinter();
|
|
15
|
-
const media = MEDIA[259];
|
|
16
|
-
if (!media)
|
|
17
|
-
throw new Error('Media 259 not found');
|
|
18
|
-
await printer.printImage(imagePath, media);
|
|
19
|
-
await printer.close();
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
//# sourceMappingURL=print-image.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"print-image.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/print-image.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;;GAMG;AACH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC9D,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACnD,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"print-text.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/integration/print-text.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { describe, it } from 'vitest';
|
|
2
|
-
/*
|
|
3
|
-
* Hardware verification checklist:
|
|
4
|
-
* - Printer is powered on and connected via USB
|
|
5
|
-
* - Label is loaded (any width)
|
|
6
|
-
* - Editor Lite mode is disabled
|
|
7
|
-
* - Run: BROTHER_INTEGRATION=1 pnpm test
|
|
8
|
-
*
|
|
9
|
-
* Expected result:
|
|
10
|
-
* - Label prints with text "Hello QL Integration Test"
|
|
11
|
-
* - Auto-cut fires after label
|
|
12
|
-
* - No error thrown
|
|
13
|
-
*/
|
|
14
|
-
describe('Integration: print text', () => {
|
|
15
|
-
it.skipIf(!process.env.BROTHER_INTEGRATION)('prints a text label via USB', async () => {
|
|
16
|
-
const { openPrinter, MEDIA } = await import('../../index.js');
|
|
17
|
-
const printer = await openPrinter();
|
|
18
|
-
const media = MEDIA[259];
|
|
19
|
-
if (!media)
|
|
20
|
-
throw new Error('Media 259 not found');
|
|
21
|
-
await printer.printText('Hello QL Integration Test', media);
|
|
22
|
-
await printer.close();
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
//# sourceMappingURL=print-text.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"print-text.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/print-text.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEtC;;;;;;;;;;;GAWG;AACH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACnD,MAAM,OAAO,CAAC,SAAS,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"print-two-color.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/integration/print-two-color.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { describe, it } from 'vitest';
|
|
2
|
-
import { createBitmap } from '@mbtech-nl/bitmap';
|
|
3
|
-
/*
|
|
4
|
-
* Hardware verification checklist (QL-820NWB only):
|
|
5
|
-
* - QL-820NWB powered on, connected via USB
|
|
6
|
-
* - DK-22251 (black + red on white, 62mm continuous) label loaded
|
|
7
|
-
* - Editor Lite mode disabled
|
|
8
|
-
* - Run: BROTHER_INTEGRATION=1 pnpm test
|
|
9
|
-
*/
|
|
10
|
-
describe('Integration: print two-color (QL-820NWB)', () => {
|
|
11
|
-
it.skipIf(!process.env.BROTHER_INTEGRATION)('prints a two-color label via USB', async () => {
|
|
12
|
-
const { openPrinter, MEDIA, renderText } = await import('../../index.js');
|
|
13
|
-
const printer = await openPrinter();
|
|
14
|
-
if (!printer.device.twoColor) {
|
|
15
|
-
console.warn(`Skipping two-color test: ${printer.device.name} does not support two-color.`);
|
|
16
|
-
await printer.close();
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
const media = MEDIA[259];
|
|
20
|
-
if (!media)
|
|
21
|
-
throw new Error('Media 259 not found');
|
|
22
|
-
const black = renderText('Hello', { scaleX: 2, scaleY: 2 });
|
|
23
|
-
const red = createBitmap(black.widthPx, black.heightPx);
|
|
24
|
-
await printer.printTwoColor(black, red, media);
|
|
25
|
-
await printer.close();
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
//# sourceMappingURL=print-two-color.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"print-two-color.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/print-two-color.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;GAMG;AACH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;QAEpC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,4BAA4B,OAAO,CAAC,MAAM,CAAC,IAAI,8BAA8B,CAAC,CAAC;YAC5F,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAEnD,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAExD,MAAM,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tcp.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/integration/tcp.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { describe, it } from 'vitest';
|
|
2
|
-
/*
|
|
3
|
-
* Hardware verification checklist:
|
|
4
|
-
* - Network-capable Brother QL printer on the same network
|
|
5
|
-
* - Set BROTHER_TCP_HOST to the printer's IP address
|
|
6
|
-
* - Run: BROTHER_INTEGRATION=1 BROTHER_TCP_HOST=192.168.1.x pnpm test
|
|
7
|
-
*/
|
|
8
|
-
describe('Integration: TCP transport', () => {
|
|
9
|
-
it.skipIf(!process.env.BROTHER_INTEGRATION || !process.env.BROTHER_TCP_HOST)('prints a text label via TCP', async () => {
|
|
10
|
-
const { openPrinterTcp, MEDIA } = await import('../../index.js');
|
|
11
|
-
const host = process.env.BROTHER_TCP_HOST;
|
|
12
|
-
const printer = await openPrinterTcp(host);
|
|
13
|
-
const media = MEDIA[259];
|
|
14
|
-
if (!media)
|
|
15
|
-
throw new Error('Media 259 not found');
|
|
16
|
-
await printer.printText('Hello TCP Integration Test', media);
|
|
17
|
-
await printer.close();
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
//# sourceMappingURL=tcp.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tcp.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/tcp.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEtC;;;;;GAKG;AACH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAC1E,6BAA6B,EAC7B,KAAK,IAAI,EAAE;QACT,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAiB,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACnD,MAAM,OAAO,CAAC,SAAS,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QAC7D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tcp-transport.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/tcp-transport.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
-
import { EventEmitter } from 'node:events';
|
|
3
|
-
class MockSocket extends EventEmitter {
|
|
4
|
-
write = vi.fn((_data, cb) => {
|
|
5
|
-
cb?.();
|
|
6
|
-
return true;
|
|
7
|
-
});
|
|
8
|
-
removeListener = vi.fn();
|
|
9
|
-
once = vi.fn((event, handler) => {
|
|
10
|
-
super.once(event, handler);
|
|
11
|
-
return this;
|
|
12
|
-
});
|
|
13
|
-
on = vi.fn((event, handler) => {
|
|
14
|
-
super.on(event, handler);
|
|
15
|
-
return this;
|
|
16
|
-
});
|
|
17
|
-
end = vi.fn((cb) => {
|
|
18
|
-
cb?.();
|
|
19
|
-
});
|
|
20
|
-
connect = vi.fn((_port, _host, cb) => {
|
|
21
|
-
process.nextTick(cb);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
const mockSocket = new MockSocket();
|
|
25
|
-
vi.mock('node:net', () => ({
|
|
26
|
-
default: {
|
|
27
|
-
Socket: vi.fn(() => mockSocket),
|
|
28
|
-
},
|
|
29
|
-
}));
|
|
30
|
-
beforeEach(() => {
|
|
31
|
-
mockSocket.write.mockReset().mockImplementation((_data, cb) => {
|
|
32
|
-
cb?.();
|
|
33
|
-
return true;
|
|
34
|
-
});
|
|
35
|
-
mockSocket.end.mockReset().mockImplementation((cb) => {
|
|
36
|
-
cb?.();
|
|
37
|
-
});
|
|
38
|
-
mockSocket.connect
|
|
39
|
-
.mockReset()
|
|
40
|
-
.mockImplementation((_port, _host, cb) => {
|
|
41
|
-
process.nextTick(cb);
|
|
42
|
-
});
|
|
43
|
-
mockSocket.removeAllListeners();
|
|
44
|
-
});
|
|
45
|
-
describe('TcpTransport', () => {
|
|
46
|
-
it('write calls socket.write with correct data', async () => {
|
|
47
|
-
const { TcpTransport } = await import('../transport.js');
|
|
48
|
-
const transport = await TcpTransport.connect('192.168.1.1', 9100);
|
|
49
|
-
const data = new Uint8Array([0x1b, 0x40]);
|
|
50
|
-
await transport.write(data);
|
|
51
|
-
expect(mockSocket.write).toHaveBeenCalledOnce();
|
|
52
|
-
const calledWith = mockSocket.write.mock.calls[0][0];
|
|
53
|
-
expect(calledWith[0]).toBe(0x1b);
|
|
54
|
-
expect(calledWith[1]).toBe(0x40);
|
|
55
|
-
await transport.close();
|
|
56
|
-
});
|
|
57
|
-
it('read waits for N bytes from the stream', async () => {
|
|
58
|
-
const { TcpTransport } = await import('../transport.js');
|
|
59
|
-
const transport = await TcpTransport.connect('192.168.1.1', 9100);
|
|
60
|
-
const readPromise = transport.read(4);
|
|
61
|
-
mockSocket.emit('data', Buffer.from([0x01, 0x02, 0x03, 0x04]));
|
|
62
|
-
const result = await readPromise;
|
|
63
|
-
expect(result).toHaveLength(4);
|
|
64
|
-
expect(result[0]).toBe(0x01);
|
|
65
|
-
await transport.close();
|
|
66
|
-
});
|
|
67
|
-
it('close ends the socket', async () => {
|
|
68
|
-
const { TcpTransport } = await import('../transport.js');
|
|
69
|
-
const transport = await TcpTransport.connect('192.168.1.1', 9100);
|
|
70
|
-
await transport.close();
|
|
71
|
-
expect(mockSocket.end).toHaveBeenCalledOnce();
|
|
72
|
-
});
|
|
73
|
-
it('read returns immediately when data is already buffered', async () => {
|
|
74
|
-
const { TcpTransport } = await import('../transport.js');
|
|
75
|
-
const transport = await TcpTransport.connect('192.168.1.1', 9100);
|
|
76
|
-
mockSocket.emit('data', Buffer.from([0x01, 0x02, 0x03, 0x04]));
|
|
77
|
-
const result = await transport.read(4);
|
|
78
|
-
expect(result).toHaveLength(4);
|
|
79
|
-
expect(result[0]).toBe(0x01);
|
|
80
|
-
await transport.close();
|
|
81
|
-
});
|
|
82
|
-
it('read keeps remainder bytes when more data is buffered than needed', async () => {
|
|
83
|
-
const { TcpTransport } = await import('../transport.js');
|
|
84
|
-
const transport = await TcpTransport.connect('192.168.1.1', 9100);
|
|
85
|
-
mockSocket.emit('data', Buffer.from([0x0a, 0x0b, 0x0c, 0x0d, 0x0e]));
|
|
86
|
-
const first = await transport.read(4);
|
|
87
|
-
expect(first).toHaveLength(4);
|
|
88
|
-
expect(first[3]).toBe(0x0d);
|
|
89
|
-
const second = await transport.read(1);
|
|
90
|
-
expect(second[0]).toBe(0x0e);
|
|
91
|
-
await transport.close();
|
|
92
|
-
});
|
|
93
|
-
it('deferred read keeps remainder when more data arrives than needed', async () => {
|
|
94
|
-
const { TcpTransport } = await import('../transport.js');
|
|
95
|
-
const transport = await TcpTransport.connect('192.168.1.1', 9100);
|
|
96
|
-
const readPromise = transport.read(4);
|
|
97
|
-
mockSocket.emit('data', Buffer.from([0x01, 0x02, 0x03, 0x04, 0x05]));
|
|
98
|
-
const result = await readPromise;
|
|
99
|
-
expect(result).toHaveLength(4);
|
|
100
|
-
const remainder = await transport.read(1);
|
|
101
|
-
expect(remainder[0]).toBe(0x05);
|
|
102
|
-
await transport.close();
|
|
103
|
-
});
|
|
104
|
-
it('write rejects when socket write fails', async () => {
|
|
105
|
-
const { TcpTransport } = await import('../transport.js');
|
|
106
|
-
const transport = await TcpTransport.connect('192.168.1.1', 9100);
|
|
107
|
-
mockSocket.write.mockImplementationOnce((_data, cb) => {
|
|
108
|
-
cb?.(new Error('socket write error'));
|
|
109
|
-
return true;
|
|
110
|
-
});
|
|
111
|
-
await expect(transport.write(new Uint8Array([0x01]))).rejects.toThrow('socket write error');
|
|
112
|
-
await transport.close();
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
//# sourceMappingURL=tcp-transport.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tcp-transport.test.js","sourceRoot":"","sources":["../../src/__tests__/tcp-transport.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usb-transport.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/usb-transport.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
-
const mockOutTransfer = vi.fn().mockResolvedValue(90);
|
|
3
|
-
const mockInTransfer = vi.fn().mockResolvedValue(Buffer.alloc(32));
|
|
4
|
-
const mockClaim = vi.fn();
|
|
5
|
-
const mockReleaseAsync = vi.fn().mockImplementation(() => Promise.resolve());
|
|
6
|
-
const mockClose = vi.fn();
|
|
7
|
-
const mockOpen = vi.fn();
|
|
8
|
-
const mockInterface = vi.fn();
|
|
9
|
-
vi.mock('usb', () => ({
|
|
10
|
-
default: {
|
|
11
|
-
getDeviceList: vi.fn(() => [
|
|
12
|
-
{
|
|
13
|
-
deviceDescriptor: { idVendor: 0x04f9, idProduct: 0x20a7 },
|
|
14
|
-
busNumber: 1,
|
|
15
|
-
deviceAddress: 5,
|
|
16
|
-
open: mockOpen,
|
|
17
|
-
close: mockClose,
|
|
18
|
-
interface: mockInterface,
|
|
19
|
-
},
|
|
20
|
-
]),
|
|
21
|
-
},
|
|
22
|
-
}));
|
|
23
|
-
beforeEach(() => {
|
|
24
|
-
mockOpen.mockReset();
|
|
25
|
-
mockClose.mockReset();
|
|
26
|
-
mockClaim.mockReset();
|
|
27
|
-
mockReleaseAsync.mockReset().mockImplementation(() => Promise.resolve());
|
|
28
|
-
mockOutTransfer.mockReset().mockResolvedValue(90);
|
|
29
|
-
mockInTransfer.mockReset().mockResolvedValue(Buffer.alloc(32));
|
|
30
|
-
mockInterface.mockReset().mockReturnValue({
|
|
31
|
-
claim: mockClaim,
|
|
32
|
-
releaseAsync: mockReleaseAsync,
|
|
33
|
-
isKernelDriverActive: vi.fn().mockReturnValue(false),
|
|
34
|
-
endpoints: [
|
|
35
|
-
{ direction: 'out', transferAsync: mockOutTransfer },
|
|
36
|
-
{ direction: 'in', transferAsync: mockInTransfer },
|
|
37
|
-
],
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe('UsbTransport', () => {
|
|
41
|
-
it('write calls the out endpoint transferAsync with correct buffer', async () => {
|
|
42
|
-
const { UsbTransport } = await import('../transport.js');
|
|
43
|
-
const transport = await UsbTransport.open(0x04f9, 0x20a7);
|
|
44
|
-
const data = new Uint8Array([0x1b, 0x40]);
|
|
45
|
-
await transport.write(data);
|
|
46
|
-
expect(mockOutTransfer).toHaveBeenCalledOnce();
|
|
47
|
-
const calledWith = mockOutTransfer.mock.calls[0][0];
|
|
48
|
-
expect(calledWith[0]).toBe(0x1b);
|
|
49
|
-
expect(calledWith[1]).toBe(0x40);
|
|
50
|
-
await transport.close();
|
|
51
|
-
});
|
|
52
|
-
it('read calls the in endpoint transferAsync with correct byte count', async () => {
|
|
53
|
-
const { UsbTransport } = await import('../transport.js');
|
|
54
|
-
const transport = await UsbTransport.open(0x04f9, 0x20a7);
|
|
55
|
-
await transport.read(32);
|
|
56
|
-
expect(mockInTransfer).toHaveBeenCalledWith(32);
|
|
57
|
-
await transport.close();
|
|
58
|
-
});
|
|
59
|
-
it('throws when device not found', async () => {
|
|
60
|
-
const { UsbTransport } = await import('../transport.js');
|
|
61
|
-
await expect(UsbTransport.open(0x04f9, 0x9999)).rejects.toThrow('not found');
|
|
62
|
-
});
|
|
63
|
-
it('close releases interface and closes device', async () => {
|
|
64
|
-
const { UsbTransport } = await import('../transport.js');
|
|
65
|
-
const transport = await UsbTransport.open(0x04f9, 0x20a7);
|
|
66
|
-
await transport.close();
|
|
67
|
-
expect(mockReleaseAsync).toHaveBeenCalledOnce();
|
|
68
|
-
expect(mockClose).toHaveBeenCalledOnce();
|
|
69
|
-
});
|
|
70
|
-
it('read returns empty array when transferAsync returns null', async () => {
|
|
71
|
-
mockInTransfer.mockResolvedValueOnce(null);
|
|
72
|
-
const { UsbTransport } = await import('../transport.js');
|
|
73
|
-
const transport = await UsbTransport.open(0x04f9, 0x20a7);
|
|
74
|
-
const result = await transport.read(32);
|
|
75
|
-
expect(result).toHaveLength(0);
|
|
76
|
-
await transport.close();
|
|
77
|
-
});
|
|
78
|
-
it('throws when USB device has no OUT endpoint', async () => {
|
|
79
|
-
mockInterface.mockReturnValueOnce({
|
|
80
|
-
claim: mockClaim,
|
|
81
|
-
releaseAsync: mockReleaseAsync,
|
|
82
|
-
isKernelDriverActive: vi.fn().mockReturnValue(false),
|
|
83
|
-
endpoints: [{ direction: 'in', transferAsync: mockInTransfer }],
|
|
84
|
-
});
|
|
85
|
-
const { UsbTransport } = await import('../transport.js');
|
|
86
|
-
expect(() => UsbTransport.open(0x04f9, 0x20a7)).toThrow('no bulk OUT endpoint');
|
|
87
|
-
});
|
|
88
|
-
it('throws when USB device has no IN endpoint', async () => {
|
|
89
|
-
mockInterface.mockReturnValueOnce({
|
|
90
|
-
claim: mockClaim,
|
|
91
|
-
releaseAsync: mockReleaseAsync,
|
|
92
|
-
isKernelDriverActive: vi.fn().mockReturnValue(false),
|
|
93
|
-
endpoints: [{ direction: 'out', transferAsync: mockOutTransfer }],
|
|
94
|
-
});
|
|
95
|
-
const { UsbTransport } = await import('../transport.js');
|
|
96
|
-
expect(() => UsbTransport.open(0x04f9, 0x20a7)).toThrow('no bulk IN endpoint');
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
//# sourceMappingURL=usb-transport.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usb-transport.test.js","sourceRoot":"","sources":["../../src/__tests__/usb-transport.test.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare class UnsupportedOperationError extends Error {
|
|
2
|
-
constructor(message: string);
|
|
3
|
-
}
|
|
4
|
-
export declare class PrinterError extends Error {
|
|
5
|
-
readonly errors: string[];
|
|
6
|
-
constructor(message: string, errors: string[]);
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,YAAa,SAAQ,KAAK;aAGnB,MAAM,EAAE,MAAM,EAAE;gBADhC,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EAAE;CAKnC"}
|
package/dist/errors.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export class UnsupportedOperationError extends Error {
|
|
2
|
-
constructor(message) {
|
|
3
|
-
super(message);
|
|
4
|
-
this.name = 'UnsupportedOperationError';
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
export class PrinterError extends Error {
|
|
8
|
-
errors;
|
|
9
|
-
constructor(message, errors) {
|
|
10
|
-
super(message);
|
|
11
|
-
this.errors = errors;
|
|
12
|
-
this.name = 'PrinterError';
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IAGnB;IAFlB,YACE,OAAe,EACC,MAAgB;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,WAAM,GAAN,MAAM,CAAU;QAGhC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF"}
|
package/dist/status.d.ts
DELETED
package/dist/status.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC"}
|
package/dist/status.js
DELETED
package/dist/status.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC"}
|
package/dist/transport.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import net from 'node:net';
|
|
2
|
-
import usb from 'usb';
|
|
3
|
-
export interface Transport {
|
|
4
|
-
write(data: Uint8Array): Promise<void>;
|
|
5
|
-
read(byteCount: number): Promise<Uint8Array>;
|
|
6
|
-
close(): Promise<void>;
|
|
7
|
-
}
|
|
8
|
-
export declare class UsbTransport implements Transport {
|
|
9
|
-
private readonly outEndpoint;
|
|
10
|
-
private readonly inEndpoint;
|
|
11
|
-
private readonly iface;
|
|
12
|
-
private readonly device;
|
|
13
|
-
constructor(device: usb.Device);
|
|
14
|
-
static open(vid: number, pid: number): Promise<UsbTransport>;
|
|
15
|
-
write(data: Uint8Array): Promise<void>;
|
|
16
|
-
read(byteCount: number): Promise<Uint8Array>;
|
|
17
|
-
close(): Promise<void>;
|
|
18
|
-
}
|
|
19
|
-
export declare class TcpTransport implements Transport {
|
|
20
|
-
private readonly socket;
|
|
21
|
-
private readonly chunks;
|
|
22
|
-
private resolveRead;
|
|
23
|
-
private needed;
|
|
24
|
-
constructor(socket: net.Socket);
|
|
25
|
-
static connect(host: string, port?: number): Promise<TcpTransport>;
|
|
26
|
-
private buffered;
|
|
27
|
-
private tryResolveRead;
|
|
28
|
-
write(data: Uint8Array): Promise<void>;
|
|
29
|
-
read(byteCount: number): Promise<Uint8Array>;
|
|
30
|
-
close(): Promise<void>;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=transport.d.ts.map
|
package/dist/transport.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,qBAAa,YAAa,YAAW,SAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAExB,MAAM,EAAE,GAAG,CAAC,MAAM;IAsB9B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAWtD,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAK5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B;AAED,qBAAa,YAAa,YAAW,SAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,MAAM,CAAK;gBAEP,MAAM,EAAE,GAAG,CAAC,MAAM;WAQjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAWtE,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,cAAc;IAchB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAStC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAe5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
|
package/dist/transport.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import net from 'node:net';
|
|
2
|
-
import usb from 'usb';
|
|
3
|
-
export class UsbTransport {
|
|
4
|
-
outEndpoint;
|
|
5
|
-
inEndpoint;
|
|
6
|
-
iface;
|
|
7
|
-
device;
|
|
8
|
-
constructor(device) {
|
|
9
|
-
this.device = device;
|
|
10
|
-
device.open();
|
|
11
|
-
const iface = device.interface(0);
|
|
12
|
-
// On Linux the usblp kernel driver claims printer-class interfaces
|
|
13
|
-
// automatically — detach it before claiming with libusb.
|
|
14
|
-
if (process.platform === 'linux' && iface.isKernelDriverActive()) {
|
|
15
|
-
iface.detachKernelDriver();
|
|
16
|
-
}
|
|
17
|
-
iface.claim();
|
|
18
|
-
this.iface = iface;
|
|
19
|
-
const outEp = iface.endpoints.find((e) => e.direction === 'out');
|
|
20
|
-
const inEp = iface.endpoints.find((e) => e.direction === 'in');
|
|
21
|
-
if (!outEp)
|
|
22
|
-
throw new Error('USB device has no bulk OUT endpoint');
|
|
23
|
-
if (!inEp)
|
|
24
|
-
throw new Error('USB device has no bulk IN endpoint');
|
|
25
|
-
this.outEndpoint = outEp;
|
|
26
|
-
this.inEndpoint = inEp;
|
|
27
|
-
}
|
|
28
|
-
static open(vid, pid) {
|
|
29
|
-
const device = usb
|
|
30
|
-
.getDeviceList()
|
|
31
|
-
.find(d => d.deviceDescriptor.idVendor === vid && d.deviceDescriptor.idProduct === pid);
|
|
32
|
-
if (!device)
|
|
33
|
-
return Promise.reject(new Error(`USB device ${vid.toString(16)}:${pid.toString(16)} not found`));
|
|
34
|
-
return Promise.resolve(new UsbTransport(device));
|
|
35
|
-
}
|
|
36
|
-
async write(data) {
|
|
37
|
-
await this.outEndpoint.transferAsync(Buffer.from(data));
|
|
38
|
-
}
|
|
39
|
-
async read(byteCount) {
|
|
40
|
-
const buf = await this.inEndpoint.transferAsync(byteCount);
|
|
41
|
-
return buf ? new Uint8Array(buf) : new Uint8Array(0);
|
|
42
|
-
}
|
|
43
|
-
async close() {
|
|
44
|
-
await this.iface.releaseAsync();
|
|
45
|
-
this.device.close();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
export class TcpTransport {
|
|
49
|
-
socket;
|
|
50
|
-
chunks = [];
|
|
51
|
-
resolveRead = null;
|
|
52
|
-
needed = 0;
|
|
53
|
-
constructor(socket) {
|
|
54
|
-
this.socket = socket;
|
|
55
|
-
socket.on('data', (chunk) => {
|
|
56
|
-
this.chunks.push(chunk);
|
|
57
|
-
this.tryResolveRead();
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
static async connect(host, port = 9100) {
|
|
61
|
-
return new Promise((resolve, reject) => {
|
|
62
|
-
const socket = new net.Socket();
|
|
63
|
-
socket.once('error', reject);
|
|
64
|
-
socket.connect(port, host, () => {
|
|
65
|
-
socket.removeListener('error', reject);
|
|
66
|
-
resolve(new TcpTransport(socket));
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
buffered() {
|
|
71
|
-
return this.chunks.reduce((sum, c) => sum + c.length, 0);
|
|
72
|
-
}
|
|
73
|
-
tryResolveRead() {
|
|
74
|
-
if (this.resolveRead && this.buffered() >= this.needed) {
|
|
75
|
-
const combined = Buffer.concat(this.chunks);
|
|
76
|
-
this.chunks.length = 0;
|
|
77
|
-
const result = combined.subarray(0, this.needed);
|
|
78
|
-
const remainder = combined.subarray(this.needed);
|
|
79
|
-
if (remainder.length > 0)
|
|
80
|
-
this.chunks.push(Buffer.from(remainder));
|
|
81
|
-
const resolve = this.resolveRead;
|
|
82
|
-
this.resolveRead = null;
|
|
83
|
-
this.needed = 0;
|
|
84
|
-
resolve(new Uint8Array(result));
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
async write(data) {
|
|
88
|
-
return new Promise((resolve, reject) => {
|
|
89
|
-
this.socket.write(Buffer.from(data), err => {
|
|
90
|
-
if (err)
|
|
91
|
-
reject(err);
|
|
92
|
-
else
|
|
93
|
-
resolve();
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
async read(byteCount) {
|
|
98
|
-
if (this.buffered() >= byteCount) {
|
|
99
|
-
const combined = Buffer.concat(this.chunks);
|
|
100
|
-
this.chunks.length = 0;
|
|
101
|
-
const result = combined.subarray(0, byteCount);
|
|
102
|
-
const remainder = combined.subarray(byteCount);
|
|
103
|
-
if (remainder.length > 0)
|
|
104
|
-
this.chunks.push(Buffer.from(remainder));
|
|
105
|
-
return new Uint8Array(result);
|
|
106
|
-
}
|
|
107
|
-
return new Promise(resolve => {
|
|
108
|
-
this.resolveRead = resolve;
|
|
109
|
-
this.needed = byteCount;
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
async close() {
|
|
113
|
-
return new Promise(resolve => {
|
|
114
|
-
this.socket.end(() => {
|
|
115
|
-
resolve();
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=transport.js.map
|
package/dist/transport.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type DeviceDescriptor } from '@thermal-label/brother-ql-core';
|
|
2
|
-
export interface OpenOptions {
|
|
3
|
-
vid?: number;
|
|
4
|
-
pid?: number;
|
|
5
|
-
serialNumber?: string;
|
|
6
|
-
}
|
|
7
|
-
export interface PrinterInfo {
|
|
8
|
-
device: DeviceDescriptor;
|
|
9
|
-
serialNumber: string | undefined;
|
|
10
|
-
path: string;
|
|
11
|
-
transport: 'usb';
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=types.d.ts.map
|