@thermal-label/brother-ql-node 0.0.1 → 0.2.1

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.
Files changed (65) hide show
  1. package/dist/__tests__/discovery.test.js +141 -68
  2. package/dist/__tests__/discovery.test.js.map +1 -1
  3. package/dist/__tests__/integration/print.test.d.ts +2 -0
  4. package/dist/__tests__/integration/print.test.d.ts.map +1 -0
  5. package/dist/__tests__/integration/print.test.js +71 -0
  6. package/dist/__tests__/integration/print.test.js.map +1 -0
  7. package/dist/__tests__/printer.test.js +137 -208
  8. package/dist/__tests__/printer.test.js.map +1 -1
  9. package/dist/discovery.d.ts +39 -4
  10. package/dist/discovery.d.ts.map +1 -1
  11. package/dist/discovery.js +88 -15
  12. package/dist/discovery.js.map +1 -1
  13. package/dist/index.d.ts +2 -8
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -6
  16. package/dist/index.js.map +1 -1
  17. package/dist/printer.d.ts +32 -15
  18. package/dist/printer.d.ts.map +1 -1
  19. package/dist/printer.js +70 -149
  20. package/dist/printer.js.map +1 -1
  21. package/package.json +6 -4
  22. package/dist/__tests__/errors.test.d.ts +0 -2
  23. package/dist/__tests__/errors.test.d.ts.map +0 -1
  24. package/dist/__tests__/errors.test.js +0 -20
  25. package/dist/__tests__/errors.test.js.map +0 -1
  26. package/dist/__tests__/integration/print-image.test.d.ts +0 -2
  27. package/dist/__tests__/integration/print-image.test.d.ts.map +0 -1
  28. package/dist/__tests__/integration/print-image.test.js +0 -22
  29. package/dist/__tests__/integration/print-image.test.js.map +0 -1
  30. package/dist/__tests__/integration/print-text.test.d.ts +0 -2
  31. package/dist/__tests__/integration/print-text.test.d.ts.map +0 -1
  32. package/dist/__tests__/integration/print-text.test.js +0 -25
  33. package/dist/__tests__/integration/print-text.test.js.map +0 -1
  34. package/dist/__tests__/integration/print-two-color.test.d.ts +0 -2
  35. package/dist/__tests__/integration/print-two-color.test.d.ts.map +0 -1
  36. package/dist/__tests__/integration/print-two-color.test.js +0 -28
  37. package/dist/__tests__/integration/print-two-color.test.js.map +0 -1
  38. package/dist/__tests__/integration/tcp.test.d.ts +0 -2
  39. package/dist/__tests__/integration/tcp.test.d.ts.map +0 -1
  40. package/dist/__tests__/integration/tcp.test.js +0 -20
  41. package/dist/__tests__/integration/tcp.test.js.map +0 -1
  42. package/dist/__tests__/tcp-transport.test.d.ts +0 -2
  43. package/dist/__tests__/tcp-transport.test.d.ts.map +0 -1
  44. package/dist/__tests__/tcp-transport.test.js +0 -115
  45. package/dist/__tests__/tcp-transport.test.js.map +0 -1
  46. package/dist/__tests__/usb-transport.test.d.ts +0 -2
  47. package/dist/__tests__/usb-transport.test.d.ts.map +0 -1
  48. package/dist/__tests__/usb-transport.test.js +0 -99
  49. package/dist/__tests__/usb-transport.test.js.map +0 -1
  50. package/dist/errors.d.ts +0 -8
  51. package/dist/errors.d.ts.map +0 -1
  52. package/dist/errors.js +0 -15
  53. package/dist/errors.js.map +0 -1
  54. package/dist/status.d.ts +0 -2
  55. package/dist/status.d.ts.map +0 -1
  56. package/dist/status.js +0 -2
  57. package/dist/status.js.map +0 -1
  58. package/dist/transport.d.ts +0 -32
  59. package/dist/transport.d.ts.map +0 -1
  60. package/dist/transport.js +0 -120
  61. package/dist/transport.js.map +0 -1
  62. package/dist/types.d.ts +0 -13
  63. package/dist/types.d.ts.map +0 -1
  64. package/dist/types.js +0 -2
  65. package/dist/types.js.map +0 -1
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=usb-transport.test.d.ts.map
@@ -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
@@ -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
@@ -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
@@ -1,2 +0,0 @@
1
- export { parseStatus, STATUS_REQUEST } from '@thermal-label/brother-ql-core';
2
- //# sourceMappingURL=status.d.ts.map
@@ -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
@@ -1,2 +0,0 @@
1
- export { parseStatus, STATUS_REQUEST } from '@thermal-label/brother-ql-core';
2
- //# sourceMappingURL=status.js.map
@@ -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"}
@@ -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
@@ -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
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,CAAC;CAClB"}
package/dist/types.js DELETED
@@ -1,2 +0,0 @@
1
- import {} from '@thermal-label/brother-ql-core';
2
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,MAAM,gCAAgC,CAAC"}