Socket
Socket
Sign inDemoInstall

escpos-buffer

Package Overview
Dependencies
33
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.0.2 to 3.0.0

93

__tests__/connection/WebUSB.spec.ts

@@ -6,24 +6,50 @@ import WebUSB from '../../src/connection/WebUSB';

describe('WebUSB', () => {
const device = ({
configuration: {
interfaces: [
{
alternate: {
endpoints: [
{ direction: 'in', endpointNumber: 1 },
{ direction: 'out', endpointNumber: OUT_ENDPOINT_NUMBER },
],
},
const unwantedConfiguration = {
configurationValue: 1,
interfaces: [
{
interfaceNumber: 0,
alternate: {
endpoints: [
{ direction: 'in', endpointNumber: 1 },
],
},
{
alternate: {
endpoints: [
{ direction: 'in', endpointNumber: 1 },
{ direction: 'in', endpointNumber: 2 },
{ direction: 'out', endpointNumber: 3 },
],
},
},
{
interfaceNumber: 1,
alternate: {
endpoints: [
{ direction: 'in', endpointNumber: 1 },
{ direction: 'in', endpointNumber: 2 },
],
},
],
},
},
],
}
const configuration = {
configurationValue: 2,
interfaces: [
{
interfaceNumber: 0,
alternate: {
endpoints: [
{ direction: 'in', endpointNumber: 1 },
{ direction: 'in', endpointNumber: 2 },
],
},
},
{
interfaceNumber: 1,
alternate: {
endpoints: [
{ direction: 'in', endpointNumber: 1 },
{ direction: 'out', endpointNumber: OUT_ENDPOINT_NUMBER },
],
},
},
],
}
const device = ({
configuration,
configurations: [unwantedConfiguration, configuration],
open: jest.fn().mockReturnValue(Promise.resolve()),

@@ -42,4 +68,4 @@ selectConfiguration: jest.fn().mockReturnValue(Promise.resolve()),

expect(device.open).toHaveBeenCalledTimes(1);
expect(device.selectConfiguration).toHaveBeenCalledWith(1);
expect(device.claimInterface).toHaveBeenCalledWith(0);
expect(device.selectConfiguration).toHaveBeenCalledWith(2);
expect(device.claimInterface).toHaveBeenCalledWith(1);
});

@@ -58,8 +84,25 @@

it('allows override of configuration', async () => {
const configuration = 2;
const interfaceNumber = 1;
const webUsb = new WebUSB(device, configuration);
await webUsb.open();
expect(device.selectConfiguration).toHaveBeenCalledWith(configuration);
expect(device.claimInterface).toHaveBeenCalledWith(interfaceNumber);
});
it('allows override of interface', async () => {
const configuration = 2;
const interfaceNumber = 1;
const webUsb = new WebUSB(device, -1, interfaceNumber);
await webUsb.open();
expect(device.selectConfiguration).toHaveBeenCalledWith(configuration);
expect(device.claimInterface).toHaveBeenCalledWith(interfaceNumber);
});
it('allows override of configuration and interface', async () => {
const webUsb = new WebUSB(device);
const configuration = 2;
const interfaceNumber = 1;
await webUsb.open({ configuration, interface: interfaceNumber });
expect(device.open).toHaveBeenCalledTimes(1);
const webUsb = new WebUSB(device, configuration, interfaceNumber);
await webUsb.open();
expect(device.selectConfiguration).toHaveBeenCalledWith(configuration);

@@ -66,0 +109,0 @@ expect(device.claimInterface).toHaveBeenCalledWith(interfaceNumber);

import { load } from '../helper';
import { Image } from '../../src';
import { PNG } from 'pngjs';
import { PNG } from '../../src';

@@ -24,3 +24,3 @@ describe('proccess images to printing format', () => {

imageBuffer,
(error: Error, data: Buffer) => {
(error: Error, data: PNG) => {
if (error) {

@@ -35,5 +35,5 @@ reject(error);

const image = new Image(png);
const image = new Image(png as PNG);
expect(image.width).toBe(180);
});
});

@@ -1,2 +0,2 @@

import Model from '../src/Model';
import { Model } from '../src';

@@ -13,2 +13,8 @@ describe('load model', () => {

});
it('try load unknow model', async () => {
expect(() => {
new Model('TM-T21' as any);
}).toThrowError('Printer model "TM-T21" not supported');
});
});

@@ -6,3 +6,3 @@ import * as path from 'path';

import Model from '../src/Model';
import Printer from '../src/Printer';
import { Printer } from '../src';
import { Align, Style } from '../src/actions';

@@ -9,0 +9,0 @@ import { StyleConf } from '../src/profile';

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Style = exports.Drawer = exports.Cut = exports.Align = void 0;
var Align;

@@ -4,0 +5,0 @@ (function (Align) {

@@ -345,3 +345,3 @@ declare const capabilities: {

};
declare type Models = typeof capabilities['models'];
declare type Models = (typeof capabilities)['models'];
export declare type Profile = Models[number]['profile'];

@@ -348,0 +348,0 @@ export declare type SupportedModel = Models[number]['model'];

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var InMemory_1 = require("./InMemory");
exports.InMemory = InMemory_1.default;
Object.defineProperty(exports, "InMemory", { enumerable: true, get: function () { return InMemory_1.default; } });
var WebUSB_1 = require("./WebUSB");
exports.WebUSB = WebUSB_1.default;
Object.defineProperty(exports, "WebUSB", { enumerable: true, get: function () { return WebUSB_1.default; } });
//# sourceMappingURL=index.js.map

@@ -6,10 +6,10 @@ /// <reference types="w3c-web-usb" />

private device;
private configurationValue;
private interfaceNumber;
private endpointNumber;
constructor(device: USBDevice);
open({ configuration, interface: interfaceNumber, }?: {
configuration?: number;
interface?: number;
}): Promise<void>;
constructor(device: USBDevice, configurationValue?: number, interfaceNumber?: number);
open(): Promise<void>;
write(data: Buffer): Promise<void>;
close(): Promise<void>;
delect(): void;
}

@@ -5,12 +5,17 @@ "use strict";

class WebUSB {
constructor(device) {
constructor(device, configurationValue = -1, interfaceNumber = -1) {
this.device = device;
this.endpointNumber = 1;
this.configurationValue = configurationValue;
this.interfaceNumber = interfaceNumber;
this.endpointNumber = -1;
}
open({ configuration = 1, interface: interfaceNumber = 0, } = {}) {
open() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
yield this.device.open();
yield this.device.selectConfiguration(configuration);
yield this.device.claimInterface(interfaceNumber);
const iface = this.device.configuration.interfaces[interfaceNumber];
if (this.configurationValue === -1 || this.interfaceNumber === -1) {
this.delect();
}
yield this.device.selectConfiguration(this.configurationValue);
yield this.device.claimInterface(this.interfaceNumber);
const iface = this.device.configuration.interfaces[this.interfaceNumber];
const endpoint = iface.alternate.endpoints.find((e) => e.direction === 'out');

@@ -28,4 +33,25 @@ this.endpointNumber = endpoint.endpointNumber;

}
delect() {
this.device.configurations.find((config) => {
if (this.configurationValue !== -1 &&
config.configurationValue !== this.configurationValue) {
return false;
}
return (config.interfaces.findIndex((iface) => {
if (this.interfaceNumber !== -1 &&
iface.interfaceNumber !== this.interfaceNumber) {
return false;
}
const endpoint = iface.alternate.endpoints.find((e) => e.direction === 'out');
if (!endpoint) {
return false;
}
this.configurationValue = config.configurationValue;
this.interfaceNumber = iface.interfaceNumber;
return true;
}) >= 0);
});
}
}
exports.default = WebUSB;
//# sourceMappingURL=WebUSB.js.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Threshold_1 = require("./Threshold");
exports.Threshold = Threshold_1.default;
Object.defineProperty(exports, "Threshold", { enumerable: true, get: function () { return Threshold_1.default; } });
var BayerOrdered_1 = require("./BayerOrdered");
exports.BayerOrdered = BayerOrdered_1.default;
Object.defineProperty(exports, "BayerOrdered", { enumerable: true, get: function () { return BayerOrdered_1.default; } });
var FloydSteinberg_1 = require("./FloydSteinberg");
exports.FloydSteinberg = FloydSteinberg_1.default;
Object.defineProperty(exports, "FloydSteinberg", { enumerable: true, get: function () { return FloydSteinberg_1.default; } });
//# sourceMappingURL=index.js.map

@@ -7,11 +7,11 @@ "use strict";

var Model_1 = require("./Model");
exports.Model = Model_1.default;
Object.defineProperty(exports, "Model", { enumerable: true, get: function () { return Model_1.default; } });
var Image_1 = require("./graphics/Image");
exports.Image = Image_1.default;
Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return Image_1.default; } });
tslib_1.__exportStar(require("./graphics/filter"), exports);
tslib_1.__exportStar(require("./Printer"), exports);
var Printer_1 = require("./Printer");
exports.Printer = Printer_1.default;
Object.defineProperty(exports, "Printer", { enumerable: true, get: function () { return Printer_1.default; } });
var pngjs_1 = require("pngjs");
exports.PNG = pngjs_1.PNG;
Object.defineProperty(exports, "PNG", { enumerable: true, get: function () { return pngjs_1.PNG; } });
//# sourceMappingURL=index.js.map

@@ -79,3 +79,2 @@ "use strict";

static CONNECT(_model, connection) {
var _a, _b;
return tslib_1.__awaiter(this, void 0, void 0, function* () {

@@ -91,3 +90,3 @@ let model;

model.profile.connection = connection;
yield ((_b = (_a = model.profile).initialize) === null || _b === void 0 ? void 0 : _b.call(_a));
yield model.profile.initialize();
return new Printer(model);

@@ -94,0 +93,0 @@ });

@@ -73,5 +73,2 @@ "use strict";

yield this.setColumns(this.capabilities.columns);
if (this.capabilities.initialize) {
yield this.connection.write(Buffer.from(this.capabilities.initialize, 'ascii'));
}
return this.fontChanged(this.font, this.font);

@@ -78,0 +75,0 @@ });

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Profile = void 0;
const tslib_1 = require("tslib");

@@ -4,0 +5,0 @@ const actions_1 = require("../actions");

{
"name": "escpos-buffer",
"version": "2.0.2",
"version": "3.0.0",
"description": "Library to generate buffer for thermal printers.",

@@ -41,11 +41,11 @@ "author": "GrandChef Team <desenvolvimento@grandchef.com.br>",

"@types/w3c-web-usb": "1.0.4",
"jest": "~24.9.0",
"prettier": "~1.19.0",
"jest": "^24.9.0",
"prettier": "^2.8.3",
"rimraf": "^3.0.0",
"ts-jest": "^24.1.0",
"tslint": "~5.20.1",
"tslint": "^5.20.1",
"tslint-config-prettier": "1.18.0",
"tslint-microsoft-contrib": "~6.2.0",
"tsutils": "~3.17.0",
"typescript": "~3.7.2"
"tslint-microsoft-contrib": "^6.2.0",
"tsutils": "^3.17.0",
"typescript": "^3.7.2"
},

@@ -52,0 +52,0 @@ "publishConfig": {

@@ -70,5 +70,5 @@ [![Latest Version][version-badge]][npm-link]

align: Align.Center,
}, () => {
printer.writeln('You can apply multiple styles at once using withStyle()')
printer.writeln('Font sizes 1-8 are available')
}, async () => {
await printer.writeln('You can apply multiple styles at once using withStyle()')
await printer.writeln('Font sizes 1-8 are available')
})

@@ -75,0 +75,0 @@ await printer.writeln('Default style is restored afterwards')

@@ -457,3 +457,3 @@ const capabilities = {

type Models = typeof capabilities['models'];
type Models = (typeof capabilities)['models'];
export type Profile = Models[number]['profile'];

@@ -460,0 +460,0 @@ export type SupportedModel = Models[number]['model'];

import { Connection } from '.';
export default class WebUSB implements Connection {
private endpointNumber: number = 1;
private endpointNumber: number = -1;
constructor(private device: USBDevice) {}
constructor(
private device: USBDevice,
private configurationValue: number = -1,
private interfaceNumber: number = -1,
) {}
async open({
configuration = 1,
interface: interfaceNumber = 0,
}: {
configuration?: number;
interface?: number;
} = {}): Promise<void> {
async open(): Promise<void> {
await this.device.open();
await this.device.selectConfiguration(configuration);
await this.device.claimInterface(interfaceNumber);
const iface = this.device.configuration.interfaces[interfaceNumber];
if (this.configurationValue === -1 || this.interfaceNumber === -1) {
this.delect();
}
await this.device.selectConfiguration(this.configurationValue);
await this.device.claimInterface(this.interfaceNumber);
const iface = this.device.configuration.interfaces[this.interfaceNumber];
const endpoint = iface.alternate.endpoints.find(

@@ -32,2 +33,34 @@ (e: USBEndpoint) => e.direction === 'out',

}
delect() {
// select first configuration with interface having out direction
this.device.configurations.find((config: USBConfiguration) => {
if (
this.configurationValue !== -1 &&
config.configurationValue !== this.configurationValue
) {
return false;
}
// select first interface having out direction
return (
config.interfaces.findIndex((iface: USBInterface) => {
if (
this.interfaceNumber !== -1 &&
iface.interfaceNumber !== this.interfaceNumber
) {
return false;
}
const endpoint = iface.alternate.endpoints.find(
(e: USBEndpoint) => e.direction === 'out',
);
if (!endpoint) {
return false;
}
this.configurationValue = config.configurationValue;
this.interfaceNumber = iface.interfaceNumber;
return true;
}) >= 0
);
});
}
}

@@ -96,5 +96,5 @@ import Model from './Model';

model.profile.connection = connection;
await model.profile.initialize?.();
await model.profile.initialize();
return new Printer(model);
}
}

@@ -63,7 +63,2 @@ import Epson from './Epson';

await this.setColumns(this.capabilities.columns);
if (this.capabilities.initialize) {
await this.connection.write(
Buffer.from(this.capabilities.initialize, 'ascii'),
);
}
return this.fontChanged(this.font, this.font);

@@ -70,0 +65,0 @@ }

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc